Эффективное и действенное обучение последовательностей

До недавнего времени выбором по умолчанию для задачи моделирования последовательности были RNN из-за их большой способности фиксировать временные зависимости в последовательных данных. Существует несколько вариантов RNN, таких как LSTM, GRU, способных фиксировать долгосрочные зависимости в последовательностях и достигших современного уровня производительности в задачах моделирования seq2seq.

Недавно специалисты по глубокому обучению использовали вариант архитектуры сверточной нейронной сети для задач моделирования последовательности, Временные сверточные сети. Это простой описательный термин для обозначения семейства архитектур.

Google DeepMind опубликовал статью Пиксельная рекуррентная нейронная сеть, в которой авторы представили понятие использования CNN в качестве модели последовательности с фиксированным диапазоном зависимостей с использованием замаскированных сверток. Идея заключалась в том, чтобы выполнять свертку только на элементах из текущей отметки времени или ранее на предыдущем уровне. Google DeepMind опубликовал еще одну статью Нейронный машинный перевод в линейном времени, вдохновленную вышеупомянутой идеей, которая позволила достичь высочайшего уровня производительности в задаче перевода с английского на немецкий, превзойдя повторяющиеся сети с объединением внимания.

Отличительные характеристики TCN:

  • Архитектура может взять последовательность любой длины и сопоставить ее с выходной последовательностью такой же длины, как и в случае с RNN.
  • Извилины в архитектуре являются причинными, что означает отсутствие «утечки» информации из будущего в прошлое.

Для достижения первой точки TCN использует архитектуру одномерной полностью сверточной сети (FCN), где каждый скрытый слой имеет ту же длину, что и входной слой, и добавляется нулевое заполнение длины (размер ядра - 1) для сохранения последующие слои той же длины, что и предыдущие. Для достижения второй точки TCN использует каузальные свертки, свертки, при которых выходной сигнал в момент времени t свертывается только с элементами из времени t и ранее на предыдущем уровне.

Проще говоря: TCN = 1D FCN + каузальные свертки.

Эта базовая архитектура может оглядываться назад на историю с размером, линейным по глубине сети и размеру фильтра. Следовательно, фиксация долгосрочных зависимостей становится действительно сложной задачей. Одним из простых решений этой проблемы является использование расширенных сверток.

Расширенные свертки

Для одномерной последовательности введите x ∈ R ^ n и фильтр f: {0,…, k-1} → R, операция расширенной свертки F на элементе s последовательности определяется как:

В приведенной выше формуле критерии причинной свертки также учитываются с использованием только неотрицательных значений i. Очевидно, что нормальная свертка - это не что иное, как расширенная свертка на 1. Более подробную информацию о расширенной свертке вы можете найти в этом блоге.

Преимущества использования TCN для моделирования последовательности

  • Параллелизм: в отличие от RNN, где прогнозы для более поздних временных шагов должны ждать завершения своих предшественников, свертки могут выполняться параллельно, поскольку на каждом уровне используется один и тот же фильтр. Следовательно, как при обучении, так и при оценке длинная входная последовательность может обрабатываться в TCN целиком, а не последовательно, как в RNN.
  • Гибкий размер принимающего поля: TCN может изменять размер своего принимающего поля несколькими способами. Например, наложение более расширенных (причинно-следственных) сверточных слоев, использование больших коэффициентов расширения или увеличение размера фильтра - все это жизнеспособные варианты (с возможно разными интерпретациями). Таким образом, TCN позволяют лучше контролировать размер памяти модели и легко адаптируются к различным областям.
  • Низкие требования к памяти для обучения: особенно в случае длинной входной последовательности, LSTM и GRU могут легко использовать много памяти для хранения частичных результатов для своих ворот нескольких ячеек. Однако в TCN фильтры используются совместно на уровне, а путь обратного распространения зависит только от глубины сети. Следовательно, на практике стробированные RNN, вероятно, будут использовать до мультипликативного коэффициента больше памяти, чем TCN.
  • Сбор локальной информации. Использование операции свертки помогает собирать локальную информацию вместе с временной информацией.

Исходящие слова:

Выполнение BackProp для расширенных сверток - не что иное, как операция транспонированной свертки.

Поскольку принимающее поле TCN зависит от глубины сети n, а также от размера фильтра k и коэффициента расширения d, стабилизация более глубоких и больших TCN становится важной. Следовательно, общий остаточный модуль вместо сверточного слоя.

Ссылки:

  • Бай, С., Колтер, Дж. З., и Колтун, В. (2018). Эмпирическая оценка общих сверточных и рекуррентных сетей для моделирования последовательности. Препринт arXiv arXiv: 1803.01271.
  • Ли К., Видаль Р., Рейтер А. и Хагер Г. Д. (2016, октябрь). Временные сверточные сети: единый подход к сегментации действий. В Европейской конференции по компьютерному зрению (стр. 47–54). Спрингер, Чам.
  • Кальчбреннер, Н., Эспехольт, Л., Симонян, К., Оорд, А. В. Д., Грейвс, А., & Кавукчуоглу, К. (2016). Нейронный машинный перевод в линейном времени. Препринт arXiv arXiv: 1610.10099.