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

Рекуррентная нейронная сеть

Рекуррентная нейронная сеть (РНС, англ. Recurrent Neural Network, RNN) — это класс искусственных нейронных сетей, в котором связи между нейронами образуют направленную последовательность, позволяющую обрабатывать данные с переменной длиной и учитывать временную или логическую последовательность входных сигналов. В отличие от сетей прямого распространения (feedforward), РНС обладают внутренней памятью, что делает их пригодными для задач, где важен контекст предыдущих элементов: обработка текста, речи, временных рядов, музыки и видео.

История

Концепция рекуррентных нейронных сетей восходит к работам 1980-х годов. В 1982 году американский нейробиолог Джон Хопфилд предложил модель сети Хопфилда — рекуррентную ассоциативную память, которая могла восстанавливать образы по частичным данным. В 1986 году Дэвид Румельхарт, Джеффри Хинтон и Рональд Уильямс опубликовали алгоритм обратного распространения ошибки, адаптированный для РНС (Backpropagation Through Time, BPTT). Однако практическое применение РНС долгое время сдерживалось проблемой исчезающих градиентов (vanishing gradient), когда веса в дальних слоях переставали обновляться.

В 1997 году немецкие исследователи Зепп Хохрайтер и Юрген Шмидхубер разработали долгую краткосрочную память (LSTM) — специализированную архитектуру РНС, способную запоминать информацию на длительные промежутки времени. В 2014 году была предложена управляемая рекуррентная единица (GRU), упрощённая версия LSTM. С 2010-х годов РНС стали основой для систем машинного перевода, распознавания речи и генерации текста, пока не были вытеснены трансформерами (2017) в большинстве NLP-задач.

Архитектура и принцип работы

Базовая структура

Рекуррентная нейронная сеть состоит из последовательности ячеек (или слоёв), каждая из которых принимает два входа:

  • текущий элемент входной последовательности \(x_t\);
  • скрытое состояние предыдущей ячейки \(h_{t-1}\).

Выход ячейки — новое скрытое состояние \(h_t\) и, опционально, выходной вектор \(y_t\). Формула для простой РНС (Elman RNN): \[ h_t = \tanh(W_{xh} x_t + W_{hh} h_{t-1} + b_h) \] \[ y_t = W_{hy} h_t + b_y \] где \(W\) — матрицы весов, \(b\) — смещения, \(\tanh\) — гиперболический тангенс (функция активации).

Развёртывание во времени

Для обучения РНС применяется метод обратного распространения ошибки во времени (BPTT). Сеть «разворачивается» в эквивалентную сеть прямого распространения с числом слоёв, равным длине последовательности. Градиенты ошибки передаются от последнего шага к первому, что при больших длинах ведёт к их затуханию или взрыву.

Проблемы обучения

  • Исчезающий градиент: при длинных последовательностях градиенты становятся близкими к нулю, и сеть перестаёт учиться.
  • Взрывающий градиент: градиенты могут экспоненциально расти, что приводит к нестабильности обучения (решается обрезанием градиентов — gradient clipping).
  • Долгосрочные зависимости: простая РНС плохо запоминает информацию, отстоящую на десятки шагов.

Виды и архитектуры

Простая рекуррентная сеть (Elman RNN)

Базовая модель с одним скрытым слоем и функцией активации \(\tanh\) или ReLU. Используется в учебных целях, но редко применяется на практике из-за проблем с обучением.

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

LSTM (Long Short-Term Memory) вводит вентили (gates) для управления потоком информации:

  • входной вентиль (input gate) — решает, какую новую информацию добавить в состояние ячейки;
  • вентиль забывания (forget gate) — решает, какую информацию удалить из состояния;
  • выходной вентиль (output gate) — решает, какую часть состояния выдать на выход.

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

Управляемая рекуррентная единица (GRU)

GRU (Gated Recurrent Unit) — упрощённая версия LSTM, объединяющая вентили забывания и входа в один вентиль обновления (update gate). Имеет меньше параметров, что ускоряет обучение, но может быть менее точной на некоторых задачах.

Двунаправленная РНС (BiRNN)

Обрабатывает последовательность в прямом и обратном направлениях, объединяя скрытые состояния. Позволяет учитывать контекст как слева, так и справа от текущего элемента. Часто используется в задачах классификации текста и распознавания сущностей.

Многослойная РНС (Deep RNN)

Сеть с несколькими рекуррентными слоями, расположенными друг над другом. Каждый слой передаёт своё скрытое состояние следующему слою. Увеличивает ёмкость модели, но требует больше вычислительных ресурсов.

Применение

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

  • Машинный перевод: последовательно-последовательные модели (seq2seq) на основе LSTM или GRU (например, Google Neural Machine Translation, 2016).
  • Генерация текста: модели, предсказывающие следующее слово (например, char-rnn Андрея Карпатого, 2015).
  • Распознавание именованных сущностей (NER) и частей речи (POS-tagging).
  • Анализ тональности (sentiment analysis) и классификация текстов.

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

РНС, особенно LSTM, используются в акустических моделях для преобразования звукового сигнала в фонемы или слова. Примеры: DeepSpeech (Mozilla), Google Voice Search.

Временные ряды

  • Прогнозирование цен акций, погоды, спроса на электроэнергию.
  • Обнаружение аномалий в данных датчиков.

Видео и мультимедиа

  • Анализ видеопоследовательностей (распознавание действий, описание видео).
  • Генерация музыки (например, модель BachBot, основанная на LSTM).

Робототехника

Управление движениями роботов на основе последовательностей сенсорных данных.

Ограничения и развитие

Недостатки

  • Параллелизация: РНС обрабатывают последовательность шаг за шагом, что затрудняет распараллеливание вычислений.
  • Долгосрочная память: даже LSTM и GRU имеют ограничения на длину контекста (обычно до нескольких сотен шагов).
  • Забывание: при очень длинных последовательностях (например, целые книги) информация может теряться.

Сравнение с трансформерами

С 2017 года архитектура трансформер (Transformer) на основе механизма внимания (attention) вытеснила РНС в большинстве NLP-задач. Трансформеры обрабатывают всю последовательность параллельно, лучше улавливают долгосрочные зависимости и легче масштабируются. Однако РНС остаются актуальными для:

  • задач с очень длинными последовательностями, где память трансформера становится ограничением;
  • встраиваемых систем с низким энергопотреблением (например, в мобильных устройствах);
  • обучения с подкреплением (RL), где требуется обработка непрерывных потоков данных.

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

  • Первая коммерческая система распознавания речи на основе РНС была выпущена компанией Nuance в 2014 году.
  • В 2015 году Google перевёл свою систему машинного перевода на LSTM, что улучшило качество на 60% по сравнению с предыдущей моделью.
  • Архитектура LSTM используется в автозаполнении текста на смартфонах (например, Gboard).

Источники

  • Hochreiter, S., & Schmidhuber, J. (1997). Long Short-Term Memory. Neural Computation, 9(8), 1735–1780.
  • Cho, K., et al. (2014). Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation. arXiv:1406.1078.
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. Глава 10.
  • Olah, C. (2015). Understanding LSTM Networks. Colah's Blog.
  • Vaswani, A., et al. (2017). Attention Is All You Need. NeurIPS.

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

На главную BFOmetr →