Обзор алгоритмов рекуррентных нейронных сетей для глубокого обучения

Обзор алгоритмов рекуррентных нейронных сетей для глубокого обучения

Рекуррентные нейронные сети, или RNN, представляют собой тип искусственной нейронной сети, которая добавляет сети дополнительные веса для создания циклов в сетевом графе, чтобы поддерживать внутреннее состояние.

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

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

Прочитав этот пост, вы узнаете:

  • Как популярные рекуррентные нейронные сети, такие как LSTM, GRU и NTM, используются для работы с глубоким обучением.
  • Как топовые RNN связаны с более широким изучением повторяемости в искусственных нейронных сетях.
  • Как исследования в RNN привели к современным решениям ряда сложных проблем.

Начните свой проект с моей новой книгой Long-Term Memory Networks With Python, включая пошаговые инструкции и Исходный код Python файлы для всех примеров.

Обратите внимание: мы не собираемся описывать все возможные повторяющиеся нейронные сети. Вместо этого мы сосредоточимся на повторяющихся нейронных сетях, используемых для глубокого обучения (LSTM, GRU и NTM), и на контексте, необходимом для их понимания.

Давайте начнем.

Обзор алгоритмов рекуррентных нейронных сетей для глубокого обучения

Обзор алгоритмов рекуррентных нейронных сетей для глубокого обучения
Фото Сантьяго Медема, некоторые права защищены.

Обзор

Мы начнем с настройки сцены для области рекуррентных нейронных сетей.

Далее мы более подробно рассмотрим LSTM, GRU и NTM, используемые для глубокого обучения.

Затем мы уделим некоторое время расширенным темам, связанным с использованием RNN для глубокого обучения.

  • Рекуррентные нейронные сети
    • Полностью рекуррентные сети
    • Рекурсивные нейронные сети
    • Компрессор нейронной истории
  • Сети с долговременной краткосрочной памятью
  • Стробированные рекуррентные нейронные сети
  • Нейронные машины Тьюринга

Рекуррентные нейронные сети

Давайте настроим сцену.

Распространенное мнение предполагает, что повторение привносит память в топологию сети.

Лучший способ рассмотреть это - обучающий набор содержит примеры с набором входных данных для текущего обучающего примера. Это «обычный», например традиционный многослойный персептрон.

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

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

Давайте теперь рассмотрим различные типы рекуррентных нейронных сетей, начав с очень простых концепций.

Полностью рекуррентные сети

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

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

Также см. «Тензорные сети продуктов» Билла Уилсона (1991).

Рекурсивные нейронные сети

Рекуррентные нейронные сети - это линейный архитектурный вариант рекурсивных сетей.

Рекурсия способствует ветвлению в иерархических пространствах функций, и результирующая сетевая архитектура имитирует это в процессе обучения.

Обучение достигается с помощью градиентного спуска с помощью методов субградиента.

Это подробно описано в R. Socher et al., Parsing Natural Scenes and Natural Language with Recursive Neural Networks, 2011.

Компрессор нейронной истории

Шмидхубер сообщил об очень глубоком ученике, впервые в 1991 году, который смог выполнять присвоение кредитов сотням нейронных слоев путем неконтролируемого предварительного обучения иерархии RNN.

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

Было показано, что информация не теряется, а только сжимается. Стек RNN - это «глубокая генеративная модель» данных. Данные могут быть восстановлены из сжатой формы.

См. J. Schmidhuber и др., Deep Learning in Neural Networks: An Overview, 2014.

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

Нужна помощь с LSTM для прогнозирования последовательности?

Пройдите мой бесплатный 7-дневный курс электронной почты и откройте для себя 6 различных архитектур LSTM (с кодом).

Нажмите, чтобы зарегистрироваться, а также получите бесплатную электронную версию курса в формате PDF.

Начните БЕСПЛАТНЫЙ мини-курс прямо сейчас!

Сети с долговременной краткосрочной памятью

При обычном обратном распространении информации во времени (BPTT) или периодическом обучении в реальном времени (RTTL) сигналы ошибок, текущие в обратном направлении во времени, имеют тенденцию либо взорваться, либо исчезнуть.

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

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

Проблемы с обратным потоком ошибок преодолеваются с помощью эффективного алгоритма на основе градиента для архитектуры, обеспечивающего постоянный (таким образом, не увеличивающийся и не исчезающий) поток ошибок через внутренние состояния специальных модулей. Эти единицы уменьшают влияние «конфликта входного веса» и «конфликта выходного веса».

Конфликт входного веса: При условии, что вход не равен нулю, один и тот же входящий вес должен использоваться как для сохранения определенных входных данных, так и для игнорирования других, тогда будут часто поступать противоречивые сигналы обновления весов.

Эти сигналы будут пытаться заставить вес участвовать в сохранении входа и защите входа. Этот конфликт затрудняет обучение и требует более контекстно-зависимого механизма для управления «операциями записи» с помощью входных весов.

Конфликт выходного веса: Пока выходной сигнал модуля не равен нулю, весовой коэффициент на выходном соединении этого устройства будет привлекать конфликтующие сигналы обновления веса, генерируемые во время обработки последовательности.

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

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

Сетевая архитектура: Различные типы устройств могут передавать полезную информацию о текущем состоянии сети. Например, входной вентиль (выходной вентиль) может использовать входные данные из других ячеек памяти, чтобы решить, сохранять ли (осуществлять доступ) определенную информацию в своей ячейке памяти.

Ячейки памяти содержат ворота. Врата специфичны для связи, которую они опосредуют. Входные ворота работают для устранения конфликта входных весов, в то время как выходные шлюзы работают для устранения конфликта выходных весов.

Ворота: В частности, чтобы облегчить конфликты и возмущения входных и выходных весов, вводится мультипликативный входной вентильный блок для защиты содержимого памяти, хранящейся от возмущения несущественными входами, а мультипликативный выходной вентильный блок защищает другие блоки от возмущений сохраненным в настоящее время нерелевантным содержимым памяти.

Пример архитектуры LSTM

Пример сети LSTM с 8 модулями ввода, 4 модулями вывода и 2 блоками ячеек памяти размером 2. in1 отмечает входной вентиль, out1 отмечает выходной вентиль, а cell1 = block1 отмечает первую ячейку памяти блока 1.
Взято из долгосрочной краткосрочной памяти, 1997 г.

Связь в LSTM сложна по сравнению с многослойным персептроном из-за разнообразия элементов обработки и включения обратных связей.

Блоки ячеек памяти: Ячейки памяти, использующие один и тот же входной вентиль и тот же выходной вентиль, образуют структуру, называемую «блоком ячеек памяти».

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

Учусь: Вариант повторяющегося обучения в реальном времени (RTRL), который учитывает измененную мультипликативную динамику, вызванную входными и выходными вентилями, используется для обеспечения обратного распространения нераспадающейся ошибки через внутренние состояния ошибок ячеек памяти, поступающих на «входы сети ячеек памяти. »Не распространяются дальше во времени.

Гадание: Этот стохастический подход может превзойти многие алгоритмы временного запаздывания. Было установлено, что многие задачи с длительным запаздыванием, использованные в предыдущей работе, могут быть решены быстрее с помощью простого случайного угадывания весов, чем с помощью предложенных алгоритмов.

См. S. Hochreiter и J. Schmidhuber, Long-Term Memory, 1997.

Самым интересным применением рекуррентных нейронных сетей LSTM была работа с языковой обработкой. См. Работу Герс для исчерпывающего описания.

Ограничения LSTM

Эффективная усеченная версия LSTM нелегко решит проблемы, подобные «сильно задержанному XOR».

Каждому блоку ячеек памяти нужен входной вентиль и выходной вентиль. Не требуется в других повторяющихся подходах.

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

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

Преимущества LSTM

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

LSTM может аппроксимировать проблемные области с шумом, распределенные представления и непрерывные значения.

LSTM хорошо обобщается на рассматриваемые проблемные области. Это важно, поскольку некоторые задачи невозможно решить для уже установленных повторяющихся сетей.

Точная настройка параметров сети по проблемным доменам не требуется.

С точки зрения сложности обновления по весу и временным шагам LSTM по сути эквивалентен BPTT.

LSTM демонстрируют свою мощь, достигая самых современных результатов в таких областях, как машинный перевод.

Стробированные рекуррентные нейронные сети

Стробированные рекуррентные нейронные сети успешно применяются к последовательным или временным данным.

Наиболее подходят для распознавания речи, обработки естественного языка и машинного перевода, вместе с LSTM они хорошо справились с областями задач с длинными последовательностями.

Стробирование было рассмотрено в теме LSTM и включает в себя стробирующую сеть, генерирующую сигналы, которые управляют тем, как текущий ввод и предыдущая память работают для обновления текущей активации и, следовательно, текущего состояния сети.

Сами гейты взвешиваются и выборочно обновляются в соответствии с алгоритмом на протяжении фазы обучения.

Сети шлюзов вносят дополнительные вычислительные затраты в виде повышенной сложности и, следовательно, дополнительной параметризации.

Архитектура LSTM RNN использует вычисление простых ...

Вас также может заинтересовать