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

GRU

GRU

классикаТо же, что и LSTM: ниша лёгких последовательных моделей.

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

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

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

  • Меньше параметров, быстрее обучение при сопоставимом качестве.
  • Часто выигрывает на небольших выборках.
  • Выбор между и почти всегда решается экспериментом.

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

отвечает на прикладной вопрос: нужны ли все три вентиля и отдельная линия памяти? Оказалось, что нет. Состояние здесь одно, вентилей два, параметров примерно на четверть меньше — а качество на большинстве задач неотличимо.

Ключевая конструкция — update gate, который сам распределяет вес между старым состоянием и новым кандидатом: сколько добавили нового, столько же забыли старого. В эти два решения принимаются независимо, в они связаны, и на практике этой связанности почти всегда достаточно.

Как проверить, что вам хватит GRU

Обучите обе модели с одинаковым числом параметров (у при равном размере состояния их меньше, поэтому состояние можно взять чуть шире) и сравните на валидации. В подавляющем большинстве прикладных задач разница окажется в пределах шума между сидами — тогда берите GRU: она быстрее и её проще держать в проде. Разрыв в пользу обычно появляется только на синтетических задачах с очень долгой памятью вроде копирования последовательности через сотни шагов.

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

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

Обозначения
  • сигмоида: сжимает число в интервал от 0 до 1
  • награда, полученная агентом на шаге
  • объект: вектор признаков
Update gate одновременно играет роль forget и input
Вентилей32
Отдельное состояние ячейкиестьнет
Параметровбольше на ~33%меньше
Когда лучшедлинные зависимости, много данныхмалые выборки, ограничения по скорости

  • Мало данных или жёсткие ограничения по скорости — начните с .
  • Очень длинные зависимости и большой корпус — чаще выигрывает.
  • Разница в качестве обычно в пределах 1–2%, разница в скорости — до 25%.
  • Если задача допускает параллелизм и данных много, сравните обе с .

Где применяется

  • Прод вместо На четверть меньше параметров и заметно быстрее шаг при том же качестве — разумный выбор по умолчанию среди рекуррентных.
  • на устройствеМеньше весов и меньше умножений: важно для микроконтроллеров и телефонов.
  • Короткие и средние последовательностиДо сотни шагов разницы с обычно нет вовсе.
  • Быстрая Дешёвая рекуррентная модель, чтобы понять, есть ли вообще польза от учёта порядка.

Плюсы, минусы и альтернативы

Плюсы

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

Минусы

  • На очень длинных зависимостях иногда всё же чуть точнее — отдельная линия памяти даёт больше свободы.
  • Обучение так же последовательно, параллелизма нет.
  • Как и вся рекуррентность, вытеснена в NLP.
  • Меньше готовых предобученных весов, чем у .

Брать, если

  • Выбираете рекуррентную сеть и нет причин настаивать на — берите .
  • Жёсткие ограничения по памяти и скорости.
  • Последовательности короткие или средние.

Не брать, если

  • Задача заведомо требует очень долгой памяти и вы уже упёрлись — проверьте .
  • Есть и длинный контекст — .

Чем заменяют

Видеолекции

Тайм-кода именно на эту тему в записях нет. Но глава «Глубокое обучение» разобрана в курсах целиком — с той оговоркой, что место в записи придётся искать самому.

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

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

RNN80%

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

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

LSTM80%

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

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

RNN/LSTM for NLP80%

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

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

Sequence-to-Sequence80%

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

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

RNN/LSTM80%

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

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

Backpropagation80%

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

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

Следующий шагДальше по связи: RNNОбрабатывают последовательность шаг за шагом, перенося скрытое состояние между позициями.Перейти →

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