Appearance
优化挑战
深度学习优化存在许多挑战。其中最令人烦恼的是 局部最小值、鞍点和梯度消失。
1. 局部最小值
对于任何目标函数,如果在处对应的值小于在附近任意其他点的值,那么可能是局部最小值。如果在处的值是整个域中目标函数的最小值,那么是全局最小值。
深度学习模型的目标函数通常有许多局部最优解。当优化问题的数值解接近局部最优值时,随着目标函数解的梯度接近或变为零,通过最终迭代获得的数值解可能仅使目标函数局部最优,而不是全局最优。
只有一定程度的噪声可能会使参数跳出局部最小值。事实上,这是小批量随机梯度下降的有利特性之一。在这种情况下,小批量上梯度的自然变化能够将参数从局部极小值中跳出。
2. 鞍点
除了局部最小值之外,鞍点是梯度消失的另一个原因。鞍点(saddle point)是指函数的所有梯度都消失但既不是全局最小值也不是局部最小值的任何位置。考虑这个函数 𝑓(𝑥)=𝑥3 。它的一阶和二阶导数在 𝑥=0 时消失。这时优化可能会停止,尽管它不是最小值。
如下例所示,较高维度的鞍点甚至更加隐蔽。考虑这个函数。它的鞍点为 。这是关于的最大值,也是关于的最小值。此外,它看起来像个马鞍,这就是鞍点的名字由来。
黑塞矩阵
我们假设函数的输入是 𝑘 维向量,其输出是标量,因此其Hessian矩阵(也称黑塞矩阵)将有 𝑘 个特征值(参考特征分解的在线附录)。函数的解可能是局部最小值、局部最大值或函数梯度为零位置处的鞍点:
- 当函数在零梯度位置处的Hessian矩阵的特征值全部为正值时,我们有该函数的局部最小值;
- 当函数在零梯度位置处的Hessian矩阵的特征值全部为负值时,我们有该函数的局部最大值;
- 当函数在零梯度位置处的Hessian矩阵的特征值为负值和正值时,我们有该函数的一个鞍点。
对于高维度问题,至少部分特征值为负的可能性相当高。这使得鞍点比局部最小值更有可能出现。
简而言之,凸函数是Hessian函数的特征值永远不为负值的函数。不幸的是,大多数深度学习问题并不属于这一类。尽管如此,它还是研究优化算法的一个很好的工具。
3. 梯度消失
可能遇到的最隐蔽问题是梯度消失,
更多内容请见梯度消失和梯度爆炸一章。
4. 总结
- 优化问题可能有许多局部最小值。
- 一个问题可能有很多的鞍点,因为问题通常不是凸的。
- 梯度消失可能会导致优化停滞,重参数化通常会有所帮助。对参数进行良好的初始化也可能是有益的。