为什么机器学习(一)——Hessian矩阵的正定性为什么可以决定函数是否有极值
在学习机器学习的过程中,我们不可绕开的是训练模型的时候怎么找到损失函数的极值。
可能大家都曾记住过这样一个结论:若M点处函数的梯度为0,则M为驻点,那么:
(1)Hessian矩阵正定=>函数在M点有极小值
(2)Hessian矩阵负定=>函数在M点有极大值
(3)Hessian矩阵不定=>M点不是极值点
最初我看到这个结论的时候把他当公式背下来了,但是时间久了容易忘而且理解不深刻,最近试着证明理解了一下,希望大家批评指正。
1.引理:多元函数的Taylor展开
多元函数的在
x
0处的Taylor展开为:
f(x1,x2,......,xn)=f(x0(1),x0(2),......,x0(n))+∑i=1nfx0(i)′(x0(1),x0(2),......,x0(n))(xi−x0(i))+2!1∑i,j=0n(xi−x0(i))(xj−x0(j))fx0(i)x0(j)′′(x0(1),x0(2),......,x0(n))+on
写成矩阵形式:
f(x
)=f(x
0)+[∇f(x0)]T(x
−x
0)+2!1[x
−x
0]TH(x0)[x
−x
0]+on
其中
H是Hessian矩阵
2.从极值原理出发看为什么有极值
假设
x0是驻点,我们想判断这个点是否是极值点,那么要看
f(x0+Δx)和
f(x0)的关系:
由Taylor展开的矩阵形式:
f(x
+Δx
)−f(x
)=[∇f(x0)]T(Δx
)+2!1[Δx
]TH(x0)[Δx
]+on(1)
由于
x0是驻点,所以
[∇f(x0)]T为0,忽略
on,则(1)式的正负仅与
[Δx
]TH(x0)[Δx
]有关,故:
(1)Hessian矩阵正定=>(1)式大于0恒成立,函数在M点有极小值
(2)Hessian矩阵负定=>(1)式小于0恒成立函数在M点有极大值
(3)Hessian矩阵不定=>(1)式正负性难料,M点不是极值点