Hessian矩阵在机器学习中的应用

1 概念

1.1 Jacob矩阵

  有时,我们需要计算多元函数的所有偏导数,并将其用在对当前点的最优线性逼近当中,Jacob矩阵将多元函数的偏导数以一定顺序排列成为矩阵。具体来说,如果我们有一个函数 ,则 的Jacobian矩阵定义为:

  假设 是从一个欧式n维空间转换到欧式m维空间的函数,这个函数由m个实函数组成,即:.这些偏导数(如果存在)可以组成一个 n 行 m 列的矩阵,这就是所谓Jacob矩阵:\begin{bmatrix} \frac { { \partial }_{ y1 } }{ { \partial }_{ x1 } } & \cdots & \frac { { \partial }_{ y1 } }{ { \partial }_{ xn } } \\ \vdots & \ddots & \vdots \\ \frac { { \partial }_{ yn } }{ { \partial }_{ x1 } } & \cdots & \frac { { \partial }_{ yn } }{ { \partial }_{ xn } } \end{bmatrix}

1.2 hessian矩阵

  当我们需要判断对当前点的最优线性逼近速度时,我们会需要考虑导数的导数,即二阶导数。例如,有一个函数 ,的一阶导数(关于 )关于 的导数记为: ,它能够告诉我们,结果是否会产生如我们预期那样大的改善。二阶矩阵以矩阵的形式表述为:\begin{bmatrix} \frac { { \partial }^{ 2 } }{ { \partial }^{ { x }_{ 1 } }{ \partial }^{ { x }_{ 1 } } } & \cdots & \frac { { \partial }^{ 2 } }{ { \partial }^{ { x }_{ 1 } }{ \partial }^{ { x }_{ n } } } \\ \vdots & \ddots & \vdots \\ \frac { { \partial }^{ 2 } }{ { \partial }^{ { x }_{ n } }{ \partial }^{ { x }_{ 1 } } } & \cdots & \frac { { \partial }^{ 2 } }{ { \partial }^{ { x }_{ n } }{ \partial }^{ { x }_{ n } } } \end{bmatrix} 我们可以使用二阶导数的值来判断梯度下降的速率,当负梯度值为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的点处,恒有
    故该点为最小值点;

  举例说明:其在点 x=0,y=0处为极小值点。

  • 当hessian矩阵负定时(即:对任意的 不等于,有 恒成立)。对于任意的方向向量 ,在梯度为0的点处,恒有,该点为最大值点;
  • 当hessian矩阵同时具有正负特征值时,则此时为鞍点

  举例说明:其在点 x=0,y=0处为鞍点。

你可能感兴趣的:(Hessian矩阵在机器学习中的应用)