Математика 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 — это мера того, насколько «согласованно» сеть реагирует на два разных входа с точки зрения своих параметров. Если обновление параметров, вызванное примером $x$, сильно влияет на предсказание для $x’$ — значение $\Theta(x, x’)$ велико.

Режим бесконечной ширины и линеаризация

Центральный результат теории 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$ за счёт включения тензоров высшего порядка, обеспечивающие точное количественное моделирование сетей конечной ширины.

📝 Пример применения: инициализация весов
Понимание спектра NTK напрямую влияет на выбор схемы инициализации. Если при инициализации NTK имеет плохо обусловленный спектр (очень разные собственные значения), одни направления будут обучаться несравнимо быстрее других. Именно поэтому схемы инициализации типа He и Xavier проектируются так, чтобы поддерживать равномерное распространение сигнала — фактически «нормализуя» спектр NTK.

Заключение

Neural Tangent Kernel — один из самых элегантных результатов современной теории глубокого обучения. Он переводит загадочную нелинейную динамику нейронных сетей в язык ядерных методов, открывая возможность строгого математического анализа.

Ключевые выводы:

  1. NTK описывает, как нейросеть «реагирует» на два входа через призму своих параметров — это скалярное произведение якобианов.
  2. В пределе бесконечной ширины NTK становится детерминированным и неизменным, превращая нелинейную задачу в линейное ОДУ с гарантированной экспоненциальной сходимостью.
  3. Обучение бесконечно широкой сети математически эквивалентно ядерной регрессии — это даёт теоретическое обоснование хорошего обобщения.
  4. Спектр NTK управляет скоростью обучения по разным направлениям и объясняет, почему ранняя остановка работает.
  5. Главное ограничение — в NTK-режиме нет обучения признаков, что отличает его от реальных сетей конечной ширины.

NTK — не серебряная пуля, но он даёт редкое: математическую строгость в мире, где интуиция часто опережает теорию. Понимание этого аппарата полезно каждому, кто хочет не просто использовать нейронные сети, но и понимать, почему они работают.