为什么机器学习(一)——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点不是极值点