- Hessian矩阵正定和极值点的关系
同济版《高等数学》下册对二元函数极值点的判定法则:
A C − B 2 > 0 ,其中 A = f x x ( 2 ) , C = f y y ( 2 ) , B = f x y ( 2 ) AC - B^2 >0,其中A=f^{(2)}_{xx},C =f^{(2)}_{yy},B = f^{(2)}_{xy} AC−B2>0,其中A=fxx(2),C=fyy(2),B=fxy(2)
此处的二元函数可以看做二维向量。
而在机器学习中,对于极值点的描述是:hessian矩阵正定(或者非负定矩阵或者半正定)。这两者有何关系?
要证明这个结论,首先要明确一点,hessian矩阵是对称矩阵,对称矩阵 Q Q Q必然可以对角化为
P T Λ P P^T\Lambda P PTΛP,假若关于样本值的二阶导数矩阵为:
A
T
Q
A
=
A
T
(
P
T
Λ
P
)
A
=
(
A
P
)
T
Λ
(
P
A
)
A^TQA = A^T(P^T\Lambda P)A = (AP)^T\Lambda (PA)
ATQA=AT(PTΛP)A=(AP)TΛ(PA),而对称矩阵的特征向量正交,即:
P
i
T
P
j
=
0
,
i
!
=
j
P
i
T
P
j
=
1
,
i
=
=
j
P_{i}^{T} P_{j} = 0, i != j\\ P_{i}^{T} P_{j} = 1, i == j
PiTPj=0,i!=jPiTPj=1,i==j
因此,若
Λ
\Lambda
Λ 正定,则二次型的值必然大于0,结论得证。
通俗的理解:因为hessian矩阵的特征值可以看做梯度的反方向,若矩阵的特征值符号不同,说明元素的梯度方向不同,有些元素的导数为正,有些元素的导数为负数。此时,多元函数有可能处于鞍点,当前点肯定不是多元函数的极值点。
而《高等数学》的条件中,可以推出如下结论: B 2 > 0 , A 与 C 同号,即 2 者导数方向相同 B^2 > 0, A与C同号,即2者导数方向相同 B2>0,A与C同号,即2者导数方向相同。若此时两个元素的导数都大于0,那么此时梯度方向为负数,当前是极大值;若两个元素的导数都小于0,此时梯度下降方向为正值,当前点为极小值。
考虑求如下hessian矩阵的特征值:
{
A
B
B
C
}
x
=
λ
x
\begin {Bmatrix} A & B \\ B&C \end {Bmatrix}x = \lambda x
{ABBC}x=λx
∣
A
−
λ
B
B
C
−
λ
∣
=
0
\begin {vmatrix} A - \lambda & B \\ B&C - \lambda \end {vmatrix} = 0
A−λBBC−λ
=0
λ 2 − ( A + C ) λ + A C − B 2 = 0 \lambda ^ 2 - (A+C)\lambda + AC - B^2 = 0 λ2−(A+C)λ+AC−B2=0
λ = ( A + C ) + − ( A + C ) 2 − 4 A C + B 2 2 = ( A + C ) + − ( A − C ) 2 + B 2 2 \lambda = \frac {(A+C) +- \sqrt{(A+C)^2 - 4AC + B^2}}{2} = \\ \frac {(A+C) +- \sqrt{(A-C)^2 + B^2}}{2} λ=2(A+C)+−(A+C)2−4AC+B2=2(A+C)+−(A−C)2+B2
此时一定有:
(
A
+
C
)
≥
(
A
−
C
)
2
+
B
2
{(A+C) \ge \sqrt{(A-C)^2 + B^2}}
(A+C)≥(A−C)2+B2
通过《高等数学》的结论 A C > B 2 AC > B^2 AC>B2一定可以推出其矩阵的特征值大于0。
- hessian矩阵的特征值和梯度下降
h e s s i a n 矩阵特征值的 绝对值 最大的为梯度下降最快的方向 \color{red}hessian矩阵特征值的\color{green}绝对值\color{red}最大的为梯度下降最快的方向 hessian矩阵特征值的绝对值最大的为梯度下降最快的方向
这个论述是显而易见,训练数据可以看做向量,各个元素的比重相同,因此,一个向量中梯度最大的元素作为整个向量的梯度下降方向是合适的。