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

  • Post author:
  • Post category:其他




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

在学习机器学习的过程中,我们不可绕开的是训练模型的时候怎么找到损失函数的极值。

可能大家都曾记住过这样一个结论:若M点处函数的梯度为0,则M为驻点,那么:

(1)Hessian矩阵正定=>函数在M点有极小值

(2)Hessian矩阵负定=>函数在M点有极大值

(3)Hessian矩阵不定=>M点不是极值点

最初我看到这个结论的时候把他当公式背下来了,但是时间久了容易忘而且理解不深刻,最近试着证明理解了一下,希望大家批评指正。



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

多元函数的在



x

0

\vec x_0














x
























0





















处的Taylor展开为:






f

(

x

1

,

x

2

,

.

.

.

.

.

.

,

x

n

)

=

f

(

x

0

(

1

)

,

x

0

(

2

)

,

.

.

.

.

.

.

,

x

0

(

n

)

)

+

i

=

1

n

f

x

0

(

i

)

(

x

0

(

1

)

,

x

0

(

2

)

,

.

.

.

.

.

.

,

x

0

(

n

)

)

(

x

i

x

0

(

i

)

)

+

1

2

!

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_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










1


















,





x










2


















,




.


.


.


.


.


.


,





x










n


















)




=








f


(



x











0


(


1


)



















,





x











0


(


2


)



















,




.


.


.


.


.


.


,





x











0


(


n


)



















)




+





















i


=


1










n






















f












x











0


(


i


)















































(



x











0


(


1


)



















,





x











0


(


2


)



















,




.


.


.


.


.


.


,





x











0


(


n


)



















)


(



x










i






























x











0


(


i


)



















)










+




















2


!
















1




































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

(

x

0

)

+

[

f

(

x

0

)

]

T

(

x

x

0

)

+

1

2

!

[

x

x

0

]

T

H

(

x

0

)

[

x

x

0

]

+

o

n

f(\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






f


(









x
















)




=








f


(










x
























0


















)




+








[





f


(



x










0


















)



]










T









(









x



































x
























0


















)




+




















2


!
















1





















[









x



































x
























0



















]










T









H


(



x










0


















)


[









x



































x
























0


















]




+









o










n












其中



H

H






H





是Hessian矩阵



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

假设



x

0

x_0







x










0





















是驻点,我们想判断这个点是否是极值点,那么要看



f

(

x

0

+

Δ

x

)

f(x_0+\Delta x)






f


(



x










0




















+








Δ


x


)









f

(

x

0

)

f(x_0)






f


(



x










0


















)





的关系:

由Taylor展开的矩阵形式:






f

(

x

+

Δ

x

)

f

(

x

)

=

[

f

(

x

0

)

]

T

(

Δ

x

)

+

1

2

!

[

Δ

x

]

T

H

(

x

0

)

[

Δ

x

]

+

o

n

(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}






f


(









x


















+
















Δ


x

















)













f


(









x
















)




=








[





f


(



x










0


















)



]










T









(










Δ


x

















)




+



















2


!














1




















[










Δ


x


















]










T









H


(



x










0


















)


[










Δ


x

















]




+









o










n














(



1



)






由于



x

0

x_0







x










0





















是驻点,所以



[

f

(

x

0

)

]

T

[\nabla f(x_0)]^T






[





f


(



x










0


















)



]










T












为0,忽略



o

n

o^n







o










n












,则(1)式的正负仅与



[

Δ

x

]

T

H

(

x

0

)

[

Δ

x

]

[ \vec {\Delta x}]^TH(x_0)[ \vec {\Delta x}]






[










Δ


x


















]










T









H


(



x










0


















)


[










Δ


x

















]





有关,故:

(1)Hessian矩阵正定=>(1)式大于0恒成立,函数在M点有极小值

(2)Hessian矩阵负定=>(1)式小于0恒成立函数在M点有极大值

(3)Hessian矩阵不定=>(1)式正负性难料,M点不是极值点



版权声明:本文为qq_37477357原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。