深度学习基础——局部极小值与鞍点
当在对深度模型做优化时,会发现随着参数不断更新,训练的损失不会再下降或者不管我们如何更新参数,损失都降不下去,发生这种现象的原因时什么?
临界点及其种类
优化神经网络时,使用梯度下降法,遇到梯度为0的点,训练就停下来了,损失也不再下降。这个梯度为0的点,可以称为临界点。
临界点可以细分为局部极小值、局部极大值和鞍点。
鞍点区别于局部极小值和局部极大值的特点是:在某些方向上时极小值,某些方向上是极大值,形pa似马鞍面。
判断临界值种类的方法
1.泰勒级数近似
泰勒级数是一种用函数在某点的信息描述其附近取值的数学工具。在深度学习中,当损失函数L(θ)在临界点θ'处梯度为零时,可以利用泰勒级数来近似L(θ)在θ'附近的函数表示。泰勒级数近似公式可以表示为:
其中,g是梯度向量,H是海森矩阵(Hessian Matrix)。在临界点处,梯度g为零,因此上式可以简化为
接下来,通过分析海森矩阵H的特征值来判断临界点的类型:
- 如果H的所有特征值均为正,则θ'是局部极小值点。
- 如果H的所有特征值均为负,则θ'是局部极大值点(在深度学习中较少讨论)。
- 如果H的特征值有正有负,则θ'是鞍点。
2.数值方法
除了泰勒级数近似外,还可以通过数值方法来近似计算梯度或海森矩阵的特征值,从而判断临界点的类型。这些方法通常基于有限差分或扰动分析,通过在临界点附近对参数进行微小扰动,观察损失函数的变化来推断临界点的性质。
逃离鞍点的方法
在实际的深度学习训练中,为了逃离鞍点或局部最小值点,通常会设计一些特定的算法或优化策略,如:
- 动量法(Momentum Method):通过引入动量项来模拟物理中的惯性效应,使得优化过程能够跨越鞍点或局部最小值点。
- 随机梯度下降(Stochastic Gradient Descent, SGD):由于引入了随机噪声,SGD相比批量梯度下降更容易逃离局部最小值点。
- 学习率调整策略:如自适应学习率调整、学习率衰减等,这些策略可以帮助优化过程在接近临界点时调整步长,以更精细地搜索全局最优解。