Как LSTM предотвращает проблему исчезающего градиента?

35

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

LSTM
(источник: deeplearning4j.org )

И я понимаю, что эту часть можно рассматривать как своего рода функцию тождества, поэтому производная равна единице, а градиент остается постоянным.

Что я не понимаю, так это как он не исчезает из-за других функций активации? Врата ввода, вывода и забывания используют сигмоид, производная которого составляет не более 0,25, а g и h традиционно были tanh . Как обратное распространение через тех, кто не делает градиент исчезает?

TheWalkingCube
источник
2
LSTM - это рекуррентная модель нейронной сети, которая очень эффективна для запоминания долгосрочных зависимостей и не подвержена исчезающей проблеме градиента. Я не уверен, какое объяснение вы ищете
TheWalkingCube
LSTM: долговременная кратковременная память. (Ссылка: Hochreiter S., Schmidhuber, J. (1997). Долгосрочная кратковременная память. Нейронные вычисления 9 (8): 1735-80 · декабрь 1997)
horaceT
Градиенты в LSTM исчезают, только медленнее, чем в ванильных RNN, что позволяет им улавливать более отдаленные зависимости. Избегание проблемы исчезающих градиентов по-прежнему остается предметом активных исследований.
Артем Соболев
1
Хотите поддержать медленное исчезновение со ссылкой?
Bayerj
похожие: quora.com/…
Буратино

Ответы:

22

Исчезающий градиент лучше всего объяснить в одномерном случае. Многомерность более сложна, но по сути аналогична. Вы можете просмотреть его в этой превосходной статье [1].

Предположим, у нас есть скрытое состояние на шаге t времени . Если мы упростим ситуацию и удалим смещения и входные данные, мы имеем h t = σ ( w h t - 1 ) . Тогда вы можете показать, чточасTT

часTзнак равноσ(весчасT-1),

Фактор отмечен знаком !!! является решающим. Если вес не равен 1, он будет либо экспоненциально быстро уменьшаться до нуля в течениеt-t, либо экспоненциально быстро расти.

часT'часTзнак равноΠКзнак равно1T'-Tвесσ'(весчасT'-К)знак равновесT'-T!!!ΠКзнак равно1T'-Tσ'(весчасT'-К)
T'-T

В LSTM у вас есть состояние ячейки . Производная там имеет вид s t sT Здесьvt- вход в ворота забытия. Как видите, экспоненциально быстрый затухающий фактор не задействован. Следовательно, существует хотя бы один путь, где градиент не исчезает. Полный вывод см. В [2].

sT'sTзнак равноΠКзнак равно1T'-Tσ(vT+К),
vT

[1] Пашкану, Разван, Томас Миколов и Йошуа Бенжио. «О сложности обучения рекуррентным нейронным сетям». ICML (3) 28 (2013): 1310-1318.

[2] Байер, Джастин Саймон. Представления последовательности обучения. Дисс. Мюнхен, Технический университет Мюнхена, Дисс., 2015, 2015.

bayerj
источник
3
Для lstm, h_t также не зависит от h_ {t-1}? Что вы имеете в виду в своей статье, когда говорите, что ds_t / d_s {t-1} «единственная часть, где градиенты текут во времени»?
user3243135
@ user3243135 h_t зависит от h_ {t-1}. Однако предположим, что ds_t / d_s {t-1} сохраняется, даже если другие градиентные потоки исчезают, весь градиентный поток не исчезает. Это решает исчезновение градиента.
соло
ΠT'-Tσ'(весчасT'-К)
σ'(Z)σ'(Икс)знак равноσ(Z)(1-σ(Z))что <1 точно). Разве не поэтому ReLU стали приняты в CNN? Это одна вещь, которая всегда смущала меня из-за разницы в том, как обращался к исчезающему градиенту в моделях с прямой связью по сравнению с рекуррентными моделями. Есть какие-нибудь пояснения к этому?
Буратино
Градиент сигмоиды также может стать проблемой, предполагая распределение входов с большой дисперсией и / или средним от 0. Однако, даже если вы используете ReLU, основная проблема сохраняется: многократное умножение на матрицу весов (обычно небольшую) ) вызывает исчезающие градиенты или, в некоторых случаях, когда регуляризация не является адекватной, взрывные градиенты.
Атаксия
3

Изображение блока LSTM от Greff et al. (2015) описывает вариант, который авторы называют ванильным LSTM . Это немного отличается от оригинального определения от Hochreiter & Schmidhuber (1997). Первоначальное определение не включало ворота забытия и соединения глазка.

Термин «Карусель с постоянной ошибкой» использовался в оригинальной статье для обозначения повторяющейся связи состояния ячейки. Рассмотрим исходное определение, в котором состояние ячейки изменяется только путем сложения, когда открывается входной вентиль. Градиент состояния ячейки относительно состояния ячейки на более раннем временном шаге равен нулю.

Ошибка по-прежнему может войти в CEC через выходной вентиль и функцию активации. Функция активации немного уменьшает величину ошибки перед ее добавлением в CEC. ЦИК является единственным местом, где ошибка может течь без изменений. Опять же, когда входной вентиль открывается, ошибка выходит через входной вентиль, функцию активации и аффинное преобразование, уменьшая величину ошибки.

Таким образом, ошибка уменьшается при обратном распространении через слой LSTM, но только при входе и выходе из CEC. Важно то, что он не меняется в ЦИК независимо от того, на какое расстояние он проходит. Это решает проблему в базовой RNN, которая заключается в том, что на каждом временном шаге применяется аффинное преобразование и нелинейность, а это означает, что чем больше временное расстояние между входом и выходом, тем меньше ошибка.

Сеппо Энарви
источник
2

http://www.felixgers.de/papers/phd.pdf Пожалуйста, обратитесь к разделам 2.2 и 3.2.2, где объясняется усеченная ошибка. Они не распространяют ошибку, если она просачивается из памяти ячейки (т. Е. Если есть закрытый / активированный входной вентиль), но они обновляют веса шлюза на основе ошибки только для этого момента времени. Позже он обнуляется во время дальнейшего обратного распространения. Это своего рода хак, но причина этого заключается в том, что поток ошибок вдоль ворот все равно со временем затухает.

Суреш
источник
7
Не могли бы вы немного рассказать об этом? На данный момент ответ не будет иметь никакого значения, если местоположение ссылки изменится или документ переведен в автономный режим. По крайней мере, это поможет дать полную цитату (ссылку), которая позволит снова найти документ, если ссылка перестанет работать, но короткое резюме, которое делает этот ответ автономным, было бы лучше.
Серебряная рыба
2

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

часT'часTзнак равноΠКзнак равно1T'-Tвесσ'(весчасT'-К)

sT'sTзнак равноΠКзнак равно1T'-Tσ(vT+К)

  • T'-T
  • ответ - да , поэтому LSTM также пострадает от исчезающих градиентов, но не так сильно, как ванильный RNN

весσ'()σ()

σ()1
vT+Кзнак равновесИксвесИксвес

Иксзнак равно1весзнак равно10 vT+Кзнак равно10σ()знак равно0.99995

(0,99995)T'-T

весσ'(весчасT'-К)1

часT'-Кзнак равно1весσ'(вес*1)0,224весзнак равно1,5434

(0,224)T'-T

Kevin
источник