深度学习基础:
本章介绍了深度学习中常见的概念和技巧,帮助优化神经网络的训练。特别强调了对局部极小值与鞍点的理解,以及如何通过调整学习率和批量归一化等方法优化训练过程。
3.1 局部极小值与鞍点
优化过程中,随着参数不断更新,常常会遇到训练损失停止下降的情况。为此,本节探讨了临界点(如局部极小值和鞍点)的概念及其对优化的影响。通过比较深层网络和浅层网络,发现深层网络在优化时常常未能充分发挥其优势,这可能是因为收敛到了某个临界点,但此时损失降低的效果仍不满意。
3.1.1 临界点及其种类
过去的研究认为,当梯度为零时,神经网络可能收敛在局部极小值。然而,梯度为零并不仅限于局部极小值,鞍点也是一种可能。鞍点是指在某个地方梯度为零,但是在某些方向上损失增加,而在其他方向上损失减少的临界点。这种情况下,虽然梯度为零,但仍有可能通过调整参数进一步降低损失。
3.1.2 判断临界点种类的方法
在判断临界点种类时,利用泰勒级数展开对损失函数 f(x) 进行近似分析是一个有效的方法。泰勒级数在临界点 x ∗附近的展开形式如下:
其中,H 是损失函数 f(x) 在点 x ∗处的海森矩阵,定义为所有二阶偏导数的矩阵:
海森矩阵的特征值及其符号对于判断临界点的性质至关重要。具体来说:
局部极小值 (Local Minima): 如果海森矩阵 H 的所有特征值均为正(即 λ i>0,其中 i 表示第 i 个特征值),那么临界点 x ∗是一个局部极小值。这意味着在 x ∗附近的任意方向上,函数值都会增加。
局部极大值 (Local Maxima): 如果海森矩阵 H 的所有特征值均为负(即 λ i <0),则临界点 x ∗是一个局部极大值。这表明在 x ∗附近的任意方向上,函数值都会减小。
鞍点 (Saddle Point): 如果海森矩阵 H 的特征值中有正有负(即存在λ i>0 和 λ j <0),则临界点 x ∗是一个鞍点。在这种情况下,函数值在某些方向上增加,在另一些方向上减少,因此 x ∗既不是局部极小值,也不是局部极大值。
3.1.3 逃离鞍点的方法
在优化过程中,虽然鞍点的存在可能导致训练停滞,但我们可以利用海森矩阵的特征向量来找到逃离鞍点的方向,从而继续优化模型。尽管在实际应用中很少直接计算海森矩阵,但理解其背后的原理对深度学习优化有着重要意义。
鞍点与局部极小值的区别在于,鞍点处的海森矩阵具有正负混合的特征值,即在某些方向上损失函数呈下降趋势,而在其他方向上则上升。因此,虽然鞍点可能导致梯度接近于零,但并不意味着训练过程必须在此停滞。通过分析海森矩阵的特征向量,我们能够识别出那些对应负特征值的方向,并在这些方向上施加微小扰动,从而逃离鞍点并继续优化。
在讨论鞍点时,常常会提出一个问题:在高维度空间中,鞍点和局部极小值哪个更为常见?实际上,鞍点并不可怕,甚至可能更为常见。在科幻小说《三体III:死神永生》中,有一个情节可以形象地说明这一点。东罗马帝国的国王君士坦丁十一世为对抗土耳其人,找来了具有神秘力量的狄奥伦娜。狄奥伦娜展示了她能够进入四维空间的能力,从而能够从一个在三维空间中密封的石棺中取出圣杯并放入一串新鲜的葡萄。这个情节暗示了在更高维度空间中,原本在低维空间中不可逃离的障碍可能并不存在。
类似地,如图3.5所示,一维空间中的局部极小值在二维空间中可能只是鞍点,而在更高维空间中,鞍点可能会提供更多的优化路径。经验上来看,随着维度的增加,参数空间的维度也随之增加,误差表面也变得更加复杂。在这样的高维空间中,真正的局部极小值反而很少见,而我们通常遇到的临界点往往只是鞍点。
在图3.6中展示的实验结果支持了这一假说。每个点代表一个神经网络模型的训练结果,纵轴表示模型在训练过程中收敛到的临界点的损失值,横轴表示最小值比例,即正特征值数量与总特征值数量的比值。我们可以看到,几乎没有所有特征值都为正的临界点,最小值比例通常在0.5到0.6之间,这表明即使是看似接近局部极小值的点,实际上也可能仍然具有许多可供继续优化的方向。
因此,从实际经验来看,局部极小值并不如想象中那么常见。多数情况下,当训练过程接近停滞时,模型可能只是遇到了鞍点,而不是局部极小值。这也意味着我们有更大的机会通过合理的扰动逃离鞍点,继续优化模型。