alterna ai
ALTERNA AI / ГЛАВА 03 · 05

03.5 Как меняется сам наклон

На предыдущей странице: много входов и много выходов.

Чтобы понять изгиб поверхности ошибки, исследуем производные производных. Таблица вторых производных называется матрицей Гессе.

Поверхность f=x²+3y².

Производная градиента является матрицей

Для скалярной дважды дифференцируемой функции Hessian содержит вторые частные производные:

Hf(x)=[∂2f/∂x12⋯∂2f/∂x1∂xn⋮⋱⋮∂2f/∂xn∂x1⋯∂2f/∂xn2].H_f(x)= \begin{bmatrix} \partial^2f/\partial x_1^2&\cdots&\partial^2f/\partial x_1\partial x_n\\ \vdots&\ddots&\vdots\\ \partial^2f/\partial x_n\partial x_1&\cdots&\partial^2f/\partial x_n^2 \end{bmatrix}.

Если смешанные вторые производные непрерывны, Hessian симметричен. Локальная модель второго порядка имеет вид

f(z+δ)≈f(z)+∇f(z)Tδ+12δTHf(z)δ.f(z+\delta)\approx f(z)+\nabla f(z)^T\delta+\frac{1}{2}\delta^TH_f(z)\delta.

Для f=x2+3y2f=x^2+3y^2:

H=[2006].H=\begin{bmatrix}2&0\\0&6\end{bmatrix}.

При z=[2,1]Tz=[2,1]^T, δ=[0.01,0.02]T\delta=[0.01,0.02]^T второй порядок равен

12δTHδ=12(2⋅0.012+6⋅0.022)=0.0013.\frac12\delta^TH\delta =\frac12\left(2\cdot0.01^2+6\cdot0.02^2\right) =0.0013.

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

Eigenvalues Hessian классифицируют невырожденную стационарную точку

В стационарной точке ∇f=0\nabla f=0 знак квадратичной формы δTHδ\delta^TH\delta определяет локальную картину:

У x2+3y2x^2+3y^2 eigenvalues 2 и 6 положительны. У x2−y2x^2-y^2

H=diag⁡(2,−2),H=\operatorname{diag}(2,-2),

поэтому в одном направлении функция растёт, а в другом убывает: начало является седлом, хотя gradient там нулевой.

Полуопределённость не завершает анализ

Функции x4x^4 и −x4-x^4 в нуле имеют одинаковые

f′(0)=0,f′′(0)=0,f'(0)=0,\qquad f''(0)=0,

но первая имеет минимум, а вторая максимум. Нулевой Hessian не видит первый ненулевой член четвёртого порядка. Поэтому тест второго порядка при нулевых eigenvalues может быть неразрешающим.

Отношение наибольшей и наименьшей положительных eigenvalues квадратики описывает conditioning. Для H=diag⁡(2,6)H=\operatorname{diag}(2,6) оно равно 3. Более крутое направление ограничивает стабильный общий шаг gradient descent, а более плоское может сходиться медленнее.

Newton step использует локальную квадратичную модель

Минимизируя модель второго порядка по δ\delta, получаем условие

∇f+Hδ=0,Hδ=−∇f.\nabla f+H\delta=0, \qquad H\delta=-\nabla f.

В точке (2,1)(2,1):

[2006]δ=−[46],δ=[−2,−1]T.\begin{bmatrix}2&0\\0&6\end{bmatrix} \delta=-\begin{bmatrix}4\\6\end{bmatrix}, \qquad \delta=[-2,-1]^T.

Один шаг приводит точно в начало, потому что исследуемая функция сама является положительно определённой квадратикой. Для общего nonconvex loss Hessian может быть indefinite, плохо обусловленным или меняться вдоль шага; одного точного перехода никто не гарантирует.

Плотный Hessian для PP параметров содержит P2P^2 элементов. При P=106P=10^6 это 101210^{12} float32, то есть около 4 TB payload без overhead. Поэтому крупные модели используют Hessian-vector products, диагональные или структурные приближения, а не хранят полный массив.

В лаборатории увеличьте отношение b/ab/a. Эллипсы станут уже, а один общий gradient step будет сильнее ограничен крутой осью. Отрицательные коэффициенты лаборатория намеренно не принимает: седло показано отдельно, без ложной демонстрации «сходимости».

g = [4, 6]
H = [[2, 0], [0, 6]]
newton_delta = [-g[0]/H[0][0], -g[1]/H[1][1]]
assert newton_delta == [-2, -1]

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

Вторые производные описывают изменение наклонов. Они не являются самой ошибкой и не доказывают качество нейросети.

Изменение проходит через цепочку. Как этот вопрос продолжает полученный результат?

Python-примеры главы 03 Академическая база →