Дифференциальная геометрия
Дифференциальная геометрия в ML
Лучшие ML-исследователи знают: когда параметры модели живут на многообразии (ортогональные матрицы, ковариации, распределения), стандартный SGD геометрически некорректен. Риманова оптимизация, гиперболические GNN, натуральный градиент - это дифференциальная геометрия в production. geoopt и geomstats делают это доступным в PyTorch.
- **geoopt / geomstats:** Riemannian Adam для SO(n), Sym⁺(n), шара Пуанкаре-3 строки кода вместо ручной ортогонализации
- **Poincaré GNN:** HGCN вкладывает биологические сети и цитационные графы в H² с меньшим искажением, чем 64D евклидово пространство
- **K-FAC / Shampoo:** приближают матрицу Фишера F для натурального градиента-стандарт для обучения больших трансформеров в DeepMind, Google
Предварительные знания
Риманова оптимизация
**Риманова оптимизация**-минимизация f(x) при x ∈ M (многообразие) через движение по геодезическим. Ключевые объекты: 1. **Риманов градиент** grad_M f = проекция ∇f на T_xM 2. **Ретракция** R_x(v) ≈ exp_x(v)-корректный шаг по многообразию 3. **Параллельный перенос** для методов с памятью (Riemannian Adam).
**geoopt** (PyTorch) реализует Poincaré Ball, сферу Sⁿ, многообразие Штифеля St(n,p), симметрические положительно определённые матрицы Sym⁺(n), пространство SO(n). Методы: RiemannianSGD, RiemannianAdam, RSGD с переносом градиента.
**Почему не просто евклидов SGD?** Параметры на многообразии (ортогональные матрицы, SPD-матрицы) нарушают ограничения при обычном шаге. Риманова оптимизация гарантирует: x_{n+1} всегда остаётся на многообразии. Примеры: матрицы веса с ортогональными столбцами (регуляризация), атомарные ядра SPD.
При оптимизации ортогональной матрицы Q ∈ SO(n) с помощью Riemannian SGD, каков правильный шаг обновления?
Гиперболические вложения и Poincaré модель
**Гиперболическое пространство H^n**-риманово многообразие с постоянной отрицательной кривизной K = −1/c². Объём шара растёт экспоненциально: V(r) ∝ sinh^{n−1}(r) ∼ e^{(n−1)r}. Идеально для иерархических данных.
**Модель шара Пуанкаре:** H^n = {x ∈ R^n: |x| < 1/√c} с метрикой g_x = (2/(1−c|x|²))² · I. Операции: 1. exp_x(v)-явная формула 2. Möbius сложение ⊕ для параллельного переноса 3. геодезическое расстояние d(x,y) = (2/√c) arctanh(√c |x ⊖ y|).
**Гиперболические GNN:** FullyHyperbolicNet, HGCN (Hyperbolic Graph Convolutional Networks) выполняют все операции в шаре Пуанкаре. Работают лучше евклидовых GNN на иерархических графах (citation networks, bio-networks) при той же размерности вложения.
Почему Poincaré embeddings обычно лучше евклидовых для вложения деревьев даже в 2D?
Информационная геометрия и натуральный градиент
**Информационная геометрия** рассматривает семейства вероятностных распределений p(x|θ) как риманово многообразие с **метрикой Фишера**: F_ij(θ) = E[∂ log p/∂θᵢ · ∂ log p/∂θⱼ]. Расстояние в этой метрике-KL-дивергенция в инфинитезимальном пределе.
**Натуральный градиент** ∇̃f = F⁻¹ · ∇f-градиент в метрике Фишера. Обновление: θ_{t+1} = θ_t − α · F⁻¹∇f. Это оптимальный градиентный метод по Крамеру-Рао. Adam аппроксимирует F⁻¹ через квадраты градиентов-это неточный натуральный градиент.
**Связь с DL:** Adam аппроксимирует натуральный градиент через диагонализацию матрицы Фишера (vₜ ≈ диагональные компоненты F). Shampoo и K-FAC (Kronecker-factored Approximate Curvature)-более точные приближения, использующие блочную структуру Фишера.
Чем натуральный градиент F⁻¹∇f отличается от обычного ∇f при оптимизации нейросети?
Ключевые идеи
- **Riemannian SGD/Adam:** обновление через exp-карту: x_{n+1} = exp_{x_n}(−α · Riemannian grad). Параметры остаются на многообразии
- **geoopt:** PoincareBall, Sphere, SO(n), Sym⁺(n). Plug-in замена torch.optim-2 строки кода
- **Гиперболические вложения:** H^n для деревьев, таксономий, иерархий. HGCN превосходит евклидовые GNN при меньшей размерности
- **Натуральный градиент:** F⁻¹∇f учитывает кривизну пространства распределений. Adam = диагональная аппроксимация F⁻¹
Связанные темы
Дифференциальная геометрия в ML опирается на все предыдущие уроки:
- Гладкие многообразия — SO(n), Sym⁺(n), шар Пуанкаре-все многообразия с атласами и касательными пространствами
- Тензор кривизны Римана — Кривизна H^n (K = −1) и Sym⁺(n) определяет поведение градиентных методов
- Functional Analysis in ML — RKHS, ядра Мерсера и NTK-функционально-аналитический взгляд на те же ML-задачи
Вопросы для размышления
- Adam аппроксимирует натуральный градиент через диагональ Фишера. Какая информация теряется при диагонализации, и как это влияет на обучение трансформеров с коррелированными градиентами?
- HGCN работает лучше на иерархических графах в H². Но что делать с данными, которые имеют одновременно иерархические и циклические структуры? Какое многообразие подойдёт?
- Геодезические в Sym⁺(n) (SPD-матрицах)-это один из параметрических путей между ковариационными матрицами. Как это используется в Domain Adaptation и Transfer Learning?