为什么机器学习(一)——Hessian矩阵的正定性为什么可以决定函数是否有极值

为什么机器学习(一)——Hessian矩阵的正定性为什么可以决定函数是否有极值

在学习机器学习的过程中,我们不可绕开的是训练模型的时候怎么找到损失函数的极值。
可能大家都曾记住过这样一个结论:若M点处函数的梯度为0,则M为驻点,那么:
(1)Hessian矩阵正定=>函数在M点有极小值
(2)Hessian矩阵负定=>函数在M点有极大值
(3)Hessian矩阵不定=>M点不是极值点
最初我看到这个结论的时候把他当公式背下来了,但是时间久了容易忘而且理解不深刻,最近试着证明理解了一下,希望大家批评指正。

1.引理:多元函数的Taylor展开

多元函数的在x0\vec x_0处的Taylor展开为:


f(x1,x2,......,xn)=f(x0(1),x0(2),......,x0(n))+i=1nfx0(i)(x0(1),x0(2),......,x0(n))(xix0(i))+12!i,j=0n(xix0(i))(xjx0(j))fx0(i)x0(j)(x0(1),x0(2),......,x0(n))+onf(x_1,x_2,......,x_n) = f(x_{0(1)},x_{0(2)},......,x_{0(n)})+ \sum_{i=1}^{n}f'_{x_{0(i)}}(x_{0(1)},x_{0(2)},......,x_{0(n)})(x_i - x_{0(i)})\\+ \frac{1}{2!}\sum_{i,j=0}^n(x_i-x_0(i))(x_j-x_{0(j)})f''_{x_0(i)x_0(j)}(x_{0(1)},x_{0(2)},......,x_{0(n)}) + o^n

写成矩阵形式:


f(x)=f(x0)+[f(x0)]T(xx0)+12![xx0]TH(x0)[xx0]+onf(\vec x) = f(\vec x_0) + [\nabla f(x_0)]^T(\vec x - \vec x_0) +\frac{1}{2!}[\vec x - \vec x_0]^TH(x_0)[\vec x - \vec x_0] + o^n

其中HH是Hessian矩阵

2.从极值原理出发看为什么有极值

假设x0x_0是驻点,我们想判断这个点是否是极值点,那么要看f(x0+Δx)f(x_0+\Delta x)f(x0)f(x_0)的关系:
由Taylor展开的矩阵形式:

f(x+Δx)f(x)=[f(x0)]T(Δx)+12![Δx]TH(x0)[Δx]+on(1)f(\vec x + \vec {\Delta x})-f(\vec x) = [\nabla f(x_0)]^T( \vec {\Delta x}) +\frac{1}{2!}[ \vec {\Delta x}]^TH(x_0)[ \vec {\Delta x}] + o^n \tag{1}

由于x0x_0是驻点,所以[f(x0)]T[\nabla f(x_0)]^T为0,忽略ono^n,则(1)式的正负仅与[Δx]TH(x0)[Δx][ \vec {\Delta x}]^TH(x_0)[ \vec {\Delta x}]有关,故:
(1)Hessian矩阵正定=>(1)式大于0恒成立,函数在M点有极小值
(2)Hessian矩阵负定=>(1)式小于0恒成立函数在M点有极大值
(3)Hessian矩阵不定=>(1)式正负性难料,M点不是极值点

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章