Математика Neural Tangent Kernel: полный разбор
Разбираем математику Neural Tangent Kernel: от градиентного спуска до бесконечно широких сетей и связи с ядерной регрессией.
Математика Neural Tangent Kernel: полный разбор
Почему нейронные сети, содержащие миллионы случайно инициализированных параметров, снова и снова сходятся к хорошим решениям? Почему переобученные модели не только запоминают данные, но и обобщаются? Долгое время эти вопросы оставались без строгого математического ответа. В 2018 году Артур Жако, Фазир Габриэль и Клеман Онглер предложили инструмент, который существенно приблизил нас к пониманию: Neural Tangent Kernel (NTK).
В теории искусственных нейронных сетей NTK — это ядро, описывающее эволюцию глубоких сетей в процессе обучения с помощью градиентного спуска. Звучит лаконично, но за этим определением скрывается мощный математический аппарат, связывающий воедино теорию оптимизации, ядерные методы и гауссовские процессы.
Проблема, которую решает NTK
Нейронные сети хорошо известны как переобученные модели: они легко подгоняются к данным с почти нулевым обучающим лоссом и при этом демонстрируют достойную производительность на тестовой выборке. Хотя параметры инициализируются случайно, процесс оптимизации стабильно приводит к схожим хорошим результатам — даже когда число параметров превышает число обучающих точек.
С точки зрения классической статистики это парадоксально. Согласно классическим представлениям, запоминание должно приводить к подгонке под шум в обучающих данных и ухудшению обобщения. Чтобы смягчить это, алгоритмы машинного обучения обычно вводят регуляризацию. Но современные нейронные сети — как правило, сильно переобученные — обобщаются хорошо даже без явной регуляризации.
Именно здесь NTK предлагает строгое объяснение: если рассмотреть предельный случай бесконечно широких сетей, динамика обучения упрощается настолько, что поддаётся точному анализу.
«В режиме бесконечной ширины случайность отдельных нейронов усредняется, и высоконелинейная система начинает вести себя почти как линейная модель.»
Что такое ядро и причём здесь нейронные сети
Прежде чем перейти к NTK, вспомним базовые понятия.
В общем случае ядро — это положительно полуопределённая симметричная функция двух аргументов, представляющая некоторое понятие схожести между ними. Ядра широко используются в SVM и гауссовских процессах: вместо явного вычисления признаков объектов достаточно задать функцию сходства.
NTK — это конкретное ядро, порождённое данной нейронной сетью. В общем случае при изменении параметров сети в ходе обучения NTK тоже эволюционирует. Однако в пределе большой ширины слоёв NTK становится константным, раскрывая двойственность между обучением широкой нейронной сети и ядерными методами: градиентный спуск в пределе бесконечной ширины полностью эквивалентен ядерному градиентному спуску с NTK.
Формальное определение
NTK определяется через скалярное произведение градиентов сети по параметрам и в режиме бесконечной ширины становится детерминированным и константным ядром на протяжении всего обучения.
Математически для нейронной сети $f_\theta : \mathbb{R}^d \to \mathbb{R}$ с параметрами $\theta \in \mathbb{R}^P$ NTK определяется как:
$$\Theta(x, x’) = \left\langle \frac{\partial f_\theta(x)}{\partial \theta},, \frac{\partial f_\theta(x’)}{\partial \theta} \right\rangle$$
Это скалярное произведение якобианов сети по параметрам, вычисленных на двух разных входах $x$ и $x’$. Чем больше у двух точек «похожих» градиентов, тем выше значение ядра.
import numpy as np
def compute_ntk(model, x1, x2):
"""
Наивная оценка NTK для двух точек x1 и x2.
grad1, grad2 — градиенты выхода по параметрам.
"""
grad1 = compute_jacobian(model, x1) # форма: (output_dim, num_params)
grad2 = compute_jacobian(model, x2)
# NTK = J1 @ J2^T (скалярное произведение градиентов)
ntk = grad1 @ grad2.T
return ntk
Режим бесконечной ширины и линеаризация
Центральный результат теории NTK касается поведения сетей в пределе бесконечного числа нейронов в каждом слое.
При инициализации искусственные нейронные сети эквивалентны гауссовским процессам в пределе бесконечной ширины, что связывает их с ядерными методами.
NTK случаен при инициализации и меняется в ходе обучения; однако в пределе бесконечной ширины он сходится к явному предельному ядру и остаётся константным на протяжении всего обучения.
Что это даёт практически? Это позволяет изучать обучение нейронных сетей в пространстве функций, а не в пространстве параметров.
Альтернативный взгляд «в пространстве весов» показал, что сети под градиентным спуском хорошо описываются разложением Тейлора первого порядка вокруг начальных параметров. Это и есть линеаризация: вместо нелинейной сети мы анализируем её линейное приближение:
$$f_\theta(x) \approx f_{\theta_0}(x) + \nabla_\theta f_{\theta_0}(x)^\top (\theta - \theta_0)$$
В бесконечно широком режиме это приближение становится точным.
graph TD
A["Нейронная сеть f_θ(x)"] --> B["Линеаризация вокруг θ₀"]
B --> C["Линейная модель в пространстве параметров"]
C --> D["NTK = J·Jᵀ"]
D --> E["Ядерная регрессия в пространстве функций"]
E --> F["Аналитическое решение динамики обучения"]
A --> G["Предел ширины → ∞"]
G --> D
Динамика градиентного потока и сходимость
Одно из главных достижений NTK-теории — строгое доказательство сходимости. Рассмотрим задачу минимизации среднеквадратичного лосса:
$$L(\theta) = \frac{1}{2} |f_\theta(X) - y|^2$$
При непрерывном градиентном спуске (gradient flow) динамика предсказаний описывается:
$$\frac{d}{dt} f_\theta(X) = -\Theta(X, X),(f_\theta(X) - y)$$
Если NTK константен (что выполняется в пределе бесконечной ширины), это линейное ОДУ, решение которого:
$$f_\theta(X_t) - y = e^{-\Theta t}(f_{\theta_0}(X) - y)$$
Отсюда напрямую следует экспоненциальная сходимость к нулю лосса.
Сходимость быстрее всего происходит вдоль наибольших главных компонент ядра входных данных по NTK, что даёт теоретическое обоснование ранней остановки обучения.
Жако и соавторы показали, что при градиентном спуске бесконечно широкие сети демонстрируют линеаризованную динамику, управляемую детерминированным ядром $\Theta(x, x’)$, что позволяет строго анализировать сходимость и обобщение. Последующие работы изучили спектральные свойства матриц NTK и связали распределение собственных значений с динамикой обучения и скоростью сходимости.
Собственные значения NTK и скорость обучения
Разные «направления» в пространстве функций обучаются с разной скоростью. Если $\lambda_i$ — собственные значения матрицы NTK, то компонента лосса вдоль $i$-го собственного вектора убывает как $e^{-\lambda_i t}$:
- Большие $\lambda_i$ → быстрое обучение
- Малые $\lambda_i$ → медленное обучение, потенциальные проблемы
Это объясняет, почему нейронные сети обучают «простые» паттерны быстро, а «сложные» — медленно.
NTK и связь с ядерной регрессией
Отображая нелинейную оптимизацию в ядерную регрессию в пространстве функций, NTK объединяет эмпирические наблюдения глубокого обучения (такие как устойчивость к переобучению и преимущества ранней остановки) с теорией ядер и гауссовскими процессами.
NTK даёт строгую связь между выводом, выполняемым бесконечно широкими нейронными сетями, и выводом ядерных методов: когда функция потерь является среднеквадратичной, вывод нейронной сети в ожидании равен безгребневой ядерной регрессии по NTK.
Практически это означает: обучение бесконечно широкой сети на MSE = решение системы уравнений ядерной регрессии.
Сравнение: конечная ширина vs бесконечная ширина
| Свойство | Конечная ширина | Бесконечная ширина (NTK) |
|---|---|---|
| NTK при инициализации | Случайный | Детерминированный |
| NTK во время обучения | Изменяется | Константный |
| Динамика обучения | Нелинейная | Линейная (ОДУ) |
| Гарантии сходимости | Отсутствуют в общем случае | Экспоненциальная сходимость |
| Обучение признаков | Есть | Нет («ленивое обучение») |
| Соответствие ядерной регрессии | Приближённое | Точное |
Бесконечно широкая нейронная сеть, обученная градиентным спуском, эквивалентна соответствующему оценщику регрессии NTK.
Практические следствия и современные расширения
Что NTK объясняет в реальных сетях
Инсайты NTK раскрывают практические следствия для обучения признаков, выравнивания ядер и нейронного коллапса, вдохновляя масштабируемые приближения в глубоком обучении.
Идеи NTK-режима направляют практические стратегии в инициализации сетей, масштабировании скорости обучения и понимании эффектов конечной ширины.
Конволюционный NTK (CNTK)
Arora и соавторы (2019) предложили эффективный алгоритм вычисления NTK для свёрточных архитектур — Convolutional NTK (CNTK). CNTK позволил применить теорию к архитектурам, близким к производственным моделям.
Выход за пределы NTK-режима
Существуют практические ограничения — особенно при применении теории NTK к сетям конечной ширины или нелинейным моделям.
Для устранения нарушений предположений NTK-режима была разработана Neural Tangent Hierarchy (NTH) — систематические поправки порядка $1/m$ за счёт включения тензоров высшего порядка, обеспечивающие точное количественное моделирование сетей конечной ширины.
Заключение
Neural Tangent Kernel — один из самых элегантных результатов современной теории глубокого обучения. Он переводит загадочную нелинейную динамику нейронных сетей в язык ядерных методов, открывая возможность строгого математического анализа.
Ключевые выводы:
- NTK описывает, как нейросеть «реагирует» на два входа через призму своих параметров — это скалярное произведение якобианов.
- В пределе бесконечной ширины NTK становится детерминированным и неизменным, превращая нелинейную задачу в линейное ОДУ с гарантированной экспоненциальной сходимостью.
- Обучение бесконечно широкой сети математически эквивалентно ядерной регрессии — это даёт теоретическое обоснование хорошего обобщения.
- Спектр NTK управляет скоростью обучения по разным направлениям и объясняет, почему ранняя остановка работает.
- Главное ограничение — в NTK-режиме нет обучения признаков, что отличает его от реальных сетей конечной ширины.
NTK — не серебряная пуля, но он даёт редкое: математическую строгость в мире, где интуиция часто опережает теорию. Понимание этого аппарата полезно каждому, кто хочет не просто использовать нейронные сети, но и понимать, почему они работают.