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

RNN

Рекуррентные сети

классикаПочти полностью вытеснены трансформерами.

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

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

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

  • Веса общие для всех шагов, длина входа не фиксирована.
  • Обучаются через развёртку по времени (BPTT).
  • Затухание ограничивает память несколькими десятками шагов.

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

Последовательность нельзя просто подать в MLP: её длина меняется, а порядок элементов несёт смысл. решает это состоянием — , который сеть переносит с шага на шаг, обновляя его каждым новым элементом входа.

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

Где именно ломается память

Задача: в последовательности из 100 символов вернуть первый символ. Для этого информация должна пройти через 100 умножений на одну и ту же . Если её старшее собственное число 0.9, сигнал ослабнет в раз; если 1.1 — вырастет в 14 000 раз и обучение разойдётся. Ровно на границе сеть работает, но такое равновесие не удерживается. Именно этот расчёт привёл к , где состояние переносится сложением, а не умножением.

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

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

Обозначения
  • истинное значение целевой переменной
  • объект: вектор признаков

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

  • Нет параллелизма: шаг нельзя посчитать раньше шага .
  • Короткая память: затухает через десятки шагов.
  • Узкое место: весь контекст сжимается в один фиксированного размера.
На практике

Первые два пункта решались и , третий — механизмом . Когда внимание научились использовать без рекуррентности вовсе, появились .

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

  • Потоковая обработкаСостояние фиксированного размера обновляется по одному элементу — идеально для онлайн-инференса на длинном потоке.
  • Небольшие последовательности на слабом железеОдна маленькая дешевле и умещается туда, где трансформер не умещается.
  • Временные рядыПрогноз спроса и датчиков: остаются разумной базой рядом с классическими моделями.
  • Историческая роль в NLP на был стандартом перевода до 2017 года — и именно его ограничения породили .

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

Плюсы

  • Обрабатывает последовательности любой длины фиксированным числом параметров.
  • Стоимость линейна по длине, а память постоянна — в отличие от квадратичного .
  • Естественно ложится на потоковый сценарий: пришёл элемент — обновили состояние.
  • Компактна: рабочая модель может весить сотни килобайт.

Минусы

  • Затухающий : связи длиннее 20–30 шагов простая не выучивает.
  • Обучение строго последовательно и плохо параллелится на .
  • Всё прошлое сжато в один — узкое место при длинном контексте.
  • Практически вытеснена почти во всех задачах NLP.
  • Чувствительна к взрывающимся , обрезка обязательна.

Брать, если

  • Данные приходят потоком и решение нужно на каждом шаге.
  • Ресурсы жёстко ограничены, а последовательности короткие.
  • Нужна для временного ряда перед более тяжёлыми моделями.

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

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

Чем заменяют

Видеолекции

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

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

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

Следующий шагДальше по связи: LSTMРекуррентная ячейка с состоянием и тремя вентилями, решающая проблему долгосрочной памяти.Перейти →

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