Открыть сервис

LSTM

LSTM (от англ. Long Short-Term Memory — «длинная краткосрочная память») — это разновидность рекуррентной нейронной сети (RNN), специально разработанная для обработки последовательных данных и способная обучаться долгосрочным зависимостям. В отличие от стандартных RNN, LSTM эффективно решает проблему исчезающего и взрывающегося градиента, что позволяет модели запоминать информацию на протяжении длительных временных интервалов (от нескольких шагов до тысяч). Сети LSTM широко применяются в задачах обработки естественного языка (машинный перевод, распознавание речи, генерация текста), прогнозирования временных рядов (финансовые рынки, погода), анализа аудио- и видеоданных, а также в биоинформатике и робототехнике.

История

LSTM была предложена в 1997 году немецкими исследователями Зеппом Хохрайтером (Sepp Hochreiter) и Юргеном Шмидхубером (Jürgen Schmidhuber) в работе «Long Short-Term Memory» (Neural Computation, vol. 9, no. 8, 1997). Основной мотивацией стало преодоление ограничений классических рекуррентных сетей, которые не могли удерживать информацию на больших промежутках времени из-за экспоненциального затухания градиентов при обратном распространении ошибки. Хохрайтер и Шмидхубер предложили архитектуру с ячейками памяти и специальными вентилями (гейтами), которые регулируют поток информации.

В 2000 году Феликс Герс (Felix Gers) и Юрген Шмидхубер добавили в LSTM «вентиль забывания» (forget gate), что позволило сети сбрасывать ненужную память и улучшило производительность на длинных последовательностях. В 2005 году Алекс Грейвс (Alex Graves) и другие модифицировали LSTM для задач распознавания рукописного текста и речи, добившись рекордных результатов. С 2010-х годов LSTM стала основой многих промышленных систем, включая голосовых помощников (Siri, Google Assistant), машинный перевод (Google Translate) и автозаполнение текста (Gmail).

Архитектура

Основной элемент LSTM — ячейка памяти (cell state), которая проходит через всю цепочку времени, сохраняя информацию. Управление потоком данных осуществляется тремя вентилями (гейтами):

  • Вентиль забывания (forget gate, \( f_t \)): определяет, какую информацию из предыдущего состояния ячейки (\( C_{t-1} \)) следует удалить. Принимает значения от 0 (полное забывание) до 1 (полное сохранение).
  • Входной вентиль (input gate, \( i_t \)): решает, какая новая информация будет добавлена в ячейку. Состоит из двух частей: сигмоидного слоя (определяет, какие значения обновлять) и слоя tanh (генерирует кандидатов в память \( \tilde{C}_t \)).
  • Выходной вентиль (output gate, \( o_t \)): контролирует, какая часть текущего состояния ячейки будет передана на выход (скрытое состояние \( h_t \)).

Математически работа LSTM на каждом временном шаге \( t \) описывается следующими уравнениями:

  1. \( f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) \)
  2. \( i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) \)
  3. \( \tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) \)
  4. \( C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t \)
  5. \( o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) \)
  6. \( h_t = o_t \odot \tanh(C_t) \)

Здесь:

  • \( x_t \) — входной вектор на шаге \( t \);
  • \( h_{t-1} \) — предыдущее скрытое состояние;
  • \( C_{t-1} \) — предыдущее состояние ячейки;
  • \( W \) и \( b \) — обучаемые веса и смещения;
  • \( \sigma \) — сигмоидная функция активации (от 0 до 1);
  • \( \tanh \) — гиперболический тангенс (от -1 до 1);
  • \( \odot \) — поэлементное умножение.

Графическая схема

Типичная LSTM-ячейка включает три вентиля и две петли: одна для состояния ячейки (горизонтальная линия сверху), другая для скрытого состояния. Вентили представляют собой сигмоидные слои, которые «открывают» или «закрывают» каналы для информации.

Разновидности и модификации

LSTM с вентилем забывания (vanilla LSTM)

Базовая версия, описанная выше. Содержит все три вентиля и используется в большинстве приложений.

Peephole LSTM

В этой модификации вентили получают дополнительный вход от состояния ячейки \( C_{t-1} \) (или \( C_t \)), что позволяет сети лучше учитывать долгосрочную память. Предложена Герсом и Шмидхубером в 2000 году.

Gated Recurrent Unit (GRU)

Упрощённая версия LSTM, объединяющая вентили забывания и входной вентиль в один «вентиль обновления» (update gate), а также использующая только одно скрытое состояние. GRU имеет меньше параметров и часто быстрее обучается, но на некоторых задачах уступает LSTM. Предложена в 2014 году Кюнхёном Чо (Kyunghyun Cho) и другими.

Bidirectional LSTM (BiLSTM)

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

Stacked LSTM (многослойная LSTM)

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

Применение

Обработка естественного языка (NLP)

  • Машинный перевод: LSTM использовалась в системах Google Translate до перехода на трансформеры (2017). Модели типа sequence-to-sequence (seq2seq) с LSTM-кодировщиком и декодировщиком достигали высокого качества перевода.
  • Распознавание речи: LSTM применяется для моделирования акустических сигналов, например, в системах Deep Speech от Baidu.
  • Генерация текста: LSTM способна генерировать осмысленные последовательности символов или слов, что используется в чат-ботах и автозаполнении.
  • Анализ тональности: классификация отзывов или комментариев по эмоциональной окраске.

Прогнозирование временных рядов

  • Финансы: прогнозирование цен акций, курсов валют, волатильности. LSTM учитывает долгосрочные тренды и сезонные колебания.
  • Энергетика: предсказание нагрузки на электросети, потребления электроэнергии.
  • Метеорология: прогнозирование температуры, осадков, уровня воды.

Биоинформатика

  • Анализ последовательностей ДНК/РНК: предсказание структуры белков, выявление генетических мутаций.
  • Классификация медицинских сигналов: ЭКГ, ЭЭГ — LSTM используется для диагностики аритмий и эпилептических припадков.

Робототехника и управление

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

Преимущества и недостатки

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

  • Долгосрочная память: способность удерживать информацию на сотни и тысячи шагов.
  • Устойчивость к исчезающему градиенту: вентили позволяют градиентам свободно проходить через ячейку.
  • Гибкость: LSTM может обрабатывать последовательности переменной длины.
  • Широкая применимость: от текста до аудио и видео.

Недостатки

  • Высокая вычислительная сложность: каждый шаг требует множества матричных умножений и нелинейных функций, что замедляет обучение и инференс.
  • Параметрическая избыточность: большое количество весов (до 4 раз больше, чем у простой RNN).
  • Трудности с параллелизацией: последовательная природа LSTM затрудняет использование GPU для ускорения (по сравнению с трансформерами).
  • Конкуренция со стороны трансформеров: начиная с 2017 года, архитектуры на основе механизма внимания (трансформеры) вытесняют LSTM во многих задачах NLP, особенно в машинном переводе и генерации текста.

Сравнение с другими архитектурами

ПараметрLSTMGRUТрансформер
Количество вентилей32Нет (механизм внимания)
ПараметрыМногоМеньшеОчень много (зависит от размера)
ПараллелизацияСлабаяСлабаяПолная (обработка всей последовательности сразу)
Долгосрочная памятьОтличнаяХорошаяОтличная (с позиционным кодированием)
Скорость обученияНизкаяСредняяВысокая (на GPU)
Популярность (2025)Снижается, но используется в ряде задачУмереннаяДоминирует в NLP

Интересные факты

  • Название «Long Short-Term Memory» отражает парадокс: сеть предназначена для запоминания информации на долгий срок, но использует механизмы «короткой» памяти (вентили).
  • Первая LSTM-система, превзошедшая человека в распознавании речи, была создана в 2015 году компанией Microsoft (система с 5 слоями LSTM).
  • LSTM активно применяется в автономных автомобилях для прогнозирования траекторий других участников движения.
  • В 2020 году исследователи из MIT предложили модификацию LSTM — «LSTM with attention», которая комбинирует рекуррентную обработку с механизмом внимания.

Источники

  • Hochreiter, S., & Schmidhuber, J. (1997). Long Short-Term Memory. Neural Computation, 9(8), 1735–1780.
  • Gers, F. A., Schmidhuber, J., & Cummins, F. (2000). Learning to Forget: Continual Prediction with LSTM. Neural Computation, 12(10), 2451–2471.
  • Graves, A., Mohamed, A., & Hinton, G. (2013). Speech Recognition with Deep Recurrent Neural Networks. IEEE International Conference on Acoustics, Speech and Signal Processing.
  • Cho, K., van Merriënboer, B., Gulcehre, C., et al. (2014). Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation. arXiv:1406.1078.
  • Olah, C. (2015). Understanding LSTM Networks. Colah’s Blog.
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press (глава 10).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →