В чем понт Самое актуальное и полное сравнение сверточных и реккурентных архитектур для моделирования последовательностей. Авторы берут свой достаточно простой вариант сверточной сети и сравнивают ее на разных классических задачках для сопоставления рекуррентых сетей между собой (на домашнем поле, как они выражаются в статье) со стандартными рекуррентными архитектурами GRU, LSTM и ‘vanilla RNN’. На всех задачах их свертки побили реккурентные сетки. Примеры задач - PennTreebank, Copy memory, The adding problem. Опровергает распространенный тезис о том, что рекуррентные сети - самое естественное, что можно придумать для моделирования последовательностей (текста, например)
Подробности Какие именно сверточные сети Для того, чтобы повторять функции рекуррентных сетей, нам нужно 2 основных свойства - уметь выплевывать output такого же размера, как input и не смотреть в будущее (при моделировании текста каждое слово обрабатывать с использованием информации только о предыдущих). С первой задачей справляется полносверточная сетка с паддингом нулями, чтобы последующие слои имели ту же длину, что и предыдущие. Вторую задачу мы решаем казуальными разреженными свертками, прикладывая свертки только к предыдущим элементам в последовательности (ровно теми свертками, которые используются в Wavenet и описаны в предыдущем посте).
Преимущества сверточных сетей 1.Можно параллелить(то есть существенно ускорить обучение!!) 2. Можно просто и гибко контролировать размер модели в памяти, например, делать свертки более разреженными 3.Градиенты не затухают, информация с дальних концов последовательности не теряется (так как обратное распространение ошибки идет не сонаправленно с последовательностью(то есть по всей длине), а с глубиной сети(которая логарифм длины)) 4.Для тренировки нужно меньше памяти (для рекуррентных сетей надо помнить все предыдущие состояния ячеек, что критично, особенно при обучении на длинных последовательностях)
Недостатки сверточных сетей 1.Нужно больше памяти во время применения(так как в рекуррентных сетях нужно помнить только текущий вход и скрытое состояние)
Что в итоге При простой архитектуре и минимальном тюнинге сверточных сетей, они бьют классические рекуррентные. Но авторы подчеркивают, что сейчас появилось много продвинутых докруток на рекуррентные сети, которые бьют их сверточную архитектуру. Однако не стоит забывать, то что докрутки - это годы работы ведущих групп, а сверточная архитектура авторов собрана на коленке. Авторы говорят, что если вложиться в этом направлении, можно добиться результатов еще круче, чем те, которые есть на продвинутых рекуррентных сетях.