За пределами градиента: матрица Гессе

Tommy Cheese | · Время чтения: 3 мин

В этой статье рассматривается мощный математический инструмент для изучения градиентного спуска — матрица Гессе. Прежде чем переходить к ней, необходимо познакомиться с основными понятиями градиента и матрицы Якоби.

⭐ Предполагается, что читатель уже знаком с градиентным спуском и основами численного анализа и линейной алгебры. Ссылка на оригинал

Градиент и матрица Якоби

Алгоритму градиентного спуска нужна информация о производной функции в текущей точке. Если направлений несколько, градиент представляет собой вектор (частных) производных по всем направлениям.

Это относится к случаю одного выходного значения. Если же результат функции тоже является вектором, необходимо градиенты каждого элемента выходного вектора по нескольким входам собрать вместе. Полученная матрица называется матрицей Якоби (Jacobian Matrix).

Рассмотрим примеры:

  • Если функция $f$ принимает три входа $x1、x2、x3$ и выдаёт один результат $y$, её градиент имеет вид:

$$ \begin{equation} Grad = [\frac{\partial y}{\partial x_1}, \frac{\partial y}{\partial x_2}, \frac{\partial y}{\partial x_3}] \end{equation} $$

  • Если функция $f2$ принимает три входа $x1、x2、x3$ и выдаёт три результата $y1、y2、y3$, её матрица Якоби имеет вид:

$$ \begin{equation} Jacobian = \begin{bmatrix} \frac{\partial y_1}{\partial x_1} & \frac{\partial y_1}{\partial x_2}&\frac{\partial y_1}{\partial x_3} \ \frac{\partial y_2}{\partial x_1} & \frac{\partial y_2}{\partial x_2}&\frac{\partial y_2}{\partial x_3} \ \frac{\partial y_3}{\partial x_1} & \frac{\partial y_3}{\partial x_2}&\frac{\partial y_3}{\partial x_3} \end{bmatrix} \end{equation} $$

Вторая производная даёт информацию о выпуклости или вогнутости функции в заданном направлении $d$. Это позволяет в определённой мере предвидеть поведение градиентного спуска. В направлении $d$:

  • Если вторая производная положительна, первая производная в направлении $d$ растёт, а значение функции убывает медленнее.

  • Если вторая производная отрицательна, первая производная в направлении $d$ уменьшается, а значение функции убывает быстрее.

  • Если вторая производная равна нулю, первая производная в направлении $d$ не меняется, и значение функции убывает с постоянной скоростью.

    ⭐ В градиентном спуске уменьшают функцию потерь, поэтому изменение производной анализируют на убывающем небольшом участке функции. Для приближения часто используют убывающую часть квадратичной функции: разложение Тейлора второго порядка или метод Ньютона.

Матрица Гессе

Аналогично матрице Якоби, матрица Гессе (Hessian) содержит информацию о вторых производных функции: $$ Hessian = \begin{bmatrix} \frac{\partial^2y}{\partial x_1\partial x_1} & \frac{\partial^2y}{\partial x_1\partial x_2}&\frac{\partial^2y}{\partial x_1\partial x_3} \ \frac{\partial^2y}{\partial x_2\partial x_1} & \frac{\partial^2y}{\partial x_2\partial x_2}&\frac{\partial^2y}{\partial x_2\partial x_3} \ \frac{\partial^2y}{\partial x_3\partial x_1} & \frac{\partial^2y}{\partial x_3\partial x_2}&\frac{\partial^2y}{\partial x_3\partial x_3} \end{bmatrix} $$ Поскольку порядок вычисления смешанных вторых производных можно менять, то есть $\frac{\partial^2y}{\partial x_1\partial x_2}=\frac{\partial^2y}{\partial x_2\partial x_1}$, матрица Гессе симметрична. Для симметричной матрицы можно использовать спектральное разложение, чтобы исследовать связь собственных значений со вторыми производными и быстро получать вторую производную в выбранном направлении.

Для заданного направления d вторая производная записывается как $d^THd$. Тогда:

🔗 Вторые производные по направлению и свойства матрицы Гессе — статья в блоге CSDN

  • Если d — собственный вектор H, соответствующий собственному значению λ:

    Поскольку d является собственным вектором, соответствующим λ (далее — собственным вектором), по определению: $$ Hd = \lambda d\ \Rightarrow d^THd=d^T\lambda d = \lambda d^Td=\lambda \ \ \ 对称矩阵d^T = d^- $$

    Следовательно, собственное значение λ, соответствующее собственному вектору, является второй производной в этом направлении.

  • Если d имеет другое направление, пусть $e_i$ — собственный вектор $H$, соответствующий собственному значению $\lambda_i$. Из предыдущего следует: $$ \lambda_i=e_i^THe_i $$ Любое направление $d=\sum_i^mt_ie_i$ представляет собой линейную комбинацию собственных векторов, где m — число собственных значений, а $t_i$ — вес $i$-го собственного вектора. Тогда: $$ d^THd=(\sum_i^mt_ie_i)^TH(\sum_i^mt_ie_i)=\sum_i^mt_ie_i^THt_ie_i=\sum_i^mt_i^2\lambda_i $$ Таким образом, вторая производная в направлении, не совпадающем с собственным вектором, является взвешенной суммой всех собственных значений. В частности, эта взвешенная сумма образует эллипсоид. В двумерном случае собственных значений вторая производная задаёт эллипс с уравнением: $$ y=\frac{\lambda_1}{\frac{1}{t_1^2}}+\frac{\lambda_2}{\frac{1}{t_2^2}} $$ Иллюстрация

    Из рисунка видно, что наибольшую вторую производную определяет максимальное собственное значение (большая полуось), а наименьшую — минимальное собственное значение (малая полуось).

Применение матрицы Гессе

Разобравшись с определением, можно применять свойства матрицы Гессе для анализа задач оптимизации: определять локальные максимумы, минимумы и седловые точки, выбирать скорость обучения и оценивать поведение градиентного спуска при плохой обусловленности. Матрица Гессе также позволяет реализовать метод Ньютона — ещё один алгоритм оптимизации.

(Конец раздела)

comments powered by Disqus