Выпуклая оптимизация
Оптимизация на многообразиях (Riemannian Optimization)
Как обучить нейросеть, которая никогда не «взрывается» и не «затухает»? Как найти лучшее вложение молекулы в пространство форм? Как сжать данные так, чтобы матрица оставалась ортогональной без единой проекции? Ответ скрыт в геометрии, **оптимизация на многообразиях** позволяет встроить ограничения прямо в структуру пространства поиска.
- **Стабильные RNN**: ортогональные и унитарные RNN обучаются на Стифелевом многообразии, это решает проблему vanishing gradient без clip и специальных инициализаций
- **Медицинская визуализация**: форма сердца, мозга или позвоночника живёт на многообразии форм; PGA даёт главные направления вариации без искажений евклидовой геометрии
- **Робототехника**: ориентация робота, элемент SO(3); оптимизация траекторий прямо на SO(3) исключает gimbal lock и сингулярности кватернионов
Многообразие как пространство оптимизации
LoRA fine-tuning GPT-4 оптимизирует веса на многообразии низкого ранга (r=16 из 4096) - классическая евклидова оптимизация здесь неприменима. Классическая оптимизация работает в евклидовом пространстве ℝⁿ. Но многие задачи машинного обучения имеют **структурные ограничения**: матрицы должны быть ортогональными, векторы, единичными, ковариационные матрицы, положительно определёнными. Вместо того чтобы навязывать эти ограничения через штрафы или проекции, **риманова оптимизация** встраивает их прямо в геометрию пространства.
**Многообразие (manifold)**, это пространство, которое локально похоже на ℝᵏ, но глобально имеет другую форму. Примеры: поверхность сферы (локально плоская, глобально замкнутая), лента Мёбиуса, группа вращений. В точке p многообразия определено **касательное пространство** TₚM, множество всех «направлений», в которых можно двигаться, оставаясь на многообразии.
Альтернатива, лагранжева оптимизация с явными ограничениями или проекционные методы. Но они сложнее численно: проекция на SO(n) требует SVD, штрафные методы плохо масштабируются. Риманова оптимизация работает **на** многообразии: каждый шаг автоматически остаётся в допустимой области. Нет нужды проецировать, нет нарушений ограничений.
Касательное пространство TₓS в точке x на единичной сфере, это?
Риманов градиент и ретракция
Для оптимизации на многообразии нужны два ключевых инструмента. Первый, **риманов градиент** grad_M f(x): проекция евклидова градиента ∇f(x) на касательное пространство TₓM. Это «наилучшее направление убывания», доступное из точки x при движении вдоль M. Второй, **ретракция** R: TₓM → M, которая отображает сдвинутую точку обратно на многообразие.
Важно различать **ретракцию** и **экспоненциальное отображение** (geodesic). Геодезическое отображение точное, но дорогое (требует матричной экспоненты). Ретракция, приближение первого порядка, достаточное для оптимизации. Для сферы нормализация, это ретракция; для SO(n) QR-разложение дешевле expm.
В евклидовом пространстве momentum-методы используют градиенты из предыдущих итераций. На многообразии касательные пространства в разных точках различны, векторы нельзя просто складывать. Нужен **параллельный перенос** (parallel transport): оператор Γ_{x→y}: TₓM → T_yM, который переносит вектор из одного касательного пространства в другое вдоль геодезической. Это необходимо для Riemannian Adam и conjugate gradient on manifolds.
Почему для оптимизации на SO(n) нельзя просто сделать шаг градиентного спуска Q - α·∇f(Q) и использовать результат?
Алгоритмы: Riemannian GD, Adam и сопряжённые градиенты
Большинство евклидовых алгоритмов оптимизации имеют риманов аналог. Ключевой принцип: заменить евклидов градиент на риманов, евклидовый сдвиг, на ретракцию, а сложение векторов из разных итераций, на параллельный перенос.
Метод сопряжённых градиентов на многообразиях (RCG), аналог CG для евклидова случая. Особенность: направление поиска строится из рикового градиента текущей итерации и **параллельно перенесённого** направления предыдущей. Формула обновления: d_{t+1} = -grad_M f(x_{t+1}) + β · Γ(d_t), где Γ, оператор параллельного переноса, β, коэффициент Флетчера-Ривса или Поляка-Рибьера. RCG особенно эффективен для задач на SO(n) и Стифелевых многообразиях большой размерности.
Зачем в Riemannian Adam нужен параллельный перенос момента m?
Приложения: ортогональные матрицы, PGA и борьба с gradient explosion
Риманова оптимизация решает несколько практических задач ML, где евклидовые методы дают плохие результаты или требуют сложных hacks.
Библиотека **Geomstats** (Python) предоставляет унифицированный интерфейс для риманового дифференцирования: `RiemannianGradientDescent`, `ExpDecayLRScheduler`, и реализации более 20 многообразий. **McTorch** и **Geoopt** интегрируют риманову оптимизацию с PyTorch, можно использовать стандартные optimizers с риманными параметрами через `geoopt.ManifoldParameter`.
Почему обучение RNN с матрицей перехода W ∈ SO(n) решает проблему vanishing/exploding gradient?
Ключевые идеи
- **Многообразие**, пространство с ограничениями, встроенными в геометрию: SO(n), сфера, Стифелево многообразие, SPD(n)
- **Риманов градиент** = проекция евклидова градиента на касательное пространство TₓM, наилучшее направление убывания на M
- **Ретракция** R_x(v): TₓM → M, возврат на многообразие после шага; дешевле точной геодезической (expm)
- **Параллельный перенос** нужен для momentum-методов: согласовывает касательные пространства в разных точках
Связанные темы
Риманова оптимизация объединяет дифференциальную геометрию с практическим ML:
- Методы проксимальных операторов — Альтернативный подход к оптимизации с ограничениями через проксимальные шаги
- Дифференцируемое программирование — Riemannian Autodiff, автоматическое дифференцирование на многообразиях, используется в bi-level оптимизации
- Теоретические гарантии сходимости — Riemannian GD сходится со скоростью O(1/k) для геодезически выпуклых функций, риманов аналог выпуклости
Вопросы для размышления
- В каких задачах компьютерного зрения или NLP встречали ограничения, которые можно было бы закодировать через многообразие?
- Чем геодезическая выпуклость функции на многообразии отличается от обычной выпуклости в ℝⁿ?
- Почему параллельный перенос важнее для Adam, чем для обычного SGD?