У меня есть базовые знания о том, как работают RNN (и, в частности, с блоками LSTM). У меня есть графическое представление об архитектуре модуля LSTM, то есть ячейки и нескольких шлюзов, которые регулируют поток значений.
Однако, по-видимому, я не до конца понял, как LSTM решает проблему «исчезающих и взрывающихся градиентов», которая возникает при обучении с использованием обратного распространения во времени обычной RNN. У меня не было возможности читать газеты, чтобы полностью понять математику.
Этот ответ дает краткое объяснение того, как RNN с блоками LSTM решают проблему «исчезающих градиентов». Математически, причина, по-видимому, заключается в отсутствии производной, которая не обращается в ноль, то есть не стремится к нулю. Следовательно, автор утверждает, что «существует хотя бы один путь, в котором градиент не исчезает». ИМХО, это объяснение немного расплывчато.
Тем временем я читал статью « Последовательность к обучению последовательностей с нейронными сетями» (Илья Суцкевер, Ориол Виньялс, Куок В. Ле), и в этой статье, раздел «3.4 Детали обучения», говорится
Хотя LSTM, как правило, не страдают от исчезающей проблемы градиента, они могут иметь взрывные градиенты.
Я всегда думал, что RNN с блоками LSTM решают проблемы «исчезновения» и «взрывающихся градиентов», но, очевидно, RNN с блоками LSTM также страдают от «взрывающихся градиентов».
Интуитивно, почему это? Математически, каковы причины?
Однако есть еще пути, по которым градиент может стать нестабильным, и чем больше сеть, тем более вероятно, что вы столкнетесь с этой проблемой.
источник