1 概念
1.1 Jacob矩阵
有时,我们需要计算多元函数的所有偏导数,并将其用在对当前点的最优线性逼近当中,Jacob矩阵将多元函数的偏导数以一定顺序排列成为矩阵。具体来说,如果我们有一个函数 ,则
的Jacobian矩阵定义为:
假设 是从一个欧式n维空间转换到欧式m维空间的函数,这个函数由m个实函数组成,即:
.这些偏导数(如果存在)可以组成一个 n 行 m 列的矩阵,这就是所谓Jacob矩阵:
1.2 hessian矩阵
当我们需要判断对当前点的最优线性逼近速度时,我们会需要考虑导数的导数,即二阶导数。例如,有一个函数 ,
的一阶导数(关于
)关于
的导数记为:
,它能够告诉我们,结果是否会产生如我们预期那样大的改善。二阶矩阵以矩阵的形式表述为:
我们可以使用二阶导数的值来判断梯度下降的速率,当负梯度值
为1时,代价函数将下降
的大小,如果二阶导数为负值时,梯度下降的值将比
少,如果二阶导数是正值,则梯度下降的值将比
多。
1.3 正定矩阵、负定矩阵
这里简要介绍下定义和性质,后面会用的到。
定义
- 一个n×n的实对称矩阵 M 是正定的,当且仅当对于所有的非零实系数向量z,都有zTMz > 0。其中zT表示z的转置。
- 一个n×n的实对称矩阵M是负定的,当且仅当对于所有的非零实系数向量,都有zTMz < 0。其中zT表示z的转置。
判别正定矩阵
- 矩阵 M的所有的特征值
都是正的。
- M的所有顺序主子式,也就是顺序主子阵的行列式都是正的
- 存在唯一的下三角矩阵
,其主对角线上的元素全是正的,使得
, 使得
是
的转置
2 Hessian矩阵的使用
2.1 hessian矩阵与特征值的关系
由于hessian矩阵是二阶导数组成的矩阵,而微分算子在二阶偏导数连续的点上可交换,因此Hessian矩阵处处对称,则hessian矩阵是实对称矩阵,因此可以分解成 的形式。
假设原函数为: ,假设以考虑
,则
。对
求一阶导数,可得到如下式:
这是一个关于 的一元函数,继续进行二次求导可得:
再将Hession矩阵进行分解,可以得到
是 Hession矩阵的特征向量,
是特征值组成的矩阵。若
与
为同一方向的向量,则
在 该方向上的二阶导数值为对应的特征值。若
与
不为同一方向的向量,则
可以由其他方向的特征向量表示,因此可以将该向量转化成多个特征向量权重相加的形式,因此,权重可以转移到内部矩阵中,即可以由多个特征值加权组成,且特征向量越接近,权重越大。
2.2 hessian关于学习率变化的计算
将我们需要求解的值使用泰勒级数展开为:
,
其中 是梯度,
是该点的Hessian矩阵。如果使用学习率为
进行计算,则可以得到公式为:
如果想使损失函数不断减小,则后两项之和必须小于0,若求减少的最大值,对后面两项进行求导,则得出,则
取该值时,后两项取得极值。若g为最大特征值的特征向量方向,则
取得最小值,为
。
2.3 极值、鞍点的判断
由Hessian的定义:可知:Hessian矩阵是实对称的。
- 当hessian矩阵正定时(即:对任意的
不等于
,有
恒成立)。对于任意的方向向量
,在梯度为0的点处,恒有
故该点为最小值点;
<kbd> 举例说明:其在点 x=0,y=0处为极小值点。</kbd>
- 当hessian矩阵负定时(即:对任意的
不等于
,有
恒成立)。对于任意的方向向量
,在梯度为0的点处,恒有
,该点为最大值点;
- 当hessian矩阵同时具有正负特征值时,则此时为鞍点
<kbd> 举例说明:其在点 x=0,y=0处为鞍点。</kbd>