函数等值线与Hessian矩阵的关系

参考:https://www.zhihu.com/question/24623031
以及花书4.3节《基于梯度的优化方法》

当我们的函数具有多维输入时,二阶导数也有很多。我们可以将这些导数合并成一个矩阵,称为Hessian矩阵。对于函数f:RmRnf: \Bbb R^m \rightarrow \Bbb R^n,Hessian矩阵H\boldsymbol H定义为:

Hi,j=2xixjf(x)\boldsymbol H_{i,j}=\frac{\partial^2}{\partial x_i \partial x_j}f(\boldsymbol x)

f(x)f(\boldsymbol x)二阶偏导连续,则有:

2xixjf(x)=2xjxif(x)\frac{\partial^2}{\partial x_i \partial x_j}f(\boldsymbol x)=\frac{\partial^2}{\partial x_j \partial x_i}f(\boldsymbol x)

Hi,j=Hj,iH_{i,j}=H_{j,i},因此Hessian矩阵是对称矩阵。在深度学习背景下,我们遇到的大多数函数的Hessian矩阵几乎处处都是对称的。因为Hessian矩阵是实对称矩阵,我们可以将其分解成一组实特征值和特征向量的正交,即H=QTΛQH=Q^T\Lambda Q,其中QQ为正交矩阵,其列向量(即特征向量)内积为1。

在特定方向 dd上的二阶导数可以写成dTHdd^THd。当 ddHH 的一个特征向量αi\alpha_i时,设对应的特征值为λi\lambda_i,二阶导数为:

αiTHαi=αiTλαi=λ\alpha_i^TH\alpha_i=\alpha_i^T\lambda \alpha_i=\lambda

即特征向量方向上的二阶导数就是对应的特征值。对于其他的方向 dd,方向二阶导数是所有特征值的加权平均,权重在 0 和 1 之间,且与 dd 夹角越小的特征向量有更大的权重。最大特征值确定最大二阶导数,最小特征值确定最小二阶导数

对于代价函数JJ,其等值线与其Hessian矩阵有什么关系?

对于使用均方误差的线性回归,有J(w)=i=1m(wTxiyi)2J(\boldsymbol w)=\sum_{i=1}^m(\boldsymbol w^Tx_i-y_i)^2

为作图便于观察,仅考虑参数向量为二维的情形,即参数向量w=[w1,w2]w=[w_1,w_2],设w\boldsymbol w^*JJ的极小值点,则J(w)J(\boldsymbol w)等值线类似下图.

函数等值线与Hessian矩阵的关系

在图中,最大特征值对应的特征向量对应二阶导数最大的方向,即图中的椭圆的短轴方向,亦即等值线最密集、“山坡”最陡的那面;最小特征值对应的特征向量对应二阶导数最小的方向,即图中椭圆的长轴方向,亦即等值线最稀疏、“山坡”最平缓的那面。