做深度学习的时候,损失不是只在局部极小值的梯度是0,还有可能是其他情况,比如鞍点,鞍点就是梯度为0且区别于局部极小值和局部极大值的点。
如果损失收敛在局部极小值,所在位置已经是损失最低的点了,但是鞍点旁边还是有路可以让损失更低,只要逃离鞍点,有可能让损失更低。
当损失函数复杂时,无法知道完整损失函数的样子,但是可以通过给定一组参数如 θ ′ \theta ' θ′,其附近的损失函数用泰勒级数近似写出来。
L ( θ ) ≈ L ( θ ′ ) + ( θ − θ ′ ) T g + 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) L(\theta) \approx L({\theta}')+(\theta-{\theta}')^Tg+\frac{1}{2}(\theta-{\theta}')^TH(\theta-{\theta}') L(θ)≈L(θ′)+(θ−θ′)Tg+21(θ−θ′)TH(θ−θ′)
算出一个海森矩阵后,不需要把它跟所有的 ( θ − θ ′ ) (\theta-{\theta}') (θ−θ′)都乘乘看,只要看海森矩阵 H H H的特征值。若 H H H的所有特征值都是正的, H H H为正定矩阵,则 ( θ − θ ′ ) T H ( θ − θ ′ ) > 0 (\theta-{\theta}')^TH(\theta-{\theta}')>0 (θ−θ′)TH(θ−θ′)>0,临界点是局部极小值。若 H H H的所有特征值都是负的, H H H为负定矩阵,则 ( θ − θ ′ ) T H ( θ − θ ′ ) < 0 (\theta-{\theta}')^TH(\theta-{\theta}')<0 (θ−θ′)TH(θ−θ′)<0,临界点是局部极大值。若 H H H的特征值有正有负,临界点是鞍点。