WaveNet насправді не є розширеною згорткою, чи не так?


10

В останній роботі WaveNet автори посилаються на свою модель як зі складеними шарами розширених згортків. Вони також створюють наступні діаграми, пояснюючи різницю між "регулярними" згортками та розширеними згортками.

Регулярні звивини виглядають так: Нерозширені згортки Це згортання з розміром фільтра 2 та кроком 1, повторюваним у 4 шари.

Потім вони показують архітектуру, використану їх моделлю, яку вони називають розширеними згортками. Це виглядає приблизно так. Розширені звивини WaveNet Вони кажуть, що кожен шар має зростаючі диляції (1, 2, 4, 8). Але для мене це виглядає як звичайна згортка з розміром фільтра 2 та кроком 2, повторюваною протягом 4 шарів.

Як я розумію, розширена згортка з розміром фільтра 2, кроком 1 і збільшенням дилатації (1, 2, 4, 8) виглядала б так. Фактична розширена згортка

У діаграмі WaveNet жоден з фільтрів не пропускає доступний вхід. Дірок немає. У моїй діаграмі кожен фільтр пропускає (d - 1) доступні входи. Ось як дилатація повинна працювати ні?

Отже, моє запитання полягає в тому, які (якщо такі є) наступні пропозиції є правильними?

  1. Я не розумію розширених та / або регулярних згортків.
  2. Deepmind насправді не реалізував розширену згортку, а швидше згорнуту згортку, але неправильно використовував слово дилатація.
  3. Deepmind реалізував розширену згортку, але неправильно реалізував діаграму.

Я недостатньо добре володію кодом TensorFlow, щоб зрозуміти, що саме робить їх код, але я розмістив відповідне запитання на Stack Exchange , яке містить біт коду, який міг би відповісти на це питання.


Я знайшов ваше запитання та відповідь нижче досить цікавим. Оскільки документ WaveNet не пояснює, що еквівалентність кроку та швидкості розширення, я вирішив узагальнити ключові поняття в публікації в блозі: theblog.github.io/post/… , можливо, вам буде це цікаво, якщо ви все ще працюєте з авторегресивним нейроном мережі
Кіліан Бацнер

Відповіді:


9

З паперу хвилебусу:

"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."

Анімація показує фіксований крок і коефіцієнт розширення на кожному шарі. Анімований рис. 3 з публікації блогу Google у мережевій мережі


6

Пенні щойно впала на цю для мене. З цих 3 пропозицій правильне - 4: Я не зрозумів папір WaveNet.

Моя проблема полягала в тому, що я інтерпретував діаграму WaveNet як покриття одного зразка, який слід проводити на різних зразках, розташованих у двовимірній структурі, 1 розмір - розмір вибірки, а інший - кількість партії.

Однак WaveNet просто запускає весь цей фільтр протягом 1D часового ряду з кроком у 1. Це, очевидно, має значно менший слід пам’яті, але виконує те саме.

Якщо б ви спробували виконати той самий трюк, використовуючи жорстку структуру, вихідний вимір буде неправильним.

Отже, підводячи підсумок, це робиться суворим способом з 2D вибірковою пакетною структурою, що дає ту саму модель, але із значно більшим використанням пам'яті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.