Информационная геометрия
IG в neural networks
Adam optimizer (2014) есть в 90%+ статей по DL. Но мало кто знает: Adam - это диагональное приближение natural gradient (Amari, 1998), оптимального метода на Fisher-Rao многообразии. Точный метод выглядит как F^{-1} * grad L, где F - матрица 25M×25M для ResNet. Именно невозможность вычислить F^{-1} точно породила всю линейку методов от KFAC до Shampoo.
- **EWC для continual learning:** Fisher diagonal из ig-07 используется как маска важности параметров при обучении новым задачам без забывания старых (DeepMind, 2017)
- **KFAC в Google Brain:** блочно-диагональное приближение F ускорило обучение языковых моделей в 2-3 раза по числу итераций (2018-2020)
- **NTK для анализа обобщения:** спектр NTK предсказывает, какие функции нейросеть выучит быстро, а какие медленно - это используется для анализа double descent
Предварительные знания
Fisher-Rao в NN
Adam optimizer (2014) используется в 90%+ публикаций по deep learning. Мало кто знает, что это приближённая версия метода, разработанного Amari в 1998 - natural gradient. Разница принципиальная: Adam работает в евклидовом пространстве параметров, natural gradient - в римановом пространстве вероятностных распределений. Пространство весов нейросети не евклидово: шаг размером 0.01 в одном направлении может изменить выход модели на 0.001, а в другом - на 1.0. Fisher-Rao метрика это измеряет.
Fisher Information Matrix F_theta - это метрический тензор статистического многообразия. Для нейросети с параметрами theta она показывает, насколько чувствительно распределение p(y|x, theta) к изменениям параметров. Natural gradient: вместо обычного градиента ∇L делаем шаг в направлении F^{-1} ∇L - это шаг, оптимальный в геометрии распределений, а не в евклидовой геометрии весов.
Проблема с natural gradient на практике: если в сети n параметров, то F - матрица n×n. У ResNet-50 это 25 миллионов параметров - матрица 25M×25M, хранить невозможно. KFAC (Martens & Grosse, 2015) решает это через блочно-диагональное приближение: F ≈ блочная матрица, где каждый блок соответствует одному слою.
EWC (Elastic Weight Consolidation, Kirkpatrick 2017) - алгоритм continual learning - использует диагональ Fisher напрямую. После обучения задачи A диагональ F_A показывает, какие параметры важны. При обучении задачи B штраф пропорционален F_A: параметры с большим Fisher зафиксированы сильнее. Формула штрафа: L_B(theta) + (lambda/2) * sum_i F_A[i] * (theta_i - theta_A[i])^2.
В чём геометрический смысл natural gradient по сравнению с обычным градиентом?
Hessian-free optimization
Adam приближает F^{-1} диагональю - это грубо, но работает. Более точное приближение - KFAC (Kronecker-factored Approximate Curvature, Martens 2015). Идея: Fisher для линейного слоя y = Wx + b можно представить как тензорное произведение F_W ≈ A ⊗ G, где A - корреляция входов, G - корреляция градиентов по выходу. Размер хранения: O(n_in^2 + n_out^2) вместо O((n_in * n_out)^2).
Hessian-free optimization (Martens 2010) идёт другим путём: вместо хранения полного гессиана H используется conjugate gradient для решения линейной системы H * d = -∇L. Ключевое наблюдение: Hessian-vector product Hv можно вычислить через два backward pass, не материализуя H. Для нейросетей Fisher ≈ Gauss-Newton hessian, что даёт ещё более стабильную версию.
На практике K-FAC ускоряет обучение ResNet в 2-3 раза по числу итераций, но требует дополнительной памяти и синхронизации при распределённом обучении. Google Brain использовал K-FAC для обучения крупных языковых моделей в 2018-2020. Сейчас его вытеснили Shampoo и distributed Shampoo (Google, 2022) - более масштабируемые приближения натурального градиента.
Почему KFAC аппроксимирует Fisher матрицу для линейного слоя как A ⊗ G, а не хранит полную матрицу?
Геометрия NTK
Jacot, Gabriel & Hongler (2018) открыли парадоксальный факт: нейросеть бесконечной ширины при обучении gradient descent ведёт себя как kernel machine. Ядро называется Neural Tangent Kernel (NTK). При инициализации и в пределе бесконечной ширины NTK остаётся постоянным в процессе обучения - сеть движется по функциональному пространству как линейная модель с фиксированными признаками.
NTK - это скалярное произведение якобианов: насколько изменение одного параметра, влияя на выход для x, коррелирует с его влиянием на x'. Это напрямую связано с информационной геометрией: Fisher Information Matrix F = (1/N) J^T J, где J - якобиан выходов по параметрам. NTK = J J^T - двойственный объект в пространстве данных. Спектр NTK определяет скорость обучения по разным направлениям в пространстве функций.
Lazy training regime: при очень большой ширине параметры меняются мало (||theta - theta_0|| -> 0), но функция меняется значительно. Это позволяет анализировать deep learning как kernel regression. Обратная сторона: такие сети не способны на feature learning - они не строят иерархические признаки, а просто интерполируют через NTK. Реальные сети с конечной шириной выходят из lazy regime и обучают признаки - это называется mean field или rich regime.
NTK полностью объясняет, почему нейросети работают так хорошо на практике
NTK описывает только lazy training regime - бесконечно широкие сети без feature learning. Реальный успех нейросетей связан с выходом за пределы этого режима.
Сети с конечной шириной обучают признаки (mean field / rich regime), что NTK-теория не охватывает. Если бы нейросети работали в NTK-режиме, они не превосходили бы kernel methods - а они превосходят.
Что происходит с NTK в пределе бесконечной ширины нейросети при обучении?
Ключевые идеи
- **Fisher Information Matrix** F_theta = E[grad log p * grad log p^T] - метрический тензор на многообразии распределений; natural gradient = F^{-1} grad L, Adam - его диагональное приближение
- **KFAC:** F_W ≈ A ⊗ G, где A - корреляция входов, G - корреляция градиентов; экономит O((n_in*n_out)^2) -> O(n_in^2 + n_out^2) памяти, инверсия раздельная
- **NTK:** K(x,x') = J(x)^T J(x') - скалярное произведение якобианов; в пределе бесконечной ширины постоянен, динамика = линейная ОДУ; конечные сети выходят из NTK-режима и обучают признаки
Связанные темы
Информационная геометрия в deep learning пересекается с несколькими направлениями:
- Natural gradient — Основа для Fisher-Rao метрики в нейросетях
- Exponential family — Логистическая регрессия как exp family - естественная среда для Fisher
Вопросы для размышления
- Adam использует диагональ Fisher, KFAC - блочную структуру, natural gradient - полную матрицу. Какой компромисс точность/скорость оправдан для сети в 70 миллиардов параметров?
- NTK-теория предсказывает, что бесконечно широкие сети не лучше kernel methods. Но GPT-4 - очень широкая сеть. Это противоречие или нет?
- EWC использует Fisher diagonal для защиты важных параметров. Что происходит, если два разных задания считают важными одни и те же параметры?