WaveNet non è davvero una convoluzione dilatata, vero?


10

Nel recente documento WaveNet , gli autori fanno riferimento al loro modello come se avessero strati sovrapposti di convoluzioni dilatate. Producono anche i seguenti grafici, che spiegano la differenza tra convoluzioni 'regolari' e convoluzioni dilatate.

Le convoluzioni regolari sembrano Convoluzioni non dilatate Questa è una convoluzione con una dimensione del filtro di 2 e un passo di 1, ripetuta per 4 strati.

Mostrano quindi un'architettura utilizzata dal loro modello, che chiamano convoluzioni dilatate. Sembra così Convoluzioni dilatate di WaveNet Dicono che ogni strato ha dilatazioni crescenti di (1, 2, 4, 8). Ma a me sembra una convoluzione regolare con una dimensione del filtro di 2 e una falcata di 2, ripetuta per 4 strati.

A quanto ho capito, una convoluzione dilatata, con una dimensione del filtro di 2, passo di 1, e dilatazioni crescenti di (1, 2, 4, 8), sarebbe simile a questa. Convoluzione dilatata effettiva

Nel diagramma WaveNet, nessuno dei filtri salta su un input disponibile. Non ci sono buchi. Nel mio diagramma, ciascun filtro salta (d - 1) gli ingressi disponibili. È così che la dilatazione dovrebbe funzionare no?

Quindi la mia domanda è: quali (se presenti) delle seguenti proposizioni sono corrette?

  1. Non capisco le circonvoluzioni dilatate e / o regolari.
  2. Deepmind in realtà non ha implementato una convoluzione dilatata, ma piuttosto una convoluzione graduale, ma ha abusato della parola dilatazione.
  3. Deepmind ha implementato una convoluzione dilatata, ma non ha implementato correttamente il grafico.

Non sono abbastanza fluente nel codice TensorFlow per capire esattamente cosa sta facendo il loro codice, ma ho pubblicato una domanda correlata su Stack Exchange , che contiene il bit di codice che potrebbe rispondere a questa domanda.


Ho trovato la tua domanda e risposta di seguito piuttosto interessante. Dal momento che il documento WaveNet non spiega tale equivalenza di falcata e tasso di dilatazione, ho deciso di riassumere i concetti chiave in un post sul blog: theblog.github.io/post/… potresti trovarlo interessante se stai ancora lavorando con un neurale autoregressivo reti
Kilian Batzner

Risposte:


9

Dalla carta di wavenet:

"A dilated convolution (also called a trous, or convolution with 
holes) is a convolution where the filter is applied over an area larger 
than its length by skipping input values with a certain step. It is 
equivalent to a convolution with a larger filter derived from the 
original filter by dilating it with zeros, but is significantly more 
efficient. A dilated convolution  effectively allows the network to 
operate on a coarser scale than with a normal convolution. This is 
similar to pooling or strided  convolutions, but 
here the output has the same size as the input. As a special case, 
dilated convolution with dilation 1 yields the standard convolution. 
Fig. 3 depicts dilated causal convolutions for dilations 1, 2, 4, and 
8."

Le animazioni mostrano una falcata fissa e un fattore di dilatazione in aumento su ogni livello. Figura 3 animata dal post sul blog wavenet di Google


6

Il penny è appena caduto su questo per me. Di quelle 3 proposizioni, quella corretta è 4: non ho capito il documento WaveNet.

Il mio problema era che stavo interpretando il diagramma WaveNet come coprendo un singolo campione, da eseguire su diversi campioni disposti in una struttura 2D con 1 dimensione delle dimensioni del campione e l'altra conteggio dei lotti.

Tuttavia, WaveNet sta eseguendo l'intero filtro su una serie temporale 1D con un passo di 1. Questo ovviamente ha un ingombro di memoria molto inferiore ma realizza la stessa cosa.

Se si provasse a fare lo stesso trucco usando una struttura a gradini, la dimensione di output sarebbe errata.

Quindi per riassumere, farlo nel modo più preciso con una struttura batch x campione 2D offre lo stesso modello, ma con un utilizzo della memoria molto più elevato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.