Дифференциальные уравнения

Neural ODEs и дифференцируемые решатели

Что если нейронная сеть, это не стопка слоёв, а непрерывное уравнение движения? Что если глубина, не целое число, а непрерывная переменная? В 2018 году работа Neural Ordinary Differential Equations получила премию Best Paper на NeurIPS, предложив объединение дифференциальных уравнений и глубокого обучения.

  • **Медицинские данные**: ЭКГ, анализы крови в разные дни, нерегулярные временные ряды; Latent ODE предсказывает состояние пациента в любой момент
  • **Генерация молекул**: непрерывные нормализующие потоки моделируют распределение химических структур для drug discovery
  • **Физика + ML**: Physics-Informed Neural Networks (PINNs) и Neural ODE сближают численное решение PDE с обучением

Предварительные знания

  • Nonlinear ODEs and Qualitative Analysis
  • ODEs and PDEs in Machine Learning

Neural ODE: непрерывная глубина нейронной сети

Классическая глубокая нейронная сеть, это дискретная последовательность слоёв: h₁ = f₁(h₀), h₂ = f₂(h₁), ..., hₙ = fₙ(hₙ₋₁). ResNet делает шаг вперёд: hₜ₊₁ = hₜ + f(hₜ, t), это явный метод Эйлера с шагом 1. Что если взять предел и сделать шаг бесконечно малым?

**Neural ODE** (Chen et al., NeurIPS 2018), модель, в которой скрытое состояние h(t) эволюционирует как решение ODE, где правая часть параметризована нейросетью:

В классической сети глубина, целое число (количество слоёв). В Neural ODE t ∈ [t₀, t₁], непрерывная переменная. Мы можем: - использовать адаптивный шаг интегрирования (больше «слоёв» там, где нужно) - интерполировать состояния в любой момент t - получить «сеть с бесконечной глубиной» при фиксированном числе параметров Придумано: Neural ODE 2018, NeurIPS Best Paper Award.

Чем Neural ODE принципиально отличается от глубокой ResNet?

Метод сопряжённых переменных: обратное распространение через ODE

Главная проблема Neural ODE: как вычислить градиенты ∂L/∂θ? Наивный подход, сохранить все промежуточные состояния ODE-solver-а и дифференцировать через них. Но это требует O(N) памяти, где N, число шагов. **Метод сопряжённых переменных** (adjoint method) решает проблему: O(1) памяти.

Метод сопряжённых переменных, классический инструмент оптимального управления (Pontryagin, 1950-е). Идея: вместо хранения всего прямого прохода пересчитать его заново при обратном проходе. Точность: сопряжённое ODE решается тем же решателем с той же точностью. Ошибка накапливается, но контролируется допуском решателя. Память: O(1) против O(N) для автоматического дифференцирования через шаги решателя.

В чём главное преимущество adjoint method перед автодифференцированием через шаги ODE-solver-а?

ODE-решатели в ML: Euler, RK4, dopri5

Выбор ODE-решателя в Neural ODE, это компромисс между точностью и скоростью. В ML-контексте важны три параметра: число шагов (вычислительная стоимость), порядок точности (глобальная ошибка), адаптивность (переменный шаг).

При обучении Neural ODE допуски решателя влияют на качество градиентов: **Грубый решатель** (rtol=1e-1): быстро, но неточные градиенты → плохое обучение **Точный решатель** (rtol=1e-6): медленно, но градиенты точные **Рекомендуемый баланс**: rtol=atol=1e-3 при обучении, 1e-5 при тестировании Динамика модели влияет: «жёсткие» (stiff) ODE требуют специальных решателей (Radau, BDF).

Почему метод dopri5 предпочтителен перед RK4 фиксированного шага в Neural ODE?

Приложения: Latent ODE и непрерывные нормализующие потоки

Neural ODE открыли два важных направления в генеративном ML: **Latent ODE** для нерегулярных временных рядов и **непрерывные нормализующие потоки** (CNF) для генерации с точной плотностью.

Классические нормализующие потоки (Real NVP, Glow) используют цепочку биективных преобразований с треугольным якобианом. Это ограничивает архитектуру. CNF использует формулу Лиувилля: det якобиана заменяется на trace (дивергенцию), которая вычисляется через случайные проекции Хатчинсона за O(d) вместо O(d³). FREQ применения: генерация молекул (drug discovery), обратная задача в физике, вероятностные прогнозы.

Почему Latent ODE лучше RNN для нерегулярных временных рядов?

Ключевые идеи

  • **Neural ODE**: dh/dt = f(h,t;θ), непрерывная глубина, одна параметризация f для всего интервала [t₀,t₁]
  • **Adjoint method**: вычисляет градиенты через решение сопряжённого ODE при обратном проходе, требует O(1) памяти
  • **ODE-решатели**: Euler (1-й порядок), RK4 (4-й порядок), dopri5 (адаптивный RK45), компромисс точность/скорость
  • **Latent ODE**: энкодер + ODE + декодер для нерегулярных временных рядов; **CNF**: ODE-поток для точной плотности

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

Neural ODE, мост между классическими ОДУ и современным ML:

  • Численные методы решения ODE — Метод Эйлера, Рунге-Кутты, основа всех ODE-solver-ов используемых в Neural ODE
  • Стохастические дифференциальные уравнения — SDE + нейросети = Score-based генеративные модели (диффузионные модели DDPM)
  • Системы ОДУ первого порядка — Скрытое состояние Neural ODE, вектор, эволюционирующий по системе ODE

Вопросы для размышления

  • ResNet, это явный метод Эйлера. Какой физический смысл у «стабильности» глубокой ResNet с точки зрения теории ODE?
  • Adjoint method решает сопряжённое уравнение назад во времени. Почему это допустимо? Всегда ли существует обратное решение?
  • В CNF используется формула Лиувилля: d/dt log p = −tr(∂f/∂z). Как это связано с теоремой Лиувилля в гамильтоновой механике?

Связанные уроки

  • nm-11
Neural ODEs и дифференцируемые решатели

0

1

Войти