Упрощённая : два вентиля вместо трёх и отсутствие отдельного cell state.
Ключевые тезисы
- Меньше параметров, быстрее обучение при сопоставимом качестве.
- Часто выигрывает на небольших выборках.
- Выбор между и почти всегда решается экспериментом.
Какую задачу решает
отвечает на прикладной вопрос: нужны ли все три вентиля и отдельная линия памяти? Оказалось, что нет. Состояние здесь одно, вентилей два, параметров примерно на четверть меньше — а качество на большинстве задач неотличимо.
Ключевая конструкция — update gate, который сам распределяет вес между старым состоянием и новым кандидатом: сколько добавили нового, столько же забыли старого. В эти два решения принимаются независимо, в они связаны, и на практике этой связанности почти всегда достаточно.
Обучите обе модели с одинаковым числом параметров (у при равном размере состояния их меньше, поэтому состояние можно взять чуть шире) и сравните на валидации. В подавляющем большинстве прикладных задач разница окажется в пределах шума между сидами — тогда берите GRU: она быстрее и её проще держать в проде. Разрыв в пользу обычно появляется только на синтетических задачах с очень долгой памятью вроде копирования последовательности через сотни шагов.
Подробный разбор
- сигмоида: сжимает число в интервал от 0 до 1
- награда, полученная агентом на шаге
- объект: вектор признаков
| Вентилей | 3 | 2 |
| Отдельное состояние ячейки | есть | нет |
| Параметров | больше на ~33% | меньше |
| Когда лучше | длинные зависимости, много данных | малые выборки, ограничения по скорости |
- Мало данных или жёсткие ограничения по скорости — начните с .
- Очень длинные зависимости и большой корпус — чаще выигрывает.
- Разница в качестве обычно в пределах 1–2%, разница в скорости — до 25%.
- Если задача допускает параллелизм и данных много, сравните обе с .
Где применяется
- Прод вместо На четверть меньше параметров и заметно быстрее шаг при том же качестве — разумный выбор по умолчанию среди рекуррентных.
- на устройствеМеньше весов и меньше умножений: важно для микроконтроллеров и телефонов.
- Короткие и средние последовательностиДо сотни шагов разницы с обычно нет вовсе.
- Быстрая Дешёвая рекуррентная модель, чтобы понять, есть ли вообще польза от учёта порядка.
Плюсы, минусы и альтернативы
Плюсы
- Меньше параметров и быстрее обучение при сопоставимом качестве.
- Проще устроена — легче отлаживать и объяснять.
- На малых данных переобучается меньше просто за счёт размера.
- Все преимущества рекуррентности сохранены: поток, постоянная память, любая длина.
Минусы
- На очень длинных зависимостях иногда всё же чуть точнее — отдельная линия памяти даёт больше свободы.
- Обучение так же последовательно, параллелизма нет.
- Как и вся рекуррентность, вытеснена в NLP.
- Меньше готовых предобученных весов, чем у .
Брать, если
- Выбираете рекуррентную сеть и нет причин настаивать на — берите .
- Жёсткие ограничения по памяти и скорости.
- Последовательности короткие или средние.
Не брать, если
- Задача заведомо требует очень долгой памяти и вы уже упёрлись — проверьте .
- Есть и длинный контекст — .
Чем заменяют
Видеолекции
Тайм-кода именно на эту тему в записях нет. Но глава «Глубокое обучение» разобрана в курсах целиком — с той оговоркой, что место в записи придётся искать самому.
Связанные темы
Последовательные модели
RNN80%
Рекуррентные сети · Глубокое обучениеОбрабатывают последовательность шаг за шагом, перенося скрытое состояние между позициями.
LSTM80%
LSTM · Глубокое обучениеРекуррентная ячейка с состоянием и тремя вентилями, решающая проблему долгосрочной памяти.
RNN/LSTM for NLP80%
RNN/LSTM в NLP · Обработка естественного языкаПервое поколение нейросетевых моделей языка: последовательная обработка токенов со скрытым состоянием.
Sequence-to-Sequence80%
Seq2Seq · Обработка естественного языкаСхема «энкодер сжимает вход — декодер порождает выход» для перевода, суммаризации и диалога.
RNN/LSTM80%
RNN/LSTM для рядов · Временные рядыНейросети, обучаемые сразу на множестве связанных рядов, улавливают общие паттерны.
Backpropagation80%
Обратное распространение ошибки · Глубокое обучениеЭффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Reset gate
Решает, какую часть прошлого состояния учитывать при вычислении кандидата — механизм «начать с чистого листа».
Разбор ниже: GRU против LSTMЕдиное состояние
Нет отдельного : долгая и короткая память живут в одном .
Разбор ниже: GRU против LSTMГлава «Глубокое обучение» последний раз правилась . Нашли ошибку — напишите.