梯度之上:Hessian 矩陣

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$ ,則:

🔗 基於Hessian矩陣的二階方向導數與性質_Hi 喀什噶爾的胡楊的部落格-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}} $$ 在這裡插入圖片描述

    由圖可知,最大二階導數由最大特徵值決定(長半軸),而最小二階導數由最小特徵值決定(短半軸)。

海森矩陣應用

在弄清海森矩陣的基本定義後,就可以使用海森矩陣的一些性質來分析最佳化方法中的一些問題了。如確定區域性最大點、區域性最小點和鞍點、確定學習率、以及使用病態條件來確定梯度下降的表現等,同時我們還可以利用Hessian矩陣來實現牛頓法這種最佳化演算法,。

(本節完)

comments powered by Disqus