Глубокое обучение

LSTM

LSTM

классикаИспользуются в лёгких моделях и на устройствах; в новых проектах чаще трансформер.

Направления: Глубокое обучение · Рекуррентные сети

Рекуррентная ячейка с состоянием и тремя вентилями, решающая проблему долгосрочной памяти.

Ключевые тезисы

  • Вентили входа, забывания и выхода управляют потоком информации в cell state.
  • Аддитивный путь состояния позволяет течь через сотни шагов.
  • До — стандарт для перевода, речи и временных рядов.

Какую задачу решает

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

Решение — отдельная линия памяти, состояние ячейки , которая между шагами меняется сложением, а не умножением. Что записать, что стереть и что показать наружу, решают три обучаемых вентиля. по этой линии течёт почти без затухания — это тот же трюк, что и в ResNet, только придуманный на двадцать лет раньше.

Что делает forget gate на практике

Модель читает отзыв: «Отель ужасный. Правда, завтрак неплохой, и персонал вежливый. В общем, больше не приеду». К концу текста нужно помнить общий негатив, несмотря на два положительных предложения посередине. Forget gate держится близко к 1 на канале «общая тональность» — эта память не стирается, — но сбрасывается почти в 0 на канале «текущий объект оценки», когда предложение сменилось. Один вентиль одновременно поддерживает и долгую, и короткую память, потому что решение принимается отдельно для каждой размерности состояния.

Подробный разбор

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

Обозначения
  • сигмоида: сжимает число в интервал от 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 шагов): или даже по времени проще и быстрее.

Чем заменяют

Тема также относится к главам:Временные рядыML-подходы

Видеолекции

Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.

Связанные темы

Последовательные модели

RNN80%

Рекуррентные сети · Глубокое обучение

Обрабатывают последовательность шаг за шагом, перенося скрытое состояние между позициями.

GRU80%

GRU · Глубокое обучение

Упрощённая LSTM: два вентиля вместо трёх и отсутствие отдельного cell state.

RNN/LSTM for NLP80%

RNN/LSTM в NLP · Обработка естественного языка

Первое поколение нейросетевых моделей языка: последовательная обработка токенов со скрытым состоянием.

Sequence-to-Sequence80%

Seq2Seq · Обработка естественного языка

Схема «энкодер сжимает вход — декодер порождает выход» для перевода, суммаризации и диалога.

RNN/LSTM80%

RNN/LSTM для рядов · Временные ряды

Нейросети, обучаемые сразу на множестве связанных рядов, улавливают общие паттерны.

Backpropagation80%

Обратное распространение ошибки · Глубокое обучение

Эффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.

Проверить себя

Тема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.

Следующий шагПроверить себя: Глубокое обучениеТема встречается в этом тесте 1 раз. Ошибка приведёт обратно на эту страницу — с объяснением, что именно не сошлось.Перейти →

Глава «Глубокое обучение» последний раз правилась . Нашли ошибку — напишите.