# Константин Руш: «Осцилляторы помогают RNN запоминать последовательности до 10 000 шагов»

Источник: https://www.youtube.com/watch?v=z25IZpWZAfw
Канал: The TWIML AI Podcast
Опубликовано: 17.05.2021

---

В области глубокого обучения рекуррентные нейронные сети (RNN) долгое время считались золотым стандартом для обработки последовательностей, будь то текст, аудио или биржевые котировки. Однако архитектуры вроде LSTM или GRU сталкиваются с серьезным барьером при попытке «вспомнить» информацию, которая была тысячи шагов назад. Константин Руш, исследователь из ETH Zurich, предлагает решение этой фундаментальной проблемы, обращаясь к принципам нейробиологии и теории сложных динамических систем.

## 🧠 От нейробиологии к динамическим системам
[[JUMP:00:00]]

Константин Руш начал свой путь в машинном обучении с фундаментальной математики в Боннском университете, после чего переключился на прикладную математику в Великобритании [01:08]. Его интерес к современным архитектурам ИИ возник на стыке изучения нелинейной динамики и вычислительной когнитивной нейробиологии [02:01]. 

Ключевым вдохновением для Руша стала математическая модель ФитцХью-Нагумо (FitzHugh-Nagumo model), описывающая процесс возбуждения потенциала действия в биологическом нейроне [02:42]. По словам гостя, нейрон ведет себя как релаксационный осциллятор: он накапливает стимул, достигает порога, «выстреливает» и затихает [12:08].

Исследователь обратил внимание на то, что такие осцилляции — норма для работы мозга, например, в гиппокампе («гиппокампальные осцилляции»), и решил перенести эти стабильные периодические структуры в архитектуру нейросетей [12:34]. В рамках его работы динамические системы стали основой для создания новых типов скрытых слоев в RNN [03:22].

## 📉 Проблема исчезающего градиента: почему RNN «забывают»
[[JUMP:06:42]]

Основная трудность при обучении RNN на длинных последовательностях — это проблема исчезающего (vanishing) или взрывного (exploding) градиента [09:34]. Руш объясняет это через математическую структуру обучения:

*   При методе обратного распространения ошибки во времени (BPTT) вычисляется производная текущего состояния по предыдущему [08:02].
*   Согласно правилу цепочки (chain rule), этот процесс превращается в длинное произведение матриц [08:41].
*   Если средние значения множителей чуть меньше единицы (например, 0.9), то на длине в 1000 шагов градиент экспоненциально стремится к нулю. Если чуть больше единицы (1.1) — он улетает в бесконечность [09:21].

По мнению Руша, существующие решения вроде LSTM справляются с последовательностями длиной до 1000 шагов, но начинают давать сбои на более длинных дистанциях [10:51]. В то же время простая стабилизация градиента (например, использование единичной матрицы) делает сеть стабильной, но «глупой», так как она перестает обучаться сложным зависимостям [09:46].

## ⚙️ CoRNN: осцилляторы на службе обучения
[[JUMP:14:06]]

Для решения проблемы Руш и его коллеги представили CoRNN (Coupled Oscillatory RNN) — архитектуру, основанную на системе обыкновенных дифференциальных уравнений (ODE) второго порядка [14:20]. 

Основные характеристики CoRNN:

1.  **Связанные осцилляторы (Coupled Oscillators):** Каждая размерность скрытого состояния представляет собой нейрон, который взаимодействует с другими через плотную матрицу весов [16:05].
2.  **Управляющие параметры:** В систему введены два коэффициента — затухание (damping) и частота (frequency), которые регулируют стабильность амплитуды [14:46].
3.  **Дискретизация:** Поскольку компьютеры работают в дискретном времени, непрерывная система уравнений переводится в понятный нейросети вид с помощью схемы IMEX (Implicit-Explicit scheme), что позволяет сохранить структуру динамики в коде [15:13].

Математически Руш доказал две важные теоремы для CoRNN:

*   **Ограниченность сверху:** Градиент гарантированно не взорвется при соблюдении мягких условий на веса [19:26].
*   **Асимптотическая стабильность:** Затухание градиента в CoRNN не зависит от длины последовательности, что позволяет эффективно обучать сети даже на 10 000 шагов [20:58].

## 🦄 Unicorn: ускорение и инверсия во времени
[[JUMP:28:40]]

Следующим шагом в исследованиях Руша стала модель UnicORN (Undamped Independent Controlled Oscillatory RNN) [28:52]. В этой версии разработчики отказались от затухания и сделали осцилляторы независимыми.

Преимущества UnicORN:

*   **Гамильтонова система:** Сеть становится обратимой во времени. Это позволяет не хранить в памяти все промежуточные состояния для обратного распространения ошибки, а восстанавливать их из последнего состояния [31:07]. Это делает модель крайне эффективной по памяти, сопоставимой с Neural ODE [31:32].
*   **Колоссальное ускорение:** Благодаря независимости нейронов, каждый из них можно вычислять в отдельном потоке GPU без взаимодействия с другими. Руш утверждает, что на его локальной видеокарте обучение одной эпохи сократилось с половины дня (на PyTorch) до 30 секунд (на кастомном CUDA-расширении) [33:18].

## 🧪 Результаты тестов и честная самокритика
[[JUMP:23:21]]

В синтетическом тесте «задача сложения» (Adding Problem), где нейросети нужно найти и сложить два числа в длинном векторе случайных чисел, CoRNN показала стабильную сходимость на последовательностях длиной 5000 шагов [24:12]. Для сравнения, LSTM обычно терпит неудачу уже на 500 шагах [25:47].

Однако Руш признает слабые стороны своих моделей:

*   **Проблема выразительности (Expressivity):** Хотя CoRNN и UnicORN отлично справляются с длинной памятью, они уступают классическим LSTM в задачах, требующих сложной логики и высокой гибкости, таких как языковое моделирование на уровне символов (Penn Treebank) [37:45].
*   **Сравнение с LSTM:** По мнению гостя, пока не существует «серебряной пули». Если задача не требует сверхдлинных зависимостей, LSTM остается более мощным инструментом за счет своей высокой выразительности [38:12].

Сейчас Руш сотрудничает с группой ученых из Беркли, чтобы создать гибридную архитектуру, которая объединит стабильность осцилляторов с гибкостью классических RNN, стремясь создать по-настоящему универсальную модель для последовательных данных [38:53].