Skip to content

算法Algorithm

随机方差缩减梯度法

Stochastic variance reduced gradient · SVRG · 随机方差缩减梯度

为可重复访问的有限和使用快照控制变量,证明随机内迭代输出的几何收敛,并逐项核算梯度调用和存储代价。

形式陈述 ​

固定有限和目标

f(x)=1n∑i=1nfi(x),x∈Rd, n≥1.

SVRG要求可按索引 i 在任意查询点精确获得 ∇fi(x),并能重新访问同一个分量。仅能获得一个新鲜样本且随后丢弃的流式oracle,不自动提供这种权限。每次分量梯度求值计一次查询;整梯度则要 n 次。

第 s 个阶段以快照 x~s−1 开始。下面固定采用原始分析中的随机内迭代输出方式:

  1. 求 g~=n−1∑i∇fi(x~s−1),设置 x0=x~s−1
  2. 对 t=0,…,m−1,独立于阶段历史均匀抽 It∈{1,…,n},计算
vt=∇fIt(xt)−∇fIt(x~s−1)+g~,xt+1=xt−ηvt
  1. 独立均匀抽 Js∈{0,…,m−1},令 x~s=xJs。运行预定 S 个阶段后输出 x~S

m,S≥1、η>0 与初始快照 x~0 在运行前固定。两个分量梯度必须使用同一个 It,并冻结快照和其整梯度直到本阶段结束。均匀输出不包括 xm;可以预先抽 Js,运行中保存对应点,无需保存整条轨迹。

同一个索引使差分真的变小 ​

给定阶段历史,当前点和快照已经确定,因此

(1)E[vt∣Ft]=∇f(xt).

它满足SGD的条件无偏接口。把 ∇fIt(x~) 当作控制量,其精确均值 g~ 已经算出,这正是控制变量在向量梯度中的应用。

如果 xt=x~,两个同索引分量逐点抵消,vt 恰好等于整梯度,方差为零;若两项分别抽独立索引,就失去了这条抵消性质。独立索引版本仍可能无偏,但不是这里的低方差估计器。

一阶段的可用收缩因子 ​

假定每个 fi 都凸、在全空间有 L-Lipschitz梯度,L>0,平均函数 f 为$\mu$-强凸,μ>0。令 x∗ 为其唯一极小点,Δ(x)=f(x)−f(x∗)。若 0<η<1/(2L),并选择 m 使

(2)ρ=1μη(1−2Lη)m+2Lη1−2Lη<1,

则上述随机输出满足

(3)EΔ(x~S)≤ρSΔ(x~0).

例如 η=1/(10L),m≥⌈50L/μ⌉ 给 ρ≤1/2。条件只要求平均函数强凸,各分量可以仅凸。

直觉

普通SGD在最优点的分量梯度仍可能互相抵消:平均为零,每一项却不为零,所以随机抽一项仍会抖动。SVRG把快照时看到的那部分分量差异减掉,再补回准确的平均方向。随着当前点和快照都靠近解,剩余差分越来越小,噪声不再保持固定尺度。

快照与同索引双点查询

这项改善需要先支付整梯度费用。阶段太短时,频繁刷新快照可能比直接SGD更贵;阶段太长时,当前点与快照相距较远,差分噪声可能增大。式(2)给出一个可以核验的折中,而不是把“每步只抽一项”当成全部成本。

例子与边界

从光滑分量到方差随目标差下降 ​

对每个分量定义

qi(x)=fi(x)−fi(x∗)−⟨∇fi(x∗),x−x∗⟩.

凸性给 qi≥0、qi(x∗)=0。对 qi 使用下降引理,在 x−∇qi(x)/L 处仍非负,故

‖∇fi(x)−∇fi(x∗)‖2≤2Lqi(x).

对 i 平均时,∇f(x∗)=0 使线性项消失,于是

(4)1n∑i‖∇fi(x)−∇fi(x∗)‖2≤2LΔ(x).

写 ai(x)=∇fi(x)−∇fi(x∗)。SVRG方向可写为 aI(x)−[aI(x~)−EaI(x~)]。平方范数的两项上界及中心化不增二阶矩给

(5)E[‖vt‖2∣Ft]≤4L[Δ(xt)+Δ(x~)].

这是关键新信息:右侧随两点接近解而消失。它比一个永远不变的 G2 噪声预算更适合有限和。

再展开到解的距离,利用式(1)、凸性及式(5):

E[‖xt+1−x∗‖2∣Ft]≤‖xt−x∗‖2−2η(1−2Lη)Δ(xt)+4Lη2Δ(x~).

从0加到 m−1,丢掉末点的非负平方距离。由于随机输出的条件平均目标差等于这 m 项的平均,再用强凸给 ‖x~−x∗‖2≤2Δ(x~)/μ,得到

2η(1−2Lη)mEΔ(x~s)≤[2/μ+4Lmη2]EΔ(x~s−1).

除以左侧系数就是式(2),跨阶段递推得到式(3)。这里的平均目标差来自随机输出,不是声称最后一个内迭代满足同一证明。

两分量模型的完整调用账 ​

取 f1(x)=(x−1)2/2、f2(x)=3(x+1)2/2。平均为 f(x)=x2+x+1,最优点 x∗=−1/2,Δ(x)=(x+1/2)2,可取 L=3,μ=2。

快照为0,两个快照梯度为 (−1,3),整梯度为1。于是校正方向在分量1和2下分别为 x+1、3x+1。取 η=1/12,m=2,首步无论抽谁都得到 x1=−1/12;若第二步抽分量2,则 v1=3/4,x2=−7/48。

在 x1,两种校正方向为 11/12,3/4,均值 5/6、方差 1/144。普通分量梯度却是 −13/12,11/4,均值仍为 5/6,方差 529/144。同一均值并不意味着同一噪声。

随机输出从 x0=0,x1=−1/12 中等概率选择,其期望目标差为

12(1/4+25/144)=61/288.

基线实现支付2次快照梯度及4次内步梯度,共6次查询;这个演示用很短阶段,式(2)给 ρ=7>1,所以它不满足几何收缩参数条件。若要应用式(3),可改用 η=1/30,m=75,此时 ρ=1/2,每阶段152次查询。算法能运行与这组定理常数合格是两个可分别检查的问题。

哪些改变需要重做分析 ​

若把精确快照梯度换成 g~+e,本阶段条件均值变为 ∇f(xt)+e。增加内步不会消除同一个冻结误差。比如 n=1,f(x)=x2/2 时,方向就是 x+e,固定步长稳定迭代趋向 −e,原目标差为 e2/2。

若两个分量不凸,式(4)所用的 qi≥0 可失效,即使平均函数仍强凸,也不能直接使用上述证明。若输出改成 xm,或每个阶段只打乱一次后顺序用分量,也分别改变输出或抽样条件。需要对应版本的分析,不能只保留SVRG名称便沿用式(3)。

推论与应用

把几何率换成总查询预算 ​

在不缓存分量梯度的基线实现中,每阶段恰有 n+2m 次查询,额外状态为 O(d),向量运算为 O((n+m)d)。若在快照阶段保存全部 n 个梯度,每个内步只需一次新梯度,总查询降为 n+m,却需 O(nd) 梯度表存储。部分线性模型可用更小的表示,但那是利用模型结构后的另一份账。

若已知初始上界 Δ(x~0)≤Δ0,且 Δ0>ε>0,取

S≥⌈log⁡(Δ0/ε)log⁡(1/ρ)⌉

便保证期望目标差不超过 ε。选择上述常数后总查询为 O((n+L/μ)log⁡(Δ0/ε))。这里不是每轮的误差观测证书;如果不知道 Δ0,还需另一个合法上界。oracle非有限、快照不完整或超出预算时应报告对应失败状态,不能输出这条定理认证。

非均匀抽样若按 pi>0 选择分量,保持无偏的方向应改为

∇fI(x)−∇fI(x~)npI+∇f(x~).

少了 1/(npI),条件均值实际变为

∑ipi[∇fi(x)−∇fi(x~)]+∇f(x~),

通常不等于 ∇f(x)。仍用两分量例、快照0、p=(3/4,1/4),这个均值为 3x/2+1,原目标梯度为 2x+1;快照项使它也不只是加权目标的梯度 3x/2。重新加权后恢复无偏,新的方差和步长常数仍要重算,不能直接复制式(2)。

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

拖动节点调整位置。

显示关系

显示:依赖

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