1. 局部极小值与鞍点
1.1 优化失败的原因
在优化过程中,有时会遇到损失不再下降的情况,但结果仍不理想。这可能是由于模型收敛到局部极小值或鞍点,导致梯度下降无法继续更新参数。
1.2 临界点及其种类
- 局部极小值:梯度为零,且在该点附近的所有方向上,损失函数值都比此点的值大。
- 鞍点:梯度为零,但在某些方向上,损失函数值低于该点,而在其他方向上,损失函数值高于该点。鞍点的形状类似马鞍。
- 临界点:梯度为零的点,包括局部极小值、局部极大值和鞍点。
1.3 判断临界点种类的方法
- 海森矩阵(Hessian Matrix):用于判断临界点是局部极小值、局部极大值还是鞍点。海森矩阵包含损失函数的二次导数。
- 若海森矩阵的所有特征值都为正,临界点是局部极小值。
- 若所有特征值都为负,临界点是局部极大值。
- 若特征值有正有负,临界点是鞍点。
1.4 逃离鞍点的方法
- 尽管海森矩阵可以帮助判断鞍点并指出参数更新的方向,但计算海森矩阵及其特征值非常耗费计算资源,实际应用中很少采用。
- 其他逃离鞍点的方法通常计算量较小,实践中更多被使用。
2. 鞍点与局部极小值的关系
- 鞍点虽然可能让损失不再下降,但并不可怕,因为在高维空间中,局部极小值往往很少见。
- 高维空间中有更多的方向可以选择,因此,即便在低维空间中看似是局部极小值,在高维空间中可能只是鞍点。
3. 实验结果
- 实验表明,在神经网络训练过程中,真正的局部极小值并不常见,更多的是遇到鞍点。
- 大部分情况下,特征值呈现正负各半的情况,即在某些方向上损失增加,而在另一些方向上损失减小,这表明多数临界点是鞍点而非局部极小值。
4. 结论
- 在深度学习的优化过程中,理解鞍点的性质有助于更好地理解损失函数的行为,并采取有效的措施优化神经网络。