Рекуррентная ячейка с состоянием и тремя вентилями, решающая проблему долгосрочной памяти.
Ключевые тезисы
- Вентили входа, забывания и выхода управляют потоком информации в cell state.
- Аддитивный путь состояния позволяет течь через сотни шагов.
- До — стандарт для перевода, речи и временных рядов.
Какую задачу решает
чинит главную беду простой : невозможность помнить что-то дольше пары десятков шагов. Причина затухания в том, что состояние на каждом шаге умножается на весов; после сотни умножений от сигнала ничего не остаётся.
Решение — отдельная линия памяти, состояние ячейки , которая между шагами меняется сложением, а не умножением. Что записать, что стереть и что показать наружу, решают три обучаемых вентиля. по этой линии течёт почти без затухания — это тот же трюк, что и в ResNet, только придуманный на двадцать лет раньше.
Модель читает отзыв: «Отель ужасный. Правда, завтрак неплохой, и персонал вежливый. В общем, больше не приеду». К концу текста нужно помнить общий негатив, несмотря на два положительных предложения посередине. Forget gate держится близко к 1 на канале «общая тональность» — эта память не стирается, — но сбрасывается почти в 0 на канале «текущий объект оценки», когда предложение сменилось. Один вентиль одновременно поддерживает и долгую, и короткую память, потому что решение принимается отдельно для каждой размерности состояния.
Подробный разбор
- сигмоида: сжимает число в интервал от 0 до 1
- объект: вектор признаков
- Forget gate решает, что стереть из памяти.
- Input gate — что записать.
- Output gate — что показать наружу на этом шаге.
Ключевой : обновляется сложением, а не умножением на . течёт по этому пути почти без затухания — это тот же принцип, что и скип-связи в ResNet.
- Обрезка градиента по (1.0–5.0) обязательна: без неё обучение периодически взрывается.
- Инициализация forget gate смещением +1 помогает сети сразу «помнить» и ускоряет старт.
- Dropout применяют между слоями и как recurrent , но не к самому состоянию ячейки напрямую.
- Длина развёртки (truncated BPTT) — компромисс между памятью и объёмом контекста.
Где применяется
- Временные рядыСпрос, нагрузка, показания датчиков — там, где и события разнесены на десятки шагов.
- Распознавание речи и рукописиКлассическая связка + CTC долго была стандартом и до сих пор жива в компактных офлайн-моделях.
- Онлайн-детекция Постоянная память и линейная стоимость шага позволяют держать модель на длинном потоке бесконечно.
- Компактный NLPКлассификация коротких текстов на устройстве, где не помещается по памяти.
Плюсы, минусы и альтернативы
Плюсы
- Реально помнит сотни шагов — на порядок больше простой .
- Устойчиво обучается там, где расходится.
- Постоянная память и линейное время , независимо от длины истории.
- Проверена десятилетиями, реализована везде, ведёт себя предсказуемо.
Минусы
- Вчетверо больше параметров, чем у простой , — четыре набора весов вместо одного.
- Обучение по-прежнему последовательно и плохо параллелится.
- На длинном контексте уступает и по качеству, и по .
- Три вентиля — три места, где что-то может пойти не так; отлаживать труднее.
- обычно даёт то же качество дешевле — редко оказывается строго лучшим выбором.
Брать, если
- Зависимости в данных длиннее 20–30 шагов, а избыточен или не помещается.
- Нужна потоковая модель с постоянной памятью.
- Данных немного: переобучается медленнее, чем сопоставимого размера.
Не брать, если
- Длинный текст и есть — выигрывает по всем статьям.
- Последовательности короткие (до 20 шагов): или даже по времени проще и быстрее.
Чем заменяют
Видеолекции
Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.
Связанные темы
Последовательные модели
RNN80%
Рекуррентные сети · Глубокое обучениеОбрабатывают последовательность шаг за шагом, перенося скрытое состояние между позициями.
GRU80%
GRU · Глубокое обучениеУпрощённая LSTM: два вентиля вместо трёх и отсутствие отдельного cell state.
RNN/LSTM for NLP80%
RNN/LSTM в NLP · Обработка естественного языкаПервое поколение нейросетевых моделей языка: последовательная обработка токенов со скрытым состоянием.
Sequence-to-Sequence80%
Seq2Seq · Обработка естественного языкаСхема «энкодер сжимает вход — декодер порождает выход» для перевода, суммаризации и диалога.
RNN/LSTM80%
RNN/LSTM для рядов · Временные рядыНейросети, обучаемые сразу на множестве связанных рядов, улавливают общие паттерны.
Backpropagation80%
Обратное распространение ошибки · Глубокое обучениеЭффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Состояние ячейки
Долгая память: обновляется сложением, поэтому информация может жить сотни шагов.
Разбор ниже: Три вентиля и состояние ячейкиForget gate
Решает, какую часть старой памяти стереть. Именно он, а не запись, оказался самым важным вентилем.
Разбор ниже: Три вентиля и состояние ячейкиInput gate
Решает, какую часть нового кандидата записать в память.
Разбор ниже: Три вентиля и состояние ячейкиOutput gate
Решает, что из памяти показать наружу как — наружу уходит не вся память.
Разбор ниже: Три вентиля и состояние ячейкиАддитивный путь градиента
Из-за сложения по не умножается на весов и не затухает экспоненциально.
Разбор ниже: Три вентиля и состояние ячейкиТема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.
Глава «Глубокое обучение» последний раз правилась . Нашли ошибку — напишите.