Skip to content

算法Algorithm

有界延迟梯度下降

Bounded-delay gradient descent · Coherent stale-gradient descent

对完整旧版本的精确梯度,用带权更新历史证明任意有界延迟下的末点几何界,并核验固定延迟稳定边界、版本不变量与实际费用。

形式陈述 ​

沿用梯度下降收敛定理的欧氏目标:f:Rd→R 全局可微、μ-强凸、梯度全局 L-Lipschitz,0<μ≤L。强凸下界使 f 强制增长,连续性保证极小点存在,强凸性保证其唯一;记为 x∗,f∗=f(x∗)。本页所有梯度和算术精确。

输入初值 x0、整数延迟上界 τ≥0、常步长 α>0、提交预算 T≥0,以及实际读取的版本号 rk。第 k 次提交执行

(1)max(0,k−τ)≤rk≤k,dk=k−rk,xk+1=xk−α∇f(xrk),0≤k<T.

k 数的是已经原子提交的更新,不是秒数、设备数或通信轮数。一次查询必须读取同一个版本的完整向量;延迟可随轮变化,甚至由对手选择。不同结果可以乱序完成,但每个被接受的结果都加到当前 xk 上,不能把旧的 xrk−α∇f(xrk) 覆盖回来。启动阶段不读取负版本,故必须有 dk≤min(k,τ)。

一个带初值系数一的充分保证 ​

若

(2)0<α≤12L(τ+1),q=1−αμ,

则对每条满足式(1)的版本历史、每个 k≥0,

(3)Δk:=f(xk)−f∗≤qkΔ0,‖xk−x∗‖2≤2qkΔ0μ.

这是确定性的末点界。它不要求目标值逐轮下降,也不是期望界或最锐安全步长。以下完整证明给出本页自行推导的保守常数,不能将它署为参考论文中的某个定理。

返回 xT、提交/读取版本日志、声明的 μ,L,τ,α、实际整梯度查询数及状态。应区分“版本无效”“数值非有限”“参数未通过本定理条件”“预算完成且具有先验界”“当前点残差已认证”。参数越界不等于已经发散,参数通过也不免除对全局曲率与完整读取的核实。

直觉

旧梯度在它的查询点完全正确,却可能已经不是当前点的下降方向。误差

ek=∇f(xrk)−∇f(xk)

由两点之间尚未计入的更新产生。因此应记录最近 τ 个实际位移;每个新位移入队后,其权重逐轮下降,直到离开窗口。支付延迟误差的不是“它平均为零”,而是这份可以移位求差的历史能量。

读旧版本、更新当前版本、收缩带权历史

图中取后文算例的 τ=2。当前提交5读取版本4;此前提交3读取版本3,紧接着提交4反而读取版本2,显示读取版本不必单调。灰色线连的是已提交状态,蓝色线传递旧版本梯度,绿色线显示实际位移入历史窗口。红色说明标出另一种会丢失更新的写入语义,不属于式(1)。

SGD的方向要求相对于当前历史条件无偏;本页旧整梯度通常相对于当前点有偏。SAGA则用当前查询和旧表作校正,恢复条件无偏。三者可以都“保存过去的信息”,但证明接口不同。

例子与边界

带权历史的完整收缩证明 ​

先设 τ≥1。写 gk=∇f(xk)、hk=∇f(xrk),真实位移 sj=xj+1−xj(j≥0);仅为历史求和规定 sj=0(j<0),这不是增加负时间查询。由下降引理及极化恒等式,sk=−αhk 给出

(4)Δk+1−Δk≤−α⟨gk,hk⟩+Lα22‖hk‖2=−α2‖gk‖2−(12α−L2)‖sk‖2+α2‖gk−hk‖2.

旧梯度与当前梯度之差沿真实读取间隔展开。由Cauchy–Schwarz,

(5)‖gk−hk‖2≤L2‖∑j=rkk−1sj‖2≤L2dk∑j=rkk−1‖sj‖2≤L2τ∑i=1τ‖sk−i‖2.

空和取零。强凸一阶下界对比较点取最小值,给 f∗≥f(xk)−‖gk‖2/(2μ),即 ‖gk‖2≥2μΔk。定义

(6)c=αL2τ,Hk=c∑i=1τ(τ+1−i)‖sk−i‖2,Ek=Δk+Hk.

移动窗口的恒等式是

(7)Hk+1−Hk=cτ‖sk‖2−c∑i=1τ‖sk−i‖2.

式(4)–(7)相加,得

(8)Ek+1−Ek≤−αμΔk−c2∑i=1τ‖sk−i‖2−B‖sk‖2,B=12α−L2−cτ.

核对两个系数,不能只丢掉 Hk 就宣称它也收缩。令 a=αL,由式(2),

a+2a2τ2≤12(τ+1)+τ22(τ+1)2≤1,

故 B≥0。另一方面,Hk≤cτ∑i‖sk−i‖2,且 αμ≤1/[2(τ+1)]≤1/(2τ),所以

c2∑i‖sk−i‖2≥Hk2τ≥αμHk.

代回式(8)便得 Ek+1≤qEk。启动时 H0=0,故 E0=Δ0;再用 Δk≤Ek,即证式(3)及其初值系数一。点误差界来自强凸二次增长。

τ=0 时另证,避免除以零。此时 rk=k、α≤1/(2L),普通下降估计给

Δk+1≤Δk−α(1−αL/2)‖gk‖2≤(1−αμ)Δk.

零延迟的更锐 1/L 结论仍见原收敛页。本页选同一保守公式是为了覆盖任意允许的延迟历史。

六次提交:完整版本真的改变了轨迹 ​

取 f(x)=(x12+4x22)/2、x0=(1,1),则 μ=1,L=4。设 τ=2,α=1/24,依次使用延迟 (0,1,2,0,2,1),即读取版本 (0,0,0,3,2,4)。精确轨迹为

x1=(23/24,5/6),x2=(11/12,2/3),x3=(7/8,1/2),x4=(161/192,5/12),x5=(461/576,11/36),x6=(3527/4608,17/72).

例如提交4读取 x2,故 s4=−(1/24)(11/12,8/3)=(−11/288,−1/9);更新从 x4 开始,而非从 x2 开始。终点有

Δ6=1717470542467328,H6=916272654208,E6=20711934718592,q6Δ0=740179445382205952,q=2324.

能量与目标差是不同的数;此例的实际误差远小于最坏历史上界,并不改变定理。

固定标量延迟:精确稳定区间与真正反例 ​

令 f(x)=λx2/2,λ>0,a=αλ。固定延迟的线性递推

(9)xk+1=xk−axk−τ,p(z)=zτ+1−zτ+a

对所有初始历史都渐近稳定,当且仅当

(10)0<a<2sin⁡π4τ+2.

这条精确边界只属于固定延迟标量模型,不是任意非线性目标、变延迟的式(2)。其证明如下。充分小的 a>0 时,近1的根为 1−a+O(a2),其余 τ 个根近0,全部在单位圆内。令圆上的根为 z=eiθ,0<θ<2π。由 a=zτ(1−z),正实数条件为

(τ+1/2)θ−π/2∈2πZ,a=2sin⁡(θ/2).

第一次交圆发生在 θ=π/(2τ+1) 或其共轭,得到式(10)的上端点。圆上根均为单根,因为 p′(z)=zτ−1[(τ+1)z−τ] 不会在那里为零。隐式求导还给

Reaz′(a)z=(2τ+1)(1−cos⁡θ)|τ−(τ+1)eiθ|2>0.

因此所有交圆都向外,不能越过端点后重新全部稳定。端点有不衰减模式;a=0 有根1,a<0 在1以上有实根。τ=0 直接由 z=1−a 得到相同公式。

特别地,τ=1 时根为 (1±1−4a)/2。当 0<a<1/4,两实根在 (0,1);a=1/4 为重根 1/2,其 k(1/2)k 模式也衰减;a>1/4 时共轭根模为 a。所以稳定区间恰为 0<a<1。

取合法启动 d0=0,之后 dk=1,x0=1。a=3/2 在零延迟时每步乘 −1/2,却在一阶延迟时具有模 3/2>1 的两个根,真实序列开始为

1,−1/2,−2,−5/4,7/4,29/8,1,−71/16,….

非零初始状态激发至少一个不稳定模式,故不可能趋于0。这是真正的不稳定反例,不只是没有通过某个充分条件。边界 a=1 则产生周期 1,0,−1,−1,0,1,…:在当前 x2=−1 时,版本1的旧梯度恰为零,当前目标差仍为 1/2。旧梯度为零不能认证当前点。

将 a=3/4 从 τ=1 移到 τ=2 也会改变结论:前者稳定,后者超过 2sin⁡(π/10)=(5−1)/2。此时 p(z)=z3−z2+3/4 在 (−1,0) 有唯一实根;对 z≥0,最小值 p(2/3)=3/4−4/27>0,故另外两根必为共轭对。负实根的模小于一,而已越过式(10)的首次外向交圆边界,故共轭对不稳定。合法夹紧启动的 x1=1/4 不等于这个负实根乘 x0,所以它也激发不稳定共轭模式。为 λ=1,τ=2 改取 α=1/6,则重新满足任意变延迟的充分保证。

即使满足式(2),目标仍可短暂回升:f(x)=x2/2、x0=1、τ=2、α=1/6、dk=min(k,2) 时,x13=−7/7776、x14=−1/432,所以 f(x14)>f(x13)。此时带权能量继续收缩,不能删去历史项改说目标单调。

哪些工程变化需要另一个定理 ​

坐标来自不同版本时不存在式(5)的单个 rk;覆盖当前值会改变式(1);梯度压缩、舍入误差、噪声、客户端局部目标或局部多步也会产生本页没有控制的项。延迟无界时有限窗口恒等式失效。全局 μ,L 也不能由若干采样点的曲率估计替代。这里没有把“异步”当成免检标签,更没有声称任意调度都带来加速。

推论与应用

预算与当前点停止证书 ​

已知合法上界 B0≥Δ0,若 B0≤ε,无需更新;若 B0>ε>0,足够的提交数为

(11)T=⌈log⁡(B0/ε)−log⁡(1−αμ)⌉.

不知道 f∗ 时不能偷偷计算 Δ0。一个合法替代是另查初始当前梯度,取 B0=‖∇f(x0)‖2/(2μ);这次查询必须计费,若首个梯度完整缓存且可复用则只计一次。运行后新查一次当前 xT 的精确梯度,能认证

f(xT)−f∗≤‖∇f(xT)‖22μ.

这是新的当前点证书;旧梯度日志不自动提供它。由于式(3)对所有整数 k 路径式成立,在同一有效模型内选择某个已提交时刻不会引入统计多次检验问题;但不能据此把有噪声验证也升级为任意停止保证。

保留 μ=1,L=4,B0=5/2,ε=1/100,每次取式(2)的最大充分步长:τ=1,2,5 分别得到 α=1/16,1/24,1/48,q=15/16,23/24,47/48,式(11)预算为86、130、263次提交。延迟上界从2变5后,旧步长和130次预算都不再由本计算认证;减小步长修复条件,还须重算预算。

版本不变量与完整费用 ​

简单回放器保存最近 τ+1 个带版本号的完整向量,空间 O((τ+1)d)。每次提交先核对结果的版本号、完整快照与年龄,再把 −αhk 加到当前值,产生新版本,最后淘汰过旧快照。历史证书另存最近 τ 个位移即可;移位的权重属于证明,不改变更新。

T次提交在本页回放模型中需要 T 次整梯度求值及 O(Td) 向量运算;本页六步示例重复读取同一点时仍逐次查询,不暗算免费缓存。这里 O(Td) 仅指更新本身;教学读数器逐轮重算窗口能量,另需 O(Tτd) 历史诊断运算。真实异步系统若还计算了过旧而被拒绝或最终未用的梯度,这些查询也须计入实际总费用,不能只报被接受的 T 次。初始证书与最终当前梯度验证按实际复用另加。有限和整梯度需要遍历全部分量,不能计成一条SGD样本。保留全部教学日志另需 O(Td) 空间;它不是上述滚动回放器的必需状态。真实并行执行还须另报在途梯度、快照复制、通信量与墙钟时间。仅给 τ 不能推出并行加速比。

完整练习与答案要求从版本日志重算精确轨迹、历史能量和查询账,构造错误覆盖写入及过时停止,再改变延迟上界重配预算。有理数读数器只依赖Python标准库,有限检查支持复算,不替代上面的全局证明。

参考资料
关系图谱11 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系