Ответ
LSTM (Long Short-Term Memory) — это специализированный тип рекуррентной нейронной сети (RNN), разработанный для эффективного обучения на последовательностях с долгосрочными зависимостями. Его ключевое отличие от стандартных RNN — архитектура с управляемыми "вентилями" (gates), которая решает проблему исчезающего и взрывного градиента.
Ключевые компоненты ячейки LSTM:
- Forget Gate (Вентиль забывания): Решает, какую информацию из долгосрочного состояния (cell state) нужно удалить. Использует сигмоиду для вывода значения между 0 (полностью забыть) и 1 (полностью сохранить).
- Input Gate (Вентиль входа): Определяет, какая новая информация будет записана в долгосрочное состояние. Состоит из двух частей: сигмоидальный слой решает, какие значения обновлять, а слой
tanhсоздает вектор новых значений-кандидатов. - Cell State (Состояние ячейки): Конвейер долгосрочной памяти, который проходит через всю цепочку с минимальными линейными изменениями, что позволяет информации сохраняться на долгих промежутках.
- Output Gate (Вентиль выхода): Определяет, какая информация из обновленного долгосрочного состояния будет передана в качестве выходных данных и скрытого состояния для следующего шага.
Пример реализации на Keras/TensorFlow:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
model = Sequential()
# 64 нейрона LSTM, вход: последовательность из 10 временных шагов с 1 признаком на шаг
model.add(LSTM(64, input_shape=(10, 1)))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy')
Применение: Прогнозирование временных рядов (финансы, погода), обработка естественного языка (машинный перевод, генерация текста), распознавание речи и видео.