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

Долгая краткосрочная память

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

История

Архитектура LSTM была предложена в 1997 году немецкими исследователями Зеппом Хохрайтером (Sepp Hochreiter) и Юргеном Шмидхубером (Jürgen Schmidhuber) в статье «Long Short-Term Memory». Изначально она была разработана для решения проблемы долгосрочных зависимостей в нейронных сетях, которую Хохрайтер подробно описал в своей дипломной работе 1991 года. В последующие годы архитектура неоднократно дорабатывалась: в 1999 году Феликс Герс (Felix Gers) и его коллеги ввели механизм «забывающего шлюза» (forget gate), который позволил сети сбрасывать ненужную информацию. В 2000-х годах LSTM стала основой для многих приложений в области распознавания речи, машинного перевода и генерации текста, а с появлением библиотек глубокого обучения (TensorFlow, PyTorch) получила широкое распространение.

Устройство и принцип работы

Проблема классических RNN

Обычные рекуррентные нейронные сети обрабатывают последовательности поэлементно, передавая скрытое состояние от одного шага к другому. Однако при обучении с помощью обратного распространения ошибки во времени (Backpropagation Through Time, BPTT) градиенты могут экспоненциально уменьшаться (исчезать) или расти (взрываться) при прохождении через большое количество шагов. Это делает невозможным обучение сети на последовательностях длиной более 10–20 шагов.

Структура LSTM-ячейки

LSTM-ячейка (LSTM cell) — это базовый элемент сети, который заменяет обычный нейрон RNN. В отличие от простого скрытого состояния, LSTM-ячейка содержит три ключевых компонента:

  • Состояние ячейки (cell state) — основная «лента конвейера», которая проходит через всю последовательность и может изменяться только под контролем шлюзов. Это позволяет информации сохраняться без изменений на протяжении многих шагов.
  • Скрытое состояние (hidden state) — выход ячейки на текущем шаге, который передаётся на следующий шаг и используется для предсказаний.
  • Шлюзы (gates) — три регулируемых механизма, которые управляют потоком информации:
  1. Забывающий шлюз (forget gate) — решает, какую часть информации из предыдущего состояния ячейки следует забыть. Он принимает на вход текущий входной вектор \(x_t\) и предыдущее скрытое состояние \(h_{t-1}\), пропуская их через сигмоидную функцию активации, которая выдаёт значения от 0 (полностью забыть) до 1 (полностью сохранить).
  2. Входной шлюз (input gate) — определяет, какая новая информация будет записана в состояние ячейки. Он состоит из двух частей: сигмоидного слоя, который решает, какие значения обновлять, и слоя гиперболического тангенса (tanh), который создаёт вектор кандидатов на добавление.
  3. Выходной шлюз (output gate) — контролирует, какая часть состояния ячейки будет выведена в скрытое состояние и на выход сети. Он использует сигмоидный слой для фильтрации состояния ячейки, после чего пропускает результат через tanh.

Математическая модель

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

\[ \begin{aligned} f_t &= \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) \quad \text{(забывающий шлюз)} \\ i_t &= \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) \quad \text{(входной шлюз)} \\ \tilde{C}_t &= \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) \quad \text{(кандидат на обновление)} \\ C_t &= f_t \odot C_{t-1} + i_t \odot \tilde{C}_t \quad \text{(новое состояние ячейки)} \\ o_t &= \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) \quad \text{(выходной шлюз)} \\ h_t &= o_t \odot \tanh(C_t) \quad \text{(новое скрытое состояние)} \end{aligned} \]

Где \(\sigma\) — сигмоидная функция, \(\tanh\) — гиперболический тангенс, \(\odot\) — поэлементное умножение, \(W\) и \(b\) — обучаемые веса и смещения.

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

Стандартная LSTM

Базовая архитектура, описанная выше, включает все три шлюза и состояние ячейки. Она является наиболее распространённой.

Peephole LSTM

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

LSTM с забывающим шлюзом

В оригинальной версии 1997 года забывающий шлюз отсутствовал; он был добавлен позже и стал стандартом. Некоторые реализации также используют единый шлюз для забывания и входа (coupled forget and input gate), что упрощает вычисления.

Двунаправленная LSTM (BiLSTM)

Двунаправленная LSTM обрабатывает последовательность в двух направлениях: слева направо и справа налево. Это позволяет учитывать контекст с обеих сторон от текущего элемента, что особенно полезно в задачах обработки естественного языка (например, распознавание именованных сущностей).

Стек LSTM (Stacked LSTM)

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

Применение

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

LSTM широко используется в задачах NLP, таких как:

  • Машинный переводперевод текста с одного языка на другой (например, нейросетевые системы Google Translate).
  • Генерация текста — создание связных текстов, включая написание стихов, сценариев и кода.
  • Анализ тональности — определение эмоциональной окраски текста (позитивная, негативная, нейтральная).
  • Распознавание именованных сущностейвыделение имён, дат, мест и других сущностей из текста.

Распознавание речи

LSTM является основой многих современных систем распознавания речи, таких как DeepSpeech от Mozilla. Она позволяет обрабатывать аудиосигналы как последовательности и преобразовывать их в текст.

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

LSTM успешно применяется для прогнозирования финансовых рынков, погоды, спроса на электроэнергию и других временных рядов. Например, в России LSTM используется в системах прогнозирования нагрузки на энергосети и в алгоритмах трейдинга.

Обработка видео

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

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

LSTM применяется для анализа последовательностей ДНК, предсказания структуры белков и классификации генов.

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

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

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

Недостатки

  • Высокая вычислительная сложность — из-за большого числа параметров (четыре набора весов на ячейку) LSTM требует значительных вычислительных ресурсов и времени обучения.
  • Склонность к переобучению — на малых наборах данных LSTM может легко запомнить шум, что требует применения регуляризации (например, dropout).
  • Сложность интерпретации — внутренние состояния LSTM трудно интерпретировать, что затрудняет анализ принятия решений.

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

LSTM vs GRU

Gated Recurrent Unit (GRU) — это упрощённая версия LSTM, предложенная в 2014 году. GRU объединяет забывающий и входной шлюзы в один «шлюз обновления» и не имеет отдельного состояния ячейки. Это уменьшает количество параметров, что ускоряет обучение, но может снижать способность к запоминанию на очень длинных последовательностях. На практике GRU часто показывает сопоставимые результаты с LSTM при меньших вычислительных затратах.

LSTM vs Transformer

Трансформеры (Transformer), предложенные в 2017 году, основаны на механизме внимания и не имеют рекуррентной структуры. Они превосходят LSTM в задачах машинного перевода и генерации текста, особенно на больших объёмах данных, благодаря возможности параллельной обработки. Однако LSTM остаётся предпочтительной для задач с короткими последовательностями или когда требуется обработка в реальном времени.

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

  • LSTM была названа «долгой краткосрочной памятью» в ироническом смысле: она способна запоминать информацию на длительное время, но при этом остаётся «краткосрочной» по своей природе (как и обычные RNN).
  • В 2015 году Google объявила, что LSTM используется в 60% всех её продуктов, включая распознавание речи в Google Assistant и машинный перевод в Google Translate.
  • В 2016 году нейросеть на основе LSTM, обученная на текстах песен, написала песню «Daddy’s Car» в стиле The Beatles, которая была исполнена группой музыкантов.

Критика

Несмотря на широкое распространение, LSTM подвергается критике за высокую вычислительную сложность и сложность настройки гиперпараметров. Некоторые исследователи утверждают, что в задачах с большими объёмами данных трансформеры и архитектуры на основе механизма внимания (например, BERT, GPT) обеспечивают более высокую точность. Кроме того, LSTM не всегда корректно обрабатывает очень длинные последовательности (более 1000 шагов), где могут возникать проблемы с памятью.

Источники

  • 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.
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
  • Olah, C. (2015). Understanding LSTM Networks. Colah’s Blog.
  • Graves, A. (2012). Supervised Sequence Labelling with Recurrent Neural Networks. Springer.

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

На главную BFOmetr →