Why Momentum Works (2017)
为什么 Momentum 如此有效 (Why Momentum Really Works)
Distill 关于 (About) 奖项 (Prize) 提交 (Submit) ⋆\star⋆ +++ −-− === α\alphaα λ\lambdaλ β\betaβ RRR α=\alpha=α= β=\beta=β= β=0\beta = 0β=0 β=1\beta=1β=1 α=1/λi\alpha = 1/\lambda_iα=1/λi model\text{model}model 0p10 p_10p1 0p¯10 \bar{p}_10p¯1 2β2\sqrt{\beta}2√β λi\lambda_iλi λi=0\lambda_i = 0λi=0 α>1/λi\alpha > 1/\lambda_iα>1/λi max{∣σ1∣,∣σ2∣}>1\max\{|\sigma_1|,|\sigma_2|\} > 1max{∣σ1∣,∣σ2∣}>1 xik−xi∗x_i^k - x_i^*xik−xi∗ ξi\xi_iξi β=(1−αλi)2\beta = (1 - \sqrt{\alpha \lambda_i})^2β=(1−√αλi)2
为什么 Momentum 真的有效
OptimumSolutionStarting Point Step-size α = 0.02 00.0030.006 Momentum β = 0.99 0.000.5000.990
我们通常认为 Momentum 是一种抑制振荡、加速迭代的方法,从而实现更快的收敛。但它还有其他有趣的特性。它允许使用更大范围的步长,并且会产生自身的振荡。这到底是怎么回事呢?
Gabriel Goh UC Davis 2017年4月4日 Citation: Goh, 2017
这里有一个关于 Momentum 的流行故事 [1, 2, 3]:梯度下降就像一个人走下山坡。他沿着最陡峭的路径向下走;他的进展缓慢但稳定。 Momentum 就像一个重球滚下同一个山坡。增加的惯性既可以作为平滑器,又可以作为加速器,抑制振荡并使我们能够穿过狭窄的山谷、小山丘和局部最小值。
这个标准的故事并没有错,但它无法解释 Momentum 的许多重要行为。事实上,如果我们研究正确的模型,可以更准确地理解 Momentum。
一个好的模型是凸二次函数。这个模型足够丰富,可以重现 Momentum 在实际问题中的局部动力学,而且足够简单,可以以闭合形式理解。这种平衡使我们能够有力地理解这个算法。
我们从梯度下降开始。该算法有很多优点,但速度不是其中之一。它很简单——当优化一个光滑函数 fff 时,我们在梯度方向上迈出一小步 wk+1=wk−α∇f(wk).w^{k+1} = w^k-\alpha\nabla f(w^k).wk+1=wk−α∇f(wk)。对于足够小的步长,梯度下降在每次迭代时都会产生单调的改进。它总是收敛,尽管是收敛到局部最小值。并且在一些弱曲率条件下,它甚至可以以指数速度到达那里。
但是,尽管指数下降在理论上很吸引人,但它通常会小得令人恼火。事情通常开始得很好——损失会令人印象深刻地、几乎立即地减少。但是随着迭代的进行,事情开始放慢。你开始产生一种挥之不去的感觉,你没有取得应有的进步。到底出了什么问题?
问题可能是优化器的老对手,病态曲率。简而言之,病态曲率是指 fff 中未正确缩放的区域。这些地形通常被描述为山谷、沟壑、运河和峡谷。迭代要么在山谷之间跳跃,要么以小而谨慎的步骤接近最优值。沿着某些方向的进展停止了。在这些不幸的区域中,梯度下降会出错。
Momentum 提出了以下对梯度下降的调整。我们给梯度下降一个短期记忆:zk+1=βzk+∇f(wk)wk+1=wk−αzk+1 \begin{aligned} z^{k+1}&=\beta z^{k}+\nabla f(w^{k})\\[0.4em] w^{k+1}&=w^{k}-\alpha z^{k+1} \end{aligned} zk+1wk+1=βzk+∇f(wk)=wk−αzk+1 这种改变是无害的,几乎不付出任何代价。当 β=0\beta = 0β=0 时,我们恢复了梯度下降。但是对于 β=0.99\beta = 0.99β=0.99(如果情况真的很糟糕,有时是 0.9990.9990.999),这似乎是我们需要的推动力。我们的迭代重新获得了失去的速度和大胆,以焕发的新能量加速达到最优值。
优化器称这种小小的奇迹为“加速”。
乍一看,这种新算法可能看起来像是一种廉价的 hack 手段。一种简单的技巧,可以绕过梯度下降的更异常的行为——一种用于平滑陡峭峡谷之间振荡的平滑器。但事实是,如果有什么不同的话,那就是梯度下降是一种 hack 手段。首先, Momentum 在许多函数上都提供了高达二次方的加速。 1 这不是一件小事——这类似于你从快速傅里叶变换、快速排序和 Grover 算法中获得的速度提升。当宇宙给你二次方的加速时,你应该开始关注。
但还有更多。 Nesterov [5] 的下限表明,在某种非常狭窄和技术性的意义上, Momentum 是最优的。现在,这并不意味着它是所有情况下所有函数的最佳算法。但它确实满足了一些奇怪而美丽的数学特性,这些特性满足了人类对完美和闭合的渴望。但稍后再详细介绍。现在就这样说—— Momentum 是一种值得载入史册的算法。
第一步:梯度下降
我们首先研究梯度下降在最简单的模型上,即非平凡的凸二次函数 f(w)=12wTAw−bTw,w∈Rn. f(w) = \tfrac{1}{2}w^TAw - b^Tw, \qquad w \in \mathbf{R}^n. f(w)=21wTAw−bTw,w∈Rn。 假设 AAA 是对称且可逆的,那么最优解 w⋆w^{\star}w⋆ 出现在 w⋆=A−1b. w^{\star} = A^{-1}b.w⋆=A−1b。 尽管这个模型很简单,但它足以近似许多函数(将 AAA 视为你最喜欢的曲率模型——Hessian 矩阵、Fisher 信息矩阵 [6] 等),并捕捉病态曲率的所有关键特征。更重要的是,我们可以为该函数上的梯度下降编写一个精确的闭合公式。
它是这样进行的。 由于 ∇f(w)=Aw−b\nabla f(w)=Aw - b∇f(w)=Aw−b, 迭代是 wk+1=wk−α(Awk−b). w^{k+1}=w^{k}- \alpha (Aw^{k} - b). wk+1=wk−α(Awk−b)。 这里有个技巧。 有一个非常自然的空间来查看梯度下降,其中所有维度都独立起作用—— AAA 的特征向量。
Optimum Optimum
每个对称矩阵 AAA 都有一个特征值分解 A=Qdiag(λ1,…,λn)QT,Q=[q1,…,qn], A=Q\ \text{diag}(\lambda_{1},\ldots,\lambda_{n})\ Q^{T},\qquad Q = [q_1,\ldots,q_n], A=Qdiag(λ1,…,λn)QT,Q=[q1,…,qn], 按照惯例,我们将假设 λi\lambda_iλi 的排序是从最小的 λ1\lambda_1λ1 到最大的 λn\lambda_nλn。 如果我们执行一个基变换,xk=QT(wk−w⋆)x^{k} = Q^T(w^{k} - w^\star)xk=QT(wk−w⋆), 迭代分解,变成: xik+1=xik−αλixik=(1−αλi)xik=(1−αλi)k+1xi0 \begin{aligned} x_{i}^{k+1} & =x_{i}^{k}-\alpha \lambda_ix_{i}^{k} \\[0.4em] &= (1-\alpha\lambda_i)x^k_i=(1-\alpha \lambda_i)^{k+1}x^0_i \end{aligned} xik+1=xik−αλixik=(1−αλi)xik=(1−αλi)k+1xi0 移回我们的原始空间 www, 我们可以看到 wk−w⋆=Qxk=∑inxi0(1−αλi)kqi w^k - w^\star = Qx^k=\sum_i^n x^0_i(1-\alpha\lambda_i)^k q_i wk−w⋆=Qxk=i∑nxi0(1−αλi)kqi 在那里,我们以闭合形式进行了梯度下降。
分解误差
上面的等式允许一个简单的解释。 x0x^0x0 的每个元素都是 QQQ 基中初始猜测中误差的分量。 有 nnn 个这样的误差, 并且每个误差都遵循其自身的、单独的到达最小值的路径,并以 1−αλi1-\alpha\lambda_i1−αλi 的复合率呈指数下降。 该数字越接近 111, 收敛速度就越慢。
对于大多数步长,具有最大特征值的特征向量收敛速度最快。 这会在前几次迭代中触发进度的爆发, 然后随着较小的特征向量的斗争的揭示,事情会放慢速度。 通过将每个特征空间误差对损失的贡献写入 f(wk)−f(w⋆)=∑(1−αλi)2kλi[xi0]2 f(w^{k})-f(w^{\star})=\sum(1-\alpha\lambda_{i})^{2k}\lambda_{i}[x_{i}^{0}]^2 f(wk)−f(w⋆)=∑(1−αλi)2kλi[xi0]2 我们可以可视化每个误差分量对损失的贡献。
优化可以看作是几个组成问题的组合,此处显示为 1 2 3,特征值分别为 λ1=0.01\lambda_1=0.01λ1=0.01, λ2=0.1\lambda_2=0.1λ2=0.1, 和 λ3=1\lambda_3=1λ3=1。
Step-size Optimal Step-size 012 020406080100120140Eigenvalue 123f(wk) - f(w*)At the initialpoint, the error ineach componentis equal.At the optimum, the rates of convergence of the largest and smallest eigenvalues equalize.
选择步长
以上分析立即为我们如何设置步长 α\alphaα 提供了指导。 为了收敛, 每个 ∣1−αλi∣|1-\alpha \lambda_i|∣1−αλi∣ 必须严格小于 1。 因此,所有可行的步长都落在区间 0<αλi<2.0<\alpha\lambda_i<2.0<αλi<2 中。 整体收敛速度由最慢的误差分量决定, 该分量必须是 λ1\lambda_1λ1 或 λn\lambda_nλn: rate(α)=maxi∣1−αλi∣=max{∣1−αλ1∣,∣1−αλn∣} \begin{aligned}\text{rate}(\alpha) & ~=~ \max_{i}\left|1-\alpha\lambda_{i}\right|\\[0.9em] & ~=~ \max\left\{|1-\alpha\lambda_{1}|,~ |1-\alpha\lambda_{n}|\right\} \end{aligned} rate(α)=imax∣1−αλi∣=max{∣1−αλ1∣,∣1−αλn∣}
当 λ1\lambda_1λ1 和 λn\lambda_nλn 的速率相同时,此整体速率最小化——这反映了我们在上一节中的非正式观察,即最佳步长会导致第一个和最后一个特征向量以相同的速率收敛。 如果我们完成这项工作,我们将得到: optimalα=argminαrate(α)=2λ1+λnoptimalrate=minαrate(α)=λn/λ1−1λn/λ1+1 \begin{aligned} \text{optimal }\alpha ~=~{\mathop{\text{argmin}}\limits_\alpha} ~\text{rate}(\alpha) & ~=~\frac{2}{\lambda_{1}+\lambda_{n}}\\[1.4em] \text{optimal rate} ~=~{\min_\alpha} ~\text{rate}(\alpha) & ~=~\frac{\lambda_{n}/\lambda_{1}-1}{\lambda_{n}/\lambda_{1}+1} \end{aligned} optimal α=αargminrate(α)optimal rate=αminrate(α)=λ1+λn2=λn/λ1+1λn/λ1−1
请注意比率 λn/λ1\lambda_n/\lambda_1λn/λ1 决定了问题的收敛速度。 实际上,这个比率出现的频率足以让我们给它起一个名称和一个符号——条件数。 conditionnumber:=κ:=λnλ1 \text{condition number} := \kappa :=\frac{\lambda_n}{\lambda_1} condition number:=κ:=λ1λn 条件数意味着很多事情。 它是衡量矩阵有多接近奇异矩阵的指标。 它是衡量 A−1bA^{-1}bA−1b 对 bbb 的扰动有多大的鲁棒性的指标。 在这种情况下,条件数使我们能够衡量梯度下降的性能有多差。 κ=1\kappa = 1κ=1 的比率是理想的,只需一步即可收敛(当然,该函数是微不足道的)。 不幸的是,比率越大,梯度下降的速度就越慢。 因此,条件数是病态曲率的直接度量。
示例:多项式回归
以上分析揭示了一个洞察力:并非所有误差都是相同的。 实际上, 有不同种类的误差, 准确地说是 nnn 个,每个误差对应于 AAA 的特征向量。 梯度下降更擅长纠正某些种类的误差,而不是其他种类的误差。 但是,AAA 的特征向量是什么意思? 令人惊讶的是,在许多应用程序中,它们允许非常具体的解释。
让我们看看这在多项式回归中是如何发挥作用的。 给定 1D 数据 ξi\xi_iξi,我们的问题是将模型 model(ξ)=w1p1(ξ)+⋯+wnpn(ξ)pi=ξ↦ξi−1 \text{model}(\xi)=w_{1}p_{1}(\xi)+\cdots+w_{n}p_{n}(\xi)\qquad p_{i}=\xi\mapsto\xi^{i-1} model(ξ)=w1p1(ξ)+⋯+wnpn(ξ)pi=ξ↦ξi−1 拟合到我们的观测值 did_idi。 尽管此模型在输入 ξ\xiξ 中是非线性的,但在权重中是线性的,因此我们可以将模型写成单项式的线性组合,例如:
0p10 p_1-2.00p1 +++ 0p10 p_1-2.00p2 +++ 0p10 p_12.00p3 +++ 0p10 p_12.00p4 +++ 0p10 p_12.00p5 +++ 0p10 p_1-2.00p6 === model\text{model}model 0+0+0+0+0+0=0 scrub values
由于线性,我们可以使用模型失配 minimize w12∑i(model(ξi)−di)2=12∥Zw−d∥2 \text{minimize}w \qquad\tfrac{1}{2}\sum_i (\text{model}(\xi{i})-d_{i})^{2} ~~=~~ \tfrac{1}{2}|Zw - d|^2 minimizew21i∑(model(ξi)−di)2=21∥Zw−d∥2 上的线性回归将此模型拟合到我们的数据 ξi\xi_iξi, 其中 Z=(1ξ1ξ12…ξ1n−11ξ2ξ22…ξ2n−1⋮⋮⋮⋱⋮1ξmξm2…ξmn−1). Z=\left(\begin{array}{ccccc} 1 & \xi_{1} & \xi_{1}^{2} & \ldots & \xi_{1}^{n-1}\\ 1 & \xi_{2} & \xi_{2}^{2} & \ldots & \xi_{2}^{n-1}\\ \vdots & \vdots & \vdots & \ddots & \vdots\\ 1 & \xi_{m} & \xi_{m}^{2} & \ldots & \xi_{m}^{n-1} \end{array}\right). Z=⎝⎜⎜⎛11⋮1ξ1ξ2⋮ξmξ12ξ22⋮ξm2……⋱…ξ1n−1ξ2n−1⋮ξmn−1⎠⎟⎟⎞.
如我们所知,当我们从 QQQ(ZTZZ^T ZTZ 的特征向量)的空间中查看迭代时,收敛路径就会变得清晰。 因此,让我们以 QQQ 为基础来重塑我们的回归问题。 首先,我们通过将 www 旋转到 QwQwQw 中来执行基变换,并将我们的特征图 ppp 反向旋转到特征空间 p¯\bar{p}p¯ 中。 现在,我们可以将相同的回归概念化为另一种多项式基上的回归,模型为 model(ξ)=x1p¯1(ξ)+⋯+xnp¯n(ξ)p¯i=∑qijpj. \text{model}(\xi)~=~x_{1}\bar{p}{1}(\xi)~+~\cdots~+~x{n}\bar{p}{n}(\xi)\qquad \bar{p}{i}=\sum q_{ij}p_j. model(ξ)=x1p¯1(ξ)+⋯+xnp¯n(ξ)p¯i=∑qijpj。 此模型与旧模型相同。 但是,这些新特征 p¯\bar{p}p¯(我称之为“特征向量”)和权重具有令人愉悦的特性,即每个坐标都独立于其他坐标起作用。 现在,我们的优化问题实际上分解为 nnn 个小的 1D 优化问题。 并且可以贪婪地、独立地、一次一个地按任何顺序优化每个坐标,以产生最终的、全局的、最优的坐标。 特征向量也更具信息性:
0p¯10 \bar{p}_10.458p¯1 +++ 0p¯10 \bar{p}_10.903p¯2 +++ 0p¯10 \bar{p}_16.13p¯3 +++ 0p¯10 \bar{p}_112.4p¯4 +++ 0p¯10 \bar{p}_1128p¯5 +++ 0p¯10 \bar{p}_1261p¯6 === model\text{model}model 0+0+0+0+0+0=0
数据分为 2 个群集。 前 2 个特征向量捕获群集之间的变化。 接下来是群集内的平滑变化、群集内的峰值,最后是在相邻点上差异很大的锯齿状多项式。 drag points to fit data
以上图表中的观察结果可以通过数学方式证明。 从统计的角度来看,我们希望该模型在某种意义上对噪声具有鲁棒性。 如果对观测值的最轻微扰动会显着改变整个模型,那么我们的模型就不可能具有任何意义。 特征向量(数据的主成分)为我们提供了对特征进行排序所需的确切分解,按其对 did_idi 的扰动的敏感性进行排序。 最稳健的分量出现在前面(具有最大的特征值),最敏感的分量出现在后面(具有最小的特征值)。
通过一个相当方便的巧合,这种鲁棒性度量也是一个特征空间容易收敛的度量。 因此,“病态方向”——收敛速度最慢的特征空间——也是对噪声最敏感的方向! 因此,从像 000 这样的简单初始点开始(通过严重滥用语言,让我们将此视为先验),我们跟踪迭代,直到达到所需的复杂程度。 让我们看看这在梯度下降中是如何实现的。
0p¯10 \bar{p}_1-0.389p¯1 +++ 0p¯10 \bar{p}_1-2.47p¯2 +++ 0p¯10 \bar{p}_1-0.481p¯3 +++ 0p¯10 \bar{p}_1-0.540p¯4 +++ 0p¯10 \bar{p}_1-0.0128p¯5 +++ 0p¯10 \bar{p}_10.0543p¯6 === model\text{model}model 0+0+0+0+0+0=0 Eigenvalue 160152654,53677,6521,329,083Step k = 49 When an eigenspace has converged to three significant digits, the bar greys out. Drag the observations to change fit.We begin at x=w=0
可以通过启发式的提前停止来利用这种效应:通过提前停止优化,通常可以获得更好的泛化结果。 实际上,提前停止的效果与更常规的正则化方法(例如 Tikhonov 回归)非常相似。 两种方法都尝试直接抑制最小特征值的分量,尽管它们采用了不同的频谱衰减方法。2 但是提前停止具有明显的优势。 一旦选择了步长,就没有正则化参数可以摆弄。 实际上,在单个优化的过程中,我们可以使用整个模型系列,从欠拟合到过拟合。 似乎这种礼物并不是以价格来换取的。 确实是一顿美丽的免费午餐 [7]。
Momentum 的动力学
让我们将注意力转回到 Momentum。 回想一下, Momentum 更新是 zk+1=βzk+∇f(wk)wk+1=wk−αzk+1. \begin{aligned} z^{k+1}&=\beta z^{k}+\nabla f(w^{k})\\[0.4em] w^{k+1}&=w^{k}-\alpha z^{k+1}. \end{aligned} zk+1wk+1=βzk+∇f(wk)=wk−αzk+1。 由于 ∇f(wk)=Awk−b\nabla f(w^k) = Aw^k - b∇f(wk)=Awk−b, 二次函数上的更新是 zk+1=βzk+(Awk−b)wk+1=wk−αzk+1. \begin{aligned} z^{k+1}&=\beta z^{k}+ (Aw^{k}-b)\\[0.4em] w^{k+1}&=w^{k}-\alpha z^{k+1}. \end{aligned} zk+1wk+1=βzk+(Awk−b)=wk−αzk+1。 按照 [8], 我们以基变换 xk=Q(wk−w⋆) x^{k} = Q(w^{k} - w^\star)xk=Q(wk−w⋆) 和 yk=Qzk y^{k} = Qz^{k}yk=Qzk 执行相同的操作, 以产生更新规则 yik+1=βyik+λixikxik+1=xik−αyik+1. \begin{aligned} y_{i}^{k+1}&=\beta y_{i}^{k}+\lambda_{i}x_{i}^{k}\\[0.4em] x_{i}^{k+1}&=x_{i}^{k}-\alpha y_{i}^{k+1}. \end{aligned} yik+1xik+1=βyik+λixik=xik−αyik+1。 其中每个分量都独立于其他分量起作用(尽管 xikx^k_ixik 和 yiky^k_iyik 已耦合)。 这使我们可以将迭代重写为 3 (yikxik)=Rk(yi0xi0)R=(βλi−αβ1−αλi). \left(\!\!\begin{array}{c} y_{i}^{k}\\ x_{i}^{k} \end{array}\!\!\right)=R^k\left(\!\!\begin{array}{c} y_{i}^{0}\\ x_{i}^{0} \end{array}\!\!\right) \qquad R = \left(\!\!\begin{array}{cc} \beta & \lambda_{i}\\ -\alpha\beta & 1-\alpha\lambda_{i} \end{array}\!\!\right). (yikxik)=Rk(yi0xi0)R=(β−αβλi1−αλi)。 有很多方法可以将矩阵提升到 kthk^{th}kth 次方。 但是对于 2×22 \times 22×2 的情况,有一个优雅且鲜为人知的公式 [9],该公式以 RRR 的特征值 σ1\sigma_1σ1 和 σ2\sigma_2σ2 表示。 Rk={σ1kR1−σ2kR2σ1≠σ2σ1k(kR/σ1−(k−1)I)σ1=σ2,Rj=R−σjIσ1−σ2 \color{#AAA}{\color{black}{R^{k}}=\begin{cases} \color{black}{\sigma_{1}^{k}}R_{1}-\color{black}{\sigma_{2}^{k}}R_{2} & \sigma_{1}\neq\sigma_{2}\\ \sigma_{1}^{k}(kR/\sigma_1-(k-1)I) & \sigma_{1}=\sigma_{2} \end{cases},\qquad R_{j}=\frac{R-\sigma_{j}I}{\sigma_{1}-\sigma_{2}}} Rk={σ1kR1−σ2kR2σ1k(kR/σ1−(k−1)I)σ1≠σ2σ1=σ2,Rj=σ1−σ2R−σjI 这个公式相当复杂,但这里的要点是,它所扮演的角色与梯度下降中各个收敛率 1−αλi1-\alpha\lambda_i1−αλi 所扮演的角色完全相同。 但是,我们有两个耦合的级数,而不是一个几何级数,这两个级数可能具有实数值或复数值。 因此,收敛速度是两种速度中最慢的一种 max{∣σ1∣,∣σ2∣}\max\{|\sigma_{1}|,|\sigma_{2}|\}max{∣σ1∣,∣σ2∣} 4。 通过将其绘制出来,我们看到参数空间的不同区域揭示了丰富的收敛行为分类 [10]:
Convergence Rate A plot of max{∣σ1∣,∣σ2∣}\max\{|\sigma_1|, |\sigma_2|\}max{∣σ1∣,∣σ2∣} reveals distinct regions, each with its own style of convergence.
对于 α\alphaα 和 β\betaβ 的哪些值, Momentum 会收敛? 由于我们需要 σ1\sigma_1σ1 和 σ2\sigma_2σ2 都收敛, 因此我们的收敛标准现在是 max{∣σ1∣,∣σ2∣}<1\max\{|\sigma_{1}|,|\sigma_{2}|\} < 1max{∣σ1∣,∣σ2∣}<1。 可用步长的范围为 5 0<αλi<2+2βfor0≤β<10<\alpha\lambda_{i}<2+2\beta \qquad \text{for} \qquad 0 \leq \beta < 10<αλi<2+2βfor0≤β<1 当 β=0\beta = 0β=0 时,我们恢复了梯度下降的先前结果。 但是请注意我们立即获得的收益。 Momentum 允许我们在发散之前将步长提高 2 倍。
临界阻尼系数
但是,当我们找到 α\alphaα 和 β\betaβ 的最佳点时,真正的魔力就会发生。 让我们尝试首先优化 β\betaβ。
当 α\alphaα 很小 [11] 时, Momentum 允许一个有趣的物理解释:它是阻尼谐振子的离散化。 考虑一个在离散时间内运行的物理模拟(例如视频游戏)。
yik+1y_{i}^{k+1}yik+1 === +++ λixik\lambda_{i}x_{i}^{k}λixik 并受到外力场的扰动 我们可以将 −yik-y_i^k−yik 视为 速度,βyik\beta y_{i}^{k}βyik 在每一步都得到抑制 xik+1x_i^{k+1}xik+1 === xik−αyik+1x_i^k - \alpha y_i^{k+1}xik−αyik+1 xxx 是我们粒子的 位置,每一步都以小量沿速度 yik+1y^{k+1}_iyik+1 的方向移动。
我们可以将此等式分解开,以查看每个分量如何影响系统的动力学。 在这里,对于 150150150 次迭代,我们在相图中将粒子的速度(水平轴)相对于其位置(垂直轴)绘制出来。
可以将此系统最好地想象成悬挂在弹簧上的砝码。 我们将砝码下拉一个单位,并研究它在恢复平衡时所遵循的路径。 在类比中,弹簧是我们外力 λixik\lambda_ix^k_iλixik 的来源,平衡是位置 xikx^k_ixik 和速度 yiky^k_iyik 都为 0 的状态。 β\betaβ 的选择至关重要地影响了返回平衡的速度。
β=(1−αλi)2\beta = (1 - \sqrt{\alpha \lambda_i})^2β=(1−√αλi)2 的临界值使我们(在特征空间 iii 中)的收敛速度为 1−αλi.1 - \sqrt{\alpha\lambda_i}.1−√αλi。 比梯度下降 1−αλi1-\alpha\lambda_i1−αλi 提高了平方根! 唉,这仅适用于第 ithi^{th}ith 个特征空间中的误差,并且 α\alphaα 是固定的。
最优参数
为了获得全局收敛速度,我们必须同时优化 α\alphaα 和 β\betaβ。 这是一个更为复杂的事情,6 但它们的计算结果为 α=(2λ1+λn)2β=(λn−λ1λn+λ1)2 \alpha = \left(\frac{2}{\sqrt{\lambda_{1}}+\sqrt{\lambda_{n}}}\right)^{2} \quad \beta = \left(\frac{\sqrt{\lambda_{n}}-\sqrt{\lambda_{1}}}{\sqrt{\lambda_{n}}+\sqrt{\lambda_{1}}}\right)^{2} α=(√λ1+√λn2)2β=(√λn+√λ1√λn−√λ1)2 将此代入收敛速度, 您会得到
κ−1κ+1\frac{\sqrt{\kappa}-1}{\sqrt{\kappa}+1}√κ+1√κ−1 收敛速度, Momentum κ−1κ+1 \frac{\kappa-1}{\kappa+1}κ+1κ−1 收敛速度, 梯度下降