最优化失败的原因
梯度(gradient)为0,最优化无法继续进行下去,称这个点为critical point
。critical point
分为local minima(局部最小值)
和saddle point(鞍点)
。如果卡在local minima
就已经无路可走,如果在saddle point
还是有路可以走的
如何鉴别是局部最小值还是鞍点呢
使用Tayler Series Approximation(泰勒级数近似),
L
(
θ
)
L(\theta)
L(θ)在
θ
=
θ
′
\theta=\theta^{\prime}
θ=θ′的近似可以写成下边的式子:
L
(
θ
)
≈
L
(
θ
′
)
+
1
2
(
θ
−
θ
′
)
T
H
(
θ
−
θ
′
)
L(\theta)\approx L(\theta^{\prime})+\frac{1}{2}(\theta-\theta^{\prime})^{T}H(\theta - \theta^{\prime})
L(θ)≈L(θ′)+21(θ−θ′)TH(θ−θ′)
梯度 g 是一个向量:
g
=
∇
L
(
θ
′
)
g
i
=
∂
L
(
θ
′
)
∂
θ
i
g=\nabla L(\theta^{\prime})\quad g_{i} = \frac{\partial L(\theta^{\prime})}{\partial \theta_{i}}
g=∇L(θ′)gi=∂θi∂L(θ′)
H是海森矩阵:
H
i
j
=
∂
2
∂
θ
i
θ
j
L
(
θ
′
)
H_{ij}=\frac{\partial ^{2}}{\partial \theta_{i}\theta_{j}} L(\theta^{\prime})
Hij=∂θiθj∂2L(θ′)
在进入到一个critical point时
g
=
0
\mathbf{g}=0
g=0,则有:
L
(
θ
)
≈
L
(
θ
′
)
+
1
2
(
θ
−
θ
′
)
T
H
(
θ
−
θ
′
)
L(\theta)\approx L(\theta^{\prime})+\frac{1}{2}(\theta-\theta^{\prime})^{T}H(\theta - \theta^{\prime})
L(θ)≈L(θ′)+21(θ−θ′)TH(θ−θ′)
- 如果 H H H正定,即特征值全为正,则这个点是局部最小值(Local minima)
- 如果 H H H负定,即特征值全为负,则这个点是局部最大值(Local maxima)
- 如果 H H H的特征值有正有负,则这个点是鞍点(Saddle point)
不用惧怕鞍点(Saddle point)
如果最优化卡在了鞍点,那么这一点的海森矩阵会告诉我们更新参数的方向。取一个特征值
λ
<
0
\lambda<0
λ<0,令
λ
\lambda
λ对应的特征向量为
u
u
u,我们可以得到:
u
T
H
u
=
u
T
(
λ
u
)
=
λ
∣
∣
u
∣
∣
2
<
0
u^{T}Hu=u^{T}(\lambda u)=\lambda ||u||^{2}<0
uTHu=uT(λu)=λ∣∣u∣∣2<0
因此,假设
θ
−
θ
′
=
u
\theta - \theta^{\prime}=u
θ−θ′=u,可以得到:
1
2
(
θ
−
θ
′
)
T
H
(
θ
−
θ
′
)
<
0
\frac{1}{2}(\theta-\theta^{\prime})^{T}H(\theta - \theta^{\prime})<0
21(θ−θ′)TH(θ−θ′)<0
也就是说
L
(
θ
)
<
L
(
θ
)
′
L(\theta)<L(\theta)^{\prime}
L(θ)<L(θ)′,故取
θ
=
θ
′
+
u
\theta = \theta^{\prime}+u
θ=θ′+u,就可以得到更小的
L
o
s
s
Loss
Loss。