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

浙公网安备 33010602011771号