一、定义
海森矩阵最直观的定义是具有多维输入的函数f(x
1,x2.....xn)的二阶偏导数组成的方阵,形式如下:当然,我们也可以认为函数的输入是一个多维向量,这和深度学习的场景就很相似了。由于微分算子在任何二阶偏导连续的点可交换
我们仔细观察海森矩阵会发现它有很强的对称性,实际上在深度学习的背景下,我们遇到的大多数函数的海森矩阵几乎处处对称。
二、作用
1、判断多元函数的极值
我们都知道对于一元二阶可导函数,一阶导数为零,二阶导数大于零是极小值点;一阶导数为零,二阶导数小于零是极大值点;一阶导数和二阶导数都为零是驻点。海森矩阵帮助我们把这个理论推广到了多维函数。将海森矩阵进行特征值分解可得如下定理:
矩阵正定(所有特征值为正),该临界点为局部极小值点。
矩阵负定(所有特征值为负),该临界点为局部极大值点。
特征值中至少一个为正或者至少一个为负,该临界点为鞍点。
所有非零特征值同号且至少有一个特征值为零,该点无法确定。
2、优化目标函数
我们可以将目标函数在某点的邻域展开成泰勒多项式来逼近原函数。最典型的应用就是牛顿法。牛顿法基于一个二阶泰勒公式展开来近似x
0附近的f(x)。其中H代表海森矩阵,如果f是一个正定二次函数,牛顿法能直接跳到函数的最小点。如果f不是一个正定二次函数但是在局部能近似为正定二次,牛顿法也可以比梯度下降更快的到达临界点。
但是在遇到鞍点时却很容易沦陷。只有当海森矩阵正定时牛顿法才适用。
閱讀更多 時辰大海 的文章