В недавней статье WaveNet авторы ссылаются на свою модель как на сложенные слои расширенных извилин. Они также производят следующие диаграммы, объясняющие разницу между «обычными» сверточными и дилатационными сверточками.
Обычные свертки выглядят так: Это свертка с размером фильтра 2 и шагом 1, повторяющимся для 4 слоев.
Затем они показывают архитектуру, используемую их моделью, которую они называют расширенными извилинами. Похоже на это. Они говорят, что каждый слой имеет растущие расширения (1, 2, 4, 8). Но для меня это выглядит как обычная свертка с размером фильтра 2 и шагом 2, повторяющимся для 4 слоев.
Насколько я понимаю, расширенная свертка с размером фильтра 2, шагом 1 и возрастающим расширением (1, 2, 4, 8) будет выглядеть следующим образом.
На диаграмме WaveNet ни один из фильтров не пропускает доступные входные данные. Там нет дыр. На моей диаграмме каждый фильтр пропускает (d - 1) доступных входов. Это как дилатация должна работать нет?
Итак, мой вопрос, какие (если таковые имеются) из следующих предложений являются правильными?
- Я не понимаю расширенные и / или регулярные свертки.
- Глубокий разум на самом деле не реализовал расширенную свертку, а скорее пошаговую свертку, но неправильно использовал расширение слова.
- Deepmind реализовал расширенную свертку, но не правильно реализовал диаграмму.
Я недостаточно свободно разбираюсь в коде TensorFlow, чтобы понять, что именно делает их код, но я опубликовал соответствующий вопрос на Stack Exchange , который содержит фрагмент кода, который может ответить на этот вопрос.
Ответы:
Из бумаги Вавенета:
На анимациях показан фиксированный шаг первого шага и коэффициент расширения, увеличивающийся на каждом слое.
источник
Пенни только что упала на этот для меня. Из этих трех предложений верным является 4: я не понял статью WaveNet.
Моя проблема заключалась в том, что я интерпретировал диаграмму WaveNet как охватывающую одну выборку, которая будет работать на разных выборках, расположенных в двухмерной структуре, где одно измерение соответствует размеру выборки, а другое - количеству партий.
Тем не менее, WaveNet просто запускает весь этот фильтр в одномерном временном ряду с шагом 1. Очевидно, это занимает гораздо меньше места в памяти, но выполняет то же самое.
Если вы попытаетесь проделать тот же трюк с использованием пошаговой структуры, выходное измерение будет неправильным.
Подводя итог, можно сказать, что при выполнении этого с использованием структуры 2D-образца х пакетной модели получается та же модель, но с гораздо более высоким использованием памяти.
источник