McCandlish S., Kaplan J., Amodei D. and OpenAI Dota Team. An empirical model of large-batch training. 2018.
概
本文讨论了随着 batch size 改变, sgd-style 的优化器的学习应该怎么调整.
Gradient Noise Scale
-
考虑如下的优化问题:
minθ∈RDL(θ)=Ex∼ρ[Lx(θ)],(1)
其中 ρ(x) 是数据 x 所服从的分布.
-
通常来说, 精准地优化 (1) 需要计算整个数据集上的梯度, 这个不太现实, 所以实际中, 通常采用 mini-batch 更新策略:
Lbatch(θ)=1BB∑i=1Lxi(θ),xi∼ρ.
-
所对应的, SGD 更新策略为:
θt+1←θt−ϵ1BB∑i=1∇θLxi(θt)=:Gest,
其中 ϵ 为步长.
-
进一步假设 (G=∇θL,H=∇2θL)
L(θ−ϵV)≈L(θ)−ϵGTV+12ϵ2VTHV.
容易发现, 此时最优的 ϵ 为
ϵmax=|G|2GTHG.
-
对于 mini-batch 的更新情况, 类似有
E[L(θ−ϵGest)]=L(θ)−ϵGTE[Gest]+12ϵ2E[GTestHGest]=L(θ)−ϵGTG+12ϵ2E[GTestHGest]=L(θ)−ϵGTG+12ϵ2E[GTHG+tr(HΣ)B],
其中
Σ=Cov(∇θLx(θ)).
注: 上述第二个等式成立的原因是:
Ex[xTAx]=E[(A1/2x)T(A1/2x)]=Tr(E[(A1/2x)T(A1/2x)])=E[Tr((A1/2x)T(A1/2x))]=E[Tr((A1/2x)(A1/2x)T)]=E[Tr(A1/2xxTA1/2)]=Tr(A1/2E[xxT]A1/2)=Tr(A1/2(Cov(x,x)+E[x]E[x]T])A1/2)=Tr(ACov(x,x))+E[x]TAE[x].
-
因此, 在这个情况下, 我们有
ϵopt(B)=ϵmax1+Bnoise/B,Bnoise=tr(HΣ)GTHG.
其中 Bnoise 被称之为 noise scale.
-
所以, 当 Bnoise≫B 的时候, 增大 batch size B 应当相应的线性地增大学习率, 当 Bnoise<B 的时候, 再增大 batch size 对于学习率的调节就不需要那么灵敏 (实际上在这种情况下, 这种情况下再继续增大 batch size 所得到的效率的增益是很微弱的):

注: 作者在 Appendix D.1 中证明了训练速度和训练样本所满足的一个等式关系 (但是其中的证明我没有推过去).
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2023-11-26 Learning Graph Filters for Spectral GNNs via Newton Interpolation