ML Theory 太魔怔了!!!!!
接上文,GD 有 1T 的收敛速率而 SGD 只有 1√T 的收敛速率。有许多种方法可以加速 SGD 的收敛速度。有一类算法是通过让方差呈递减趋势下降,最终以与 GD 同阶的速度收敛(凸与 L-平滑以 1T 速度收敛;强凸与 L-平滑以线性速度收敛)。这里介绍其中一种,SVRG (stochastic variance reduced gradient)。
SVRG 的想法在于,有一个随机变量 X,我们要通过蒙特卡洛法估计 EX,而有一个易于计算 EY 的随机变量 Y,且 X,Y 强相关,那么可以通过
θα=α(X−Y)+EY
来估计 EX。其中
Eθα=αEX+(1−α)EY
Var(θα)=Var(α(X−Y))=α2Var(X−Y)
当 α=1 时,Eθα=EX,Var(θα)=Var(X−Y)。这样便不依赖于 Var(X) 而只依赖于 X,Y 的相关性。
我们可以这样设计一个算法:X 在当前的 wj,Y 是 wj 的 snapshot,w⌊jm⌋m。我们将 m 设计得足够大使得可以接受计算 wim 完整梯度的代价,这些梯度就是 EY。
直观地讲,我们用 X0 中随机梯度与梯度的差来估计 Xt 中随机梯度与梯度的差,如图,红色和橙色为两者的随机梯度,黑色为已知的,绿色为要估计的,取黑+橙-红。这样问题就不在于橙色与绿色的角度长度偏差有多大,而在于 X0 和 Xt 的偏差的差有多大。
完整算法描述如下:
SVRG 算法
- For s=1,2,…
- ˜w=˜ws−1
- ˜u=1N∑Ni=1∇li(˜w)=∇f(˜w)
- w0=˜w
- For t=1,2,…,m
- 随机选取 i∈[N]
- wt=wt−1−η(∇li(wt−1)−∇li(˜w)+˜u)
- 随机选取 wt, t∈{0,1,…,m−1} 作为 ˜ws。
|
最后一步随机选取是为了可以用 E 说事。如果选取 ˜wm,没人证得出来。。
这里给出 μ-强凸的收敛性分析。
令 vt=∇li(wt−1)−∇li(˜w)+˜u。
令
gi(w)=li(w)−li(w∗)−⟨∇li(w∗),w−w∗⟩
由于 li(w) 是凸的,gi(w) 也是凸的,而计算可得 ∇gi(w∗)=0,因此 gi(w∗)=minwgi(w)。
0=gi(w∗)≤minη{gi(w−η∇gi(w))}≤minη{gi(w)−η∥∇gi(w)∥22+L2η2∥∇gi(w)∥22}Smoothness=gi(w)−12L∥∇gi(w)∥22
这个过程就是平滑性取二次函数顶点。移项得
∥∇li(w)−∇li(w∗)∥22≤2L(li(w)−li(w∗)−⟨∇li(w∗),w−w∗⟩)
这个式子有点像 Lipschitz 的形式,区别在于左侧是范数的平方。
对所有 li 求和得
E∥∇li(w)−∇li(w∗)∥22≤2L(f(w)−f(w∗))
E∥vt∥22≤2E∥∇li(wt−1)−∇li(w∗)∥22+2E∥∇li(˜w)−∇li(w∗)−∇f(˜w)∥22∥a+b∥22≤2∥a∥22+2∥b∥22≤2E∥∇li(wt−1)−∇li(w∗)∥22+2E∥∇li(˜w)−∇li(w∗)−E(∇li(˜w)−∇li(w∗))∥22∇f(w∗)=0≤2E∥∇li(wt−1)−∇li(w∗)∥22+2E∥∇li(˜w)−∇li(w∗)∥22E∥X−EX∥22=E∥X∥22−∥EX∥22≤E∥X∥22≤4L(f(wt−1)−f(w∗)+f(˜w)−f(w∗))
E∥wt−w∗∥22=∥wt−1−w∗∥22−2η⟨wt−1−w∗,Evt⟩+η2E∥vt∥22≤∥wt−1−w∗∥22−2η⟨wt−1−w∗,∇f(wt−1)⟩+4Lη2(f(wt−1)−f(w∗)+f(˜w)−f(w∗))≤∥wt−1−w∗∥22−2η(f(wt−1)−f(w∗))+4Lη2(f(wt−1)−f(w∗)+f(˜w)−f(w∗))Convexity=∥wt−1−w∗∥22−2η(1−2Lη)(f(wt−1)−f(w∗))+4Lη2(f(˜w)−f(w∗))
其中 4Lη2(f(˜w)−f(w∗)) 是误差部分,其会随着 ˜w→w∗ 减小。
E∥wm−w∗∥22≤E∥w0−w∗∥22−2mη(1−2Lη)m∑t=1f((wt−1)−f(w∗))+4mLη2(f(˜w)−f(w∗))=E∥w0−w∗∥22−2mη(1−2Lη)E(f(˜ws)−f(w∗))+4mLη2(f(˜w)−f(w∗))
我们拿到了想要的项,E(f(˜ws)−f(w∗)) 和 f(˜w)−f(w∗) 的线性组合,等式左边可以直接缩放为 0,因此只需要消掉 E∥w0−w∗∥22 便大功告成。
E∥w0−w∗∥22=E∥˜w−w∗∥22≤2μE(f(˜w)−f(w∗))Convexity+∇f(w∗)=0
E(f(˜ws)−f(w∗))≤(1mμη(1−2Lη)+2Lη1−2Lη)E(f(˜ws−1−f(w∗))
因此,η<1L,m 足够大时,系数会 <1,因此线性收敛。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异