L03_局部最小值与鞍点

最优化失败的原因

梯度(gradient)为0,最优化无法继续进行下去,称这个点为critical pointcritical 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\)

posted @ 2022-03-26 17:16  Porin  阅读(156)  评论(0)    收藏  举报