Чем LSTM отличается от традиционной RNN?



▫️Рекуррентные нейронные сети (recurrent networks, RNN) были придуманы для работы с последовательностями данных, такими как текст или временные ряды. Чтобы сеть могла хранить информацию о предыдущих токенах, было введено понятие внутренней памяти или скрытого состояния (hidden state). В простейшем случае оно выражается одним вектором фиксированной размерности. На каждом шаге в сеть подаются данные, при этом происходит обновление скрытого состояния. После этого по скрытому состоянию предсказывается выходной сигнал.

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

▫️Сети с долговременной и кратковременной памятью (Long short term memory, LSTM) были созданы для решения вышеозначенной проблемы. Все рекуррентные сети можно представить в виде цепочки из повторяющихся блоков. В RNN таким блоком обычно является один линейный слой с гиперболическим тангенсом в качестве функции активации. В LSTM повторяющийся блок имеет более сложную структуру, состоящую не из одного, а из четырёх компонентов. Кроме скрытого состояния, в LSTM появляется понятие состояния блока (cell state). Hidden state же теперь передаётся наружу (не только в следующий блок, но и на следующий слой или выход всей сети). Также LSTM может добавлять или удалять определённую информацию из cell state с помощью специальных механизмов, которые называются gates.



Всё это позволяет LSTM более тонко контролировать поток информации, улучшая способность сети обучаться и стать более устойчивой к проблемам, связанным с градиентами.



#глубокое_обучение