趋近智
SGD和Momentum等常用优化方法被广泛应用。这些方法处理优化问题时,凸性通常会简化处理过程,但深度学习中的非凸情况则存在局部最小值和鞍点等重要障碍。但是,我们如何精确地比较不同的优化算法呢?仅仅观察它们是否最终找到一个解是不够的。我们需要量化它们接近解的速度。这就是收敛性分析的范畴。
理解收敛行为对于有效选择和调整优化算法非常重要。它有助于我们回答这样的问题:此算法能找到一个好的解吗?它可能需要多少次迭代或多少计算时间?它容易陷入停滞吗?
首先,对于生成一系列迭代点x0,x1,x2,…的算法来说,收敛意味着什么?直观地看,这意味着该序列越来越接近一个关注点,通常是我们目标函数f(x)的一个极小点x∗。更正式地说,我们常考虑以下条件之一:
尽管知道算法是否收敛很重要,但对实践而言,核心是其收敛的速度。
收敛速度描述了误差(例如,f(xk)−f(x∗)或∣∣xk−x∗∣∣)随着迭代次数k的增加而减少的速度。不同的算法表现出不同的收敛特性。令ek表示第k次迭代时的误差。
这通常是我们在实用算法中遇到的最慢的收敛类型。误差减小,但其速度慢于每次迭代的任何常数因子。典型的速度包括:
许多随机方法,例如应用于凸函数或非凸函数的基本SGD,常表现出次线性收敛。尽管速度慢,但它们每次迭代的计算成本通常很低,这使得它们对于非常大的数据集是可行的。
这是一种更期望的速度。误差在每次迭代中以一个常数因子ρ∈(0,1)减小。数学上,当k很大时: ekek+1≈ρ<1 这意味着ek≈c⋅ρk对于某个常数c成立。在对数尺度上,误差呈线性减小。梯度下降应用于强凸和光滑函数时通常实现线性收敛。ρ的值很重要;较小的ρ(例如0.1)意味着比接近1的ρ(例如0.99)快得多。
此处,连续误差的比值趋近于零: limk→∞ekek+1=0 这意味着收敛速度随时间加快。拟牛顿法(如BFGS和L-BFGS,在第二章讨论)在适当条件下常表现出超线性收敛。
这是一种极快的收敛速度。下一步的误差与当前误差的平方成比例: ek2ek+1≈M 对于某个常数M成立。这意味着一旦迭代点足够接近解,解中正确数字的位数在每次迭代中大致翻倍。牛顿法(第二章)是具有二次收敛性算法的经典例子,前提是在解附近满足特定条件。
下图展示了这些不同的速度,绘制了误差(对数尺度)与迭代次数的关系。
比较不同收敛速度下迭代过程中的误差减小情况。请注意,从次线性到线性,特别是到二次收敛,速度有显著提升,这些都显示在对数误差尺度上。
理论收敛速度并非普遍适用;它们很大程度上取决于目标函数f的性质以及算法的具体情况。一些重要性质包括:
梯度的Lipschitz连续性(光滑性): 如果函数f的梯度变化不会任意快,则称其为L-光滑的。正式来说,存在一个常数L>0使得: ∣∣∇f(x)−∇f(y)∣∣≤L∣∣x−y∣∣∀x,y 光滑性是证明许多一阶方法收敛性所需的常见假设,因为它允许我们使用梯度来限制函数的变化。它对于选择合适的步长(学习率)非常重要。
凸性: 如前所述,如果f是凸的,梯度下降(使用合适的步长)保证收敛到全局最小值f(x∗)。速度可能仍是次线性的。
强凸性: 这是一个比简单凸性更强的条件。如果函数f存在一个常数μ>0使得满足以下条件,则称其为μ-强凸的: f(y)≥f(x)+∇f(x)T(y−x)+2μ∣∣y−x∣∣2∀x,y 本质上,该函数有一个二次下界。如果f既是L-光滑又是μ-强凸的,则标准梯度下降以与条件数κ=L/μ相关的速度线性收敛。
非凸性: 对于深度学习中普遍存在的非凸函数,收敛保证要弱得多。我们通常不能保证收敛到全局最小值。分析常侧重于显示收敛到梯度为零的驻点 x∗。如我们所指出的,这些可以是局部最小值、鞍点,甚至是局部最大值。最近的研究表明,许多算法,包括SGD变体,在某些条件下能有效避开鞍点。
尽管理论速度提供了有价值的观点,但它们并未涵盖全部情况。
在我们继续学习后续章节中的更高级算法之前,理解收敛性分析的这些基本思想非常重要。我们将看到二阶方法如何通过使用曲率信息来追求更快的速度,自适应方法如何动态调整学习率,以及大规模和分布式设置中的技术如何在追求高效收敛的同时管理计算和通信成本。分析收敛性质将是一个反复出现的主题,贯穿我们评估每种新优化技术的过程中。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造