最佳学习率和Batch Size缩放中的激增现象

前言

  • 《Surge Phenomenon in Optimal Learning Rate and Batch Size Scaling》原文地址
  • GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习过程中精读的一些论文,并对其进行了中文翻译。还有部分最佳示例教程
  • 如果有帮助到大家,请帮忙点亮Star,也是对译者莫大的鼓励,谢谢啦~
  • 本文代码已同步至项目Some-Paper-CN

摘要

在当前的深度学习任务中,Adam类优化器(如AdamAdagradRMSpropAdafactorLion)作为SGD类优化器的替代品被广泛使用。这些优化器通常使用梯度的符号(梯度的正负方向)更新模型参数,从而产生更稳定的收敛曲线。学习率和Batch Size是优化器最关键的超参数,需要仔细调整才能有效收敛。以往的研究表明,对于SGD类型的优化器,最佳学习率会随着Batch Size的增加而线性增加(或遵循类似的规则)。然而,这一结论并不适用于Adam优化器。本文通过理论分析和大量实验,阐明了Adam类优化器的最佳学习率与批量大小之间的联系。首先,我们提出了使用梯度符号情况下Batch Size与最优学习率之间的比例规律,证明了随着Batch Size的增加,最优学习率会先上升后下降。而且,随着训练的进行,激增的峰值会逐渐向Batch Size大的方向移动。最后,我们在各种CV和NLP任务上进行了实验,验证了缩放规律的正确性。

引言

由在大型数据集上进行随机梯度下降(SGD)学习所引发的深度学习技术,极大地改变了现实时间中的各种应用。在过去十年中,为了稳定迭代学习过程并加快收敛速度,人们引入了许多优化器,如momentumAdagradADADELTARMSpropAdamAdafactorLion。其中,Adam优化器在计算机视觉(CV)、自然语言处理(NLP)等多个领域得到了最广泛的应用。它保留了参数的第一矩估计(梯度的指数移动平均)和第二矩估计(梯度平方指数移动平均),便于调整自适应学习率。与使用原始梯度来确定学习方向和学习率不同,Adam及其变体(AdagradRMSpropLion等)采用梯度符号来确定学习方向和步长,从而确保了更高的稳健性。

除了优化器配置中的特定超参数外,Batch Size和学习率是影响收敛性的最关键超参数。随着各种Wrokloads(如CV、NLP等)中训练数据集规模的不断扩大,对跨多个数据并行工作进行大Batch Size训练的需求日益增加。然而,大Batch Size训练对训练稳健性和精细化调整提出了巨大挑战。学习率决定了每次学习迭代的实际步长,它与所使用的Batch Size密切相关。之前的研究探索了在使用SGD优化器的情况下,根据Batch Size确定最佳学习率的方法,包括平方根缩放、线性缩放等。其中,以大Batch Size训练为重点的模型在理论和实证方面都取得了令人信服的结果,并提出了以下规则来描述最佳学习率与Batch Size之间的关系:
ϵ o p t ( B ) = ϵ m a x 1 + B n o i s e B \epsilon_{opt}(B) = \frac{\epsilon_{max}}{1 + \frac{B_{noise}}{B}} ϵopt(B)=1+BBnoiseϵmax

对于Adam类优化器,虽然现有研究也提供了一些近似值,但它们未能捕捉到最佳学习率随Batch Size变化的真实缩放规律。如图 1 所示,我们给出了一条模拟Adam优化器真实最优学习率的曲线,它并不随Batch Size单调增加,而是先上升后下降,就像大海中的浪潮。本文旨在阐明Adam类优化器的最佳学习率与Batch Size之间的联系。通过沿用经验模型的符号并进行更深入的理论分析,我们发现在上述参数更新公式中,最优学习率与批量大小之间的关系满足:
ϵ o p t ( B ) = ϵ m a x 1 2 ( B n o i s e B + B B B n o i s e ) \epsilon_{opt}(B) = \frac{\epsilon_{max}}{\frac{1}{2}(\sqrt{\frac{B_{noise}}{B}}+\frac{B}{B_{B_noise}})} ϵopt(B)=21(BBnoise +BBnoiseB)ϵmax

请添加图片描述

图 1 : Adam和SGD的最佳学习率与Batch Size的关系不同。橙色线表示当Batch Size足够大时,最佳学习率趋于非零值。

在这里, B n o i s e B_{noise} Bnoise 的含义与缩放定律的论文一致,代表训练速度和数据效率之间的权衡点。当Batch Size等于 B n o i s e B_{noise} Bnoise时,根据公式 2,最优学习率会达到局部最大值,然后逐渐收敛到非零值。我们还证明,之前关于训练速度和数据效率的结论对于Adam优化器仍然有效,变量 B n o i s e B_{noise} Bnoise 会随着训练的进行而逐渐增大。值得注意的是,当 B ≪ B n o i s e B\ll B_{noise} BBnoise​ 时,对于SGD,最佳学习率随Batch Size的缩放规律为线性缩放,这与之前的结论一致:
ϵ o p t ( B ) ≈ ϵ m a x B n o i s e B \epsilon_{opt}(B) \approx \frac{\epsilon_{max}}{B_{noise}}B ϵopt(B)BnoiseϵmaxB
而对于Adam来说,这种关系转变为平方根缩放,与之前的近似值一致:
ϵ o p t ( B ) ≈ 2 ϵ m a x B n o i s e B \epsilon_{opt}(B) \approx \frac{2\epsilon_{max}}{\sqrt{B_{noise}}}\sqrt{B} ϵopt(B)Bnoise 2ϵmaxB

除了理论分析,我们对各种CV和NLPWrokloads进行的广泛实证研究也进一步验证了上述结论。在不同的Adam 配置中,真正的最佳学习率在达到峰值后,随着Batch Size的增加呈现出明显的下降趋势。这种行为与之前的研究相矛盾,但证明了我们理论的正确性和可推广性。实验还显示,随着训练的进行,与峰值最佳学习率相对应的变量 B n o i s e B_{noise} Bnoise也在逐渐增加。

理论研究

Batch Size和最佳学习率

在本节中,我们将从理论上推导出给定Batch Size的最佳学习率。首先,我们介绍Adam类优化器的近似值。通过研究Adam优化器及其变体,我们可以发现它们与SGD的主要区别在于每次迭代更新时使用的是梯度的符号,而不是梯度本身:
θ i + 1 = θ i − ϵ ⋅ s i g n ( G e s t ) \theta_{i+1} = \theta_i - \epsilon \cdot sign(G_{est}) θi+1=θiϵsign(Gest)
其中, θ t \theta_t θt是时间 t t t的参数, G e s t G_{est} Gest是通过Mini Batch估计的梯度, ϵ \epsilon ϵ是学习率。随着Batch Size的增加,随着Batch Size增加,更新量的预期值趋于饱和。例如,假设梯度的平均值为正,当Mini Batch的累积梯度为正时,增加Batch Size对有符号的更新量没有贡献。这与SGD的行为明显不同,在SGD中,Batch Size越大,梯度估计就越精确。在附录A中,我们将详细讨论Adam优化器的近似值。接下来,我们将推导出能使损失改善最大化的最优学习率。然后,我们建立了一个引理,解决了在估算出Mini Batch梯度的情况下的最优学习率问题:

引理 1。假设我们使用Mini Batch梯度 V V V更新参数 θ \theta θ,真实梯度为 G G G,真实Hessian矩阵为 H H H。那么,使损失减少最大化的最优学习率是:
ϵ o p t = a r g m a x ϵ E [ Δ L ] = G T E [ V ] t r [ H ⋅ c o v ( V ) ] + E [ V ] T H E [ V ] \epsilon_{opt} = argmax_{\epsilon}E[\Delta L] = \frac{G^TE[V]}{tr[H \cdot cov(V)] + E[V]^{T}HE[V]} ϵopt=argmaxϵE[ΔL]=tr[Hcov(V)]+E[V]THE[V]GTE[V]
相应的loss改善 Δ L \Delta L ΔL为:
Δ L o p t = G t E [ V ] 2 ϵ o p t \Delta L_{opt} = \frac{G^tE[V]}{2}\epsilon_{opt} ΔLopt=2GtE[V]ϵopt
证明见附录B

现在让我们考虑 V = s i g n ( G e s t ) V = sign(G_{est}) V=sign(Gest)的情况,并假设估计梯度 G e s t G_{est} Gest遵循高斯分布。高斯分布假设的动机如下:如果Mini Batch的规模足够大,我们可以引用中心极限定理(CLT),将分布近视为高斯分布——这是以往研究中的一个常见假设。我们有如下定义:

定理 2假设每个样本参数 i i i的梯度服从均值为 μ i \mu_i μi,方差为 σ i 2 \sigma_i^{2} σi2的高斯分布,且预期损失改善为:
Δ L o p t = 1 2 ∑ i ∑ j ξ i ξ j μ i μ j ∑ i ( 1 − ξ i 2 ) H i , i + ∑ i ∑ j ξ i ξ j H i , j \Delta L_{opt} = \frac{1}{2} \frac{\sum_i\sum_j\xi_{i}\xi_j\mu_i\mu_j}{\sum_i(1 - \xi_i^2)H_{i,i} + \sum_i\sum_j\xi_i\xi_jH_{i,j}} ΔLopt=21i(1ξi2)Hi,i+ijξiξjHi,jijξiξjμiμj
相应的最佳学习率为:
ϵ o p t = ∑ i ξ i μ i ∑ i ( 1 − ξ i 2 ) H i , i + ∑ i ∑ j ξ i ξ j H i , j \epsilon_{opt} = \frac{\sum_i\xi_i\mu_i}{\sum_i(1-\xi_i^2)H_{i,i} + \sum_{i}\sum_{j}\xi_i\xi_jH_{i,j}} ϵopt=i(1ξi2)Hi,i+ijξiξjHi,jiξiμi
其中, ξ i \xi_i ξi是一个与Batch Size B B B有关的函数(源自高斯误差函数):
ξ i ( B ) = 2 π ∫ 0 B 2 μ i σ i e − t 2 d t ≈ μ i σ i π 2 B + ( μ i σ i ) 2 \xi_i(B) = \frac{2}{\sqrt{\pi}}\int_0^{\sqrt{\frac{B}{2}}\frac{\mu_i}{\sigma_i}}e^{-t^2}dt \approx \frac{\frac{\mu_i}{\sigma_i}}{\sqrt{\frac{\pi}{2B} +(\frac{\mu_i}{\sigma_i})^2}{}} ξi(B)=π 202B σiμiet2dt2Bπ+(σiμi)2 σiμi
我们将在附录C中证明上述定理。

证明中的一个重要结论是,不仅 s i g n ( G e s t ) sign(G_{est}) sign(Gest)的协方差矩阵与 B B B有关,而且其期望值也取决于 B B B。这意味着在公式6中,分子是关于 B B B的函数的一阶形式,而分母是关于 B B B的函数的二阶形式:
ϵ ( B ) = β f ( B ) f ( B ) 2 + γ = β f ( B ) + γ f ( B ) \epsilon(B) = \frac{\beta f(B)}{f(B)^2 + \gamma} = \frac{\beta}{f(B) + \frac{\gamma}{f(B)}} ϵ(B)=f(B)2+γβf(B)=f(B)+f(B)γβ
因此,在 A d a m Adam Adam的案例中,不能简单地按照上文提到的形式得出结论:
ϵ ( B ) ≠ ϵ ∗ ( 1 + B n o s i e B ) α \epsilon(B) \neq \frac{\epsilon_*}{(1 + \frac{B_{nosie}}{B})^{\alpha}} ϵ(B)=(1+BBnosie)αϵ

然后,我们旨在通过以下定理推导出与Batch Size相关的最佳学习率的具体表达式。

定理 3。当 B ≪ π σ i 2 2 μ i 2 B \ll \frac{\pi\sigma_i^2}{2\mu_i^2} B2μi2πσi2时,最佳学习率是一个关于Batch Size B B B的函数:
ϵ o p t ( B ) ≈ 1 1 2 ( B n o i s e B + B B n o i s e ) B n o i s e 2 π ∑ i μ i 2 σ i ∑ i H i , i ≤ B n o i s e ∑ i μ i 2 σ i ∑ i H i , i \epsilon_{opt}(B) \approx \frac{1}{\frac{1}{2}(\sqrt{\frac{B_{noise}}{B}}+\frac{B}{B_{noise}})} \frac{\sqrt{\frac{B_{noise}}{2\pi}}\sum_i\frac{\mu_i^2}{\sigma_i}}{\sum_iH_{i,i}} \leq \frac{\sqrt{B_{noise}\sum_i\frac{\mu_i^2}{\sigma_i}}}{\sum_iH_{i,i}} ϵopt(B)21(BBnoise +BnoiseB)1iHi,i2πBnoise iσiμi2iHi,iBnoiseiσiμi2
其中, B n o i s e B_{noise} Bnoise是一个与Batch Size B B B无关的变量:
B n o i s e = π ∑ i H i , i 2 ∑ i ∑ j { μ i μ j σ i σ j i ≠ j 0 i = j B_{noise} = \frac{\pi\sum_iH_{i,i}}{2\sum_i\sum_j \begin{cases} \frac{\mu_i\mu_j}{\sigma_i\sigma_j}& i \neq j\\ 0& i=j \end{cases}} Bnoise=2ij{σiσjμiμj0i=ji=jπiHi,i
如果把 B p e a k B_{peak} Bpeak定义为最佳学习率达到峰值时的Batch Size,那么很明显, B p e a k B_{peak} Bpeak就是最佳学习率达到峰值时的Batch size
B p e a k = B n o i s e B_{peak} = B_{noise} Bpeak=Bnoise
peak值为:
ϵ m a x = B n o i s e 2 π ∑ i μ i 2 σ i ∑ i H i , i \epsilon_{max} = \frac{\sqrt{\frac{B_{noise}}{2\pi}}\sum_i\frac{\mu_i^2}{\sigma_i}}{\sum_iH_{i,i}} ϵmax=iHi,i2πBnoise iσiμi2
我们将在附录D中证明该定理。根据该定理,我们最终可以得到公式2,这意味着存在一个区间,在该区间内,Batch Size变大,最佳学习率需要降低。考虑到 π σ i 2 2 μ i 2 \frac{\pi\sigma_i^2}{2\mu_i^2} 2μi2πσi2远远大于科研和工业领域的正常Batch Size(如图 2 所示),该定理可以涵盖大多数情况。为了使结论更加全面,我们还推导出以下定理:

定理 4。当 B ≫ π σ i 2 2 μ i 2 B \gg \frac{\pi\sigma_i^2}{2\mu_i^2} B2μi2πσi2,最优学习率变为:
ϵ o p t = ∑ i ∣ μ i ∣ ∑ i ∑ j s i g n ( μ i ) s i g n ( μ j ) H i , j \epsilon_{opt} = \frac{\sum_i|\mu_i|}{\sum_i\sum_jsign(\mu_i)sign(\mu_j)H_{i,j}} ϵopt=ijsign(μi)sign(μj)Hi,jiμi
附录E提供了证明过程。

因此,当 B B B无限增大时,最佳学习率最终会收敛到一个非零值。

如果我们对 μ i σ i ≈ s i g n ( μ i ) \frac{\mu_i}{\sigma_i} \approx sign(\mu_i) σiμisign(μi)做一个(不切实际的)假设,就会发现定理3中的 ϵ m a x \epsilon_{max} ϵmax下界将变成定理4中的 ϵ m a x \epsilon_{max} ϵmax下界,这意味着最优学习率的局部峰值大于最终收敛值。但考虑到训练后期的梯度方差很小,使得上述结论 μ i σ i ≈ s i g n ( μ i ) \frac{\mu_i}{\sigma_i} \approx sign(\mu_i) σiμisign(μi)难以成立,所以训练后期的稳定值更有可能难以成立,所以训练后期的稳定值更有可能超过局部最大值。我们在图 1 中提供了一条参考曲线。

数据/时间效率权衡

根据大Batch Size训练模型的经验,我们还回顾了在选择Batch Size时数据和时间效率之间的权衡。我们有如下定理:

定理 5。当 B ≪ π σ i 2 2 μ i 2 B \ll \frac{\pi\sigma_i^2}{2\mu_i^2} B2μi2πσi2,与 B a t c h S i z e Batch Size BatchSize相关的Loss改善结果为:
Δ L o p t ( B ) = Δ L m a x 1 + B n o i s e B \Delta L_{opt}(B) = \frac{\Delta L_{max}}{1 + \frac{B_{noise}}{B}} ΔLopt(B)=1+BBnoiseΔLmax
其中 Δ L m a x \Delta L_{max} ΔLmax定义为:
Δ L m a x = ∑ i ∑ j μ i 2 μ j 2 σ i σ j 2 ∑ i ∑ j { μ i μ j σ i σ j i ≠ j 0 i = j \Delta L_{max} = \frac{\sum_i\sum_j\frac{\mu_i^2\mu_j^2}{\sigma_i\sigma_j}}{2\sum_i\sum_j\begin{cases} \frac{\mu_i\mu_j}{\sigma_i\sigma_j}& i \neq j\\ 0& i=j \end{cases}} ΔLmax=2ij{σiσjμiμj0i=ji=jijσiσjμi2μj2

我们在附录F中证明了这一定理。这一结果与SGD情况下得出的结论一致,表明许多相关结论也仍然有效。

SGD优化器中得出的训练速度和数据效率之间的关系仍然成立(详见公式 2.11 和附录 D):
( S S m i n − 1 ) ( E E m i n − 1 ) = 1 (\frac{S}{S_{min}}-1)(\frac{E}{E_{min}}-1)=1 (SminS1)(EminE1)=1
这里, S ( m i n ) S_{(min)} S(min)代表训练速度,即达到指定模型性能所需的实际(最少)步数; E ( m i n ) E_{(min)} E(min)代表数据效率,即达到相同性能水平所需的实际(最少)训练实例数。因为:
B p e a k = B n o i s e ≈ B c r i t = E m i n S m i n B_{peak} = B_{noise} \approx B_{crit} = \frac{E_{min}}{S_{min}} Bpeak=BnoiseBcrit=SminEmin
B n o i s e B_{noise} Bnoise不仅是最佳学习率的局部最大值,也是训练速度和数据效率之间的平衡点。此外,随着训练的进行,损失会逐渐减少, B p e a k B_{peak} Bpeak 也会逐渐变大。

结论

在本节中,我们从理论分析中得出了以下几个结论:

  1. 随着Batch Size的增大,最佳学习率在一定范围内呈下降趋势(公式 2)。
  2. 与局部最大最优学习率相对应的Batch Size符合训练速度和数据效率的平衡点(公式 21)。随着训练的进行和损失的减少, B p e a k B_{peak} Bpeak 会逐渐变大。

实验

在本节中,我们将进行一系列实验来证实我们在第 2 节中提出的理论缩放规律,并在第 3.1 节中详细介绍实验Wrokloads和配置。第 3.2 节阐明了根据我们的理论推导出估计变量的过程。我们还在第 3.3 节中展示并剖析了我们的缩放定律在各种Wrokloads中的适用性。

实验设置

Workloads。在实证研究中,我们采用了三种广泛使用的开源Wrokloads:(1) 在Fashion-MNIST数据集上训练一个 5层CNN模型,该数据集包含 10 个类别的 60000 张 28x28 灰度图像,这是一个典型的 CV 测试用例;(2) 在Tiny-ImageNet数据集上训练一个ResNet-18模型,该数据集包含100000张200个类别的图像(每个类别500 张),并缩小为64×64彩色图像。在每个epoch中,我们使用随机的10k个样本来训练模型,以降低整体复杂度;(3) 在ELI5-Category数据集上训练一个Transformer模型(简化的DistilGPT2),该数据集是原始ELI5数据集的一个较小但较新的分类版本。该数据集包含10.5k个复杂多样的问题,需要解释性的多句子答案。这些Wrokloads在学术界和工业界都很流行,涵盖了CV和NLP领域的典型深度学习任务。

Batch Size和学习率。为了展示每种Batch Size配置的最佳学习率,我们利用了网格搜索式实验集。网格搜索中的每个点都对应于具有相同配置但不同随机数种子的某一轮。表 1 列出了不同的Wrokloads起始点、停止点和时间间隔。

表 1 : 网格搜索参数

请添加图片描述

超参数。由于我们是在Adam类优化器上得出这些定理的,因此我们使用Adam优化器进行了实验。我们对 ”梯度符号“配置 ( β 1 = 0 , β 2 = 0 ) (\beta_1=0, \beta_2=0) (β1=0,β2=0)和默认超参数 ( β 1 = 0.9 , β 2 = 0.999 ) (\beta_1=0.9,\beta_2=0.999) (β1=0.9,β2=0.999)进行了实验 ,结果如表1所示。

硬件环境。我们使用NVIDIA A100显卡执行每一轮实验。Fashion-MNIST数据集的每轮训练时间约为1小时,TinyImageNet约为1.5小时,ELI5-Category约为2小时。鉴于我们主要关注的是收敛过程,特定的硬件环境在我们的实验中并不重要。我们的理论分析和实证研究可以推广到其他硬件环境。

变量估计

我们试图通过曲线拟合来估计 B n o i s e B_{noise} Bnoise值和 ϵ m a x \epsilon_{max} ϵmax的期望值。利用公式21简化公式20后(详见附录 G),我们可以算出达到与网格搜索结果中各Batch Size的最佳学习率相对应的指定性能水平而实际可能采取的步骤数$S 和实际可能处理的训练示例数 和实际可能处理的训练示例数 和实际可能处理的训练示例数E ,然后进行线性拟合以获得 ,然后进行线性拟合以获得 ,然后进行线性拟合以获得B_{noise}$的估计值:
1 S = − B n o i s e 1 E + 1 s m i n \frac{1}{S} = -B_{noise}\frac{1}{E} + \frac{1}{s_{min}} S1=BnoiseE1+smin1
随后,我们利用网格搜索结果的最优学习率和Batch Size来估计Adam类的最大最优学习率期望 E [ ϵ m a x ] A d a m E[\epsilon_{max}]Adam E[ϵmax]Adam
E [ ϵ m a x ] A d a m = E [ ϵ o p t 2 ( B n o i s e B + B B n o i c e ) ] E[\epsilon_{max}]Adam = E[\frac{\epsilon_{opt}}{2}(\sqrt{\frac{B_{noise}}{B}}+ \sqrt{\frac{B}{B_{noice}}})] E[ϵmax]Adam=E[2ϵopt(BBnoise +BnoiceB )]
SGD类优化器的期望 E [ ϵ m a x ] S G D E[\epsilon_{max}]SGD E[ϵmax]SGD
E [ ϵ m a x ] S G D = E [ ϵ o p t ( 1 + B n o i s e B ) α ] E[\epsilon_{max}]SGD = E[\epsilon_{opt}(1 + \frac{B_{noise}}{B})^\alpha] E[ϵmax]SGD=E[ϵopt(1+BBnoise)α]
以前的研究用公式分别表示了 α = 1 \alpha = 1 α=1 α = 0.5 \alpha=0.5 α=0.5SGD优化器和Adam优化器。我们将这些拟合曲线纳入下一节进行比较。

结果

根据第3.2节,我们首先利用观测数据估计变量并拟合曲线,然后对学习率和Batch Size进行网格搜索式实验。图2、图3和图4分别展示了CNN-FashionMNIST、ResNet18-TinyImageNet和DistilGPT2-ELI5Category的实验结果。每张图都分为两部分:右边的子图展示了估算结果,左边的子图描述了网格搜索结果。为了估算变量,我们使用不同的学习率和Batch Size从头开始训练模型,然后记录每次实验中的步骤数 S S S和示例数 E E E,以获得等效的训练损失。利用记录的 S S S E E E,我们拟合右侧子图中的曲线,得到估计的 B n o i s e B_{noise} Bnoise。在左侧子图中,在达到所需的训练损失后,所有实验继续以相同的步数进行训练。随后训练损失的任何减少都会以不同的颜色表示,如颜色条所示。对于每种Bath Size,我们都会突出显示能显著减少训练损失的最佳学习率。我们还绘制了与最佳学习率峰值相对应的 B n o i s e B_{noise} Bnoise、根据先前研究得出的 α = 0.5 \alpha = 0.5 α=0.5 α = 1 \alpha = 1 α=1​的拟合SGD曲线,以及根据我们的定理得出的拟合Adam曲线。

请添加图片描述

图 2 : 在FashionMNIST上训练的CNN模型的Batch Size与最佳学习率的关系

对于CNN-FashionMNIST Workloads,我们在达到所需的训练损失后再训练10步。如图2 (a) 所示,在该任务中,定理3的Batch Size约束 π σ i 2 2 μ i 2 \frac{\pi\sigma_i^2}{2\mu_i^2} 2μi2πσi2约为 800。鉴于 CNN-FashionMNIST Workloads的简单性,常用的Batch Size通常小于Batch Size约束。我们在图2(b)和©中分别绘制了与定理3和定理4相对应的情况。在这两种情况下,我们的理论所预测的趋势与实际的最佳学习率性能是一致的,在Batch Size较小的情况下,学习率呈下降趋势,而在Batch Size较大的情况下,学习率呈饱和趋势。对于ResNet18-TinyImageNet Workloads,我们在达到理想的训练损失后再训练 50 步。如图3所示,我们绘制了定理3在不同训练损失下的数据,这些数据代表了训练的进度。观察到的最佳学习率主要在Batch Size超过估计的 B n o i s e B_{noise} Bnoise之后呈现下降趋势。虽然有工作声称 α = 0.5 \alpha = 0.5 α=0.5SGD曲线代表Adam优化器在某些情况下是一个很好的近似值,但它无法像我们的Adam曲线那样捕捉到峰值最佳学习率。比较不同图中的红色虚线,我们可以发现,随着训练的进行,估计的 B n o i s e B_{noise} Bnoise会逐渐增加(即训练损失减少),这也印证了第 2.3 节中的第二个结论。

请添加图片描述

图 3 : 在TinyImageNet上训练的ResNet-18模型,Batch Size与最佳学习率之间的关系。红色虚线准确预测了峰值,随着训练损失的减少,峰值逐渐右移。

对于DistilGPT2-Eli5Category Workloads,我们在达到所需的训练损失后再训练50步。如图4所示,我们针对定理3测试了两种不同的Adam配置:第一种配置为 β 1 = 0.0 \beta_1 = 0.0 β1=0.0 β 2 = 0.0 \beta_2 = 0.0 β2=0.0;第二种配置为 β 1 = 0.9 \beta_1 = 0.9 β1=0.9 β 2 = 0.999 \beta_2 = 0.999 β2=0.999。在这两种情况下,学习率都有希望导致损失大幅减少,这与我们的Adam曲线是一致的。值得注意的是, α = 0.5 \alpha = 0.5 α=0.5​的另一条曲线SGD在这种情况下也提供了合适的近似值。这些实验证明,我们的定理可以推广到不同的优化器配置,从而验证了附录 A 中的分析。

请添加图片描述

图 4 : 在以Eli5Category为基础进行训练的DistilGPT2中,Batch Size与最佳学习率之间的关系。

讨论

我们使用Adam优化器对具有代表性的Workloads进行了实证研究。在实际应用中,有许多不同的Workloads。本文讨论范围之外的其他因素也可能影响学习过程——所使用的特定优化器、权重衰减、梯度剪切等。虽然我们认为我们的定理可以应用于许多实际场景,但它可能无法完全涵盖涉及复杂训练配置的所有情况。

正如我们的结论之一所指出的,随着训练的进行,变量 B n o i s e B_{noise} Bnoise会逐渐增加。在可能的情况下,自然要采用自适应学习率(和 B a t c h S i z e Batch Size BatchSize),以加快训练过程。正如文献中提到的,使用自适应Batch Size和预热学习率会带来相当大的好处。要充分发掘 B a t c h S i z e Batch Size BatchSize和学习率调度的潜力,需要精心设计,这也是我们今后的工作重点。

相关工作

为了加快收敛速度,我们的工作分析了Adam优化器的最佳学习率与Batch Size的缩放规律。为了提高深度学习任务的收敛性,人们提出了许多相关研究,如研究最佳学习率、开发新的优化器、分析梯度噪声等。

早期的研究提出了各种缩放规律来调整SGD式优化器的学习率,包括平方根缩放、线性缩放等。他们还通过近似得到了Adam类优化器的缩放规律,揭示了一种类似平方根的关系,即最佳学习率随批量大小单调增加。然而,正如第1节和第2节所示,他们的分析仅适用于较小的批次规模,而真正的缩放规律则表现出更大的复杂性,最佳学习率在Batch Size平衡时达到峰值。

有许多针对不同任务和场景精心设计的优化器。一阶优化器在目前的深度学习模型中占主导地位,包括自适应方法、基于符号的方法、层智方法(用于大批量训练)。二阶优化器虽然有更强的理论保证,但由于与参数数量相关的二次方复杂性,对于大规模模型来说并不高效。尽管新的优化器不断涌现,但经验证据证实,在过去十年中,Adam仍然是使用最广泛、最有效的优化器。

我们的分析受到大Batch Size训练模型经验的启发,该模型利用梯度噪声尺度预测有效的。梯度噪声有助于确定学习率、选择Batch Size,以及深入了解收敛过程。

结论

在本文中,我们建立了Adam类优化器的最佳学习率与Batch Size之间的比例规律。我们从理论上证明,最佳学习率最初会随着批量大小的增加而增加,然后减小,而激增的峰值代表了训练速度和数据效率之间的权衡点。通过大量实验,我们在不同的深度学习模型和数据集上验证了我们的理论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/757304.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言学习记录(十二)——指针与数组及字符串

文章目录 前言一、指针和数组二、指针和二维数组**行指针(数组指针)** 三、 字符指针和字符串四、指针数组 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、指针和数组 在C语言中 &#xff0…

网盘挂载系统-知识资源系统-私域内容展示系统

系统介绍: 存储:一共支持约30款云盘存储,其中包括主流的(百度网盘、阿里云盘、夸克云盘、迅雷云盘、蓝奏云、天翼云盘),部分展示 以及特别的(一刻相册、对象存储、又拍云存储、SFTP、MEGA 网盘…

锁机制 -- 概述篇

锁机制 1、概述 ​  加锁是为了解决并发场景下,多个线程对同一资源同时进行操作,而导致同一线程多次操作出现结果不唯一的情况(一次操作包含多条指令)。结果不唯一发生的原因在于指令的错乱,前提条件是多线程环境及…

原子变量原理剖析

一、原子操作 原子操作保证指令以原子的方式执行,执行过程不被打断。先看一个实例,如下所示,如果thread_func_a和thread_func_b同时运行,执行完成后,i的值是多少? // test.c static int i 0;void thread…

013、MongoDB常用操作命令与高级特性深度解析

目录 MongoDB常用操作命令与高级特性深度解析 1. 数据库操作的深入探讨 1.1 数据库管理 1.1.1 数据库统计信息 1.1.2 数据库修复 1.1.3 数据库用户管理 1.2 数据库事务 2. 集合操作的高级特性 2.1 固定集合(Capped Collections) 2.2 集合验证(Schema Validation) 2.…

自组装mid360便捷化bag包采集设备

一、问题一:电脑太重,换nuc 采集mid360数据的过程中,发现了头疼的问题,得一手拿着电脑,一手拿着mid360来采集,实在是累胳膊。因此,网购了一个intel nuc, 具体型号是12wshi5000华尔街峡谷nuc12i…

Python私教张大鹏 PyWebIO通过事件回调实现表格的编辑和删除功能

从上面可以看出,PyWebIO把交互分成了输入和输出两部分:输入函数为阻塞式调用,会在用户浏览器上显示一个表单,在用户提交表单之前输入函数将不会返回;输出函数将内容实时输出至浏览器。这种交互方式和控制台程序是一致的…

在Ubuntu 18.04.6 LTS 交叉编译生成Windows 11下的gdb 8.1.1

1. 安装mingw sudo apt-get install mingw-w64 2. 下载 gdb 8.1.1源码 https://ftp.gnu.org/gnu/gdb/gdb-8.1.1.tar.gz 解压命令 tar -xf gdb-8.1.1.tar.gz 进入目录,创建build目录: hq@hq:~/gdb-8.1.1/build$ 执行配置 ../confi

视频云计算的未来发展趋势:智能化、个性化与云端协同助力智慧城市安防监控

随着信息技术的飞速发展,云计算作为一种全新的服务模式,正在改变我们处理数据和信息的方式。而视频云计算技术,作为云计算领域的一个重要分支,以其独特的优势,正在逐步渗透到我们生活的各个领域。 一、视频云计算技术…

[leetcode hot 150]第一百二十二题,买卖股票的最佳时机Ⅱ

题目: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大…

javaScript利用indexOf()查找字符串的某个字符出现的位置

1 创建字符串 2 利用indexof()查询字符串的字符 3 利用while循环判断indexOf是否等于-1,不等于-1就打印一次并且索引号1去查下一个字符 //创建字符串var str1234567812311231;var indexstr.indexOf(1);//查询该字符while(index !-1)//indexOf()没有查到会返回-1{…

企业本地大模型用Ollama+Open WebUI+Stable Diffusion可视化问答及画图

最近在尝试搭建公司内部用户的大模型,可视化回答,并让它能画图出来, 主要包括四块: Ollama 管理和下载各个模型的工具Open WebUI 友好的对话界面Stable Diffusion 绘图工具Docker 部署在容器里,提高效率以上运行环境Win10, Ollama,SD直接装在windows10下, 然后安装Docker…

Linux中彩色打印

看之前关注下公众号呗 第1部分:引言 1.1 Python在文本处理中的重要性 Python作为一种广泛使用的高级编程语言,以其简洁的语法和强大的功能在文本处理领域占有一席之地。无论是数据清洗、自动化脚本编写,还是复杂的文本分析,Py…

甄选范文“论云上自动化运维及其应用”,软考高级论文,系统架构设计师论文

论文真题 云上自动化运维是传统IT运维和DevOps的延伸,通过云原生架构实现运维的再进化。云上自动化运维可以有效帮助企业降低IT运维成本,提升系统的灵活度,以及系统的交付速度,增强系统的可靠性,构建更加安全、可信、开放的业务平台。 请围绕“云上自动化运维及其应用”…

Typora failed to export as pdf. undefined

变换版本并没有用,调整图片大小没有用 我看到一个博客后尝试出方案 我的方法 解决:从上图中的A4,变为其他,然后变回A4 然后到处成功,Amazing! 参考: Typora 导出PDF 报错 failed to export…

识图生成代码:通义千问vsGPt4o,有点小崩

今日对比一下通义千问和GPt4o,在通过识别图片然后去生成前端代码 在当今ai的时代,通过ai去生成页面的代码可以很大的提高我们的开发效率下面是我们要求的生成的图片截图,这是掘金的榜单 效果对比 首先我们使用通义千问,让他去帮我…

Tesseract Python 图片文字识别入门

1、安装tesseract Index of /tesseract https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.3.0.20221214.exe 2、安装中文语言包 https://digi.bib.uni-mannheim.de/tesseract/tessdata_fast/ 拷贝到C:\Program Files\Tesseract-OCR\tessdata 3、注…

Linux基础 - BIND加密传输缓存服务器

目录 零. 简介 一. 安装 二. 安全的加密传输 三. 部署缓存服务器 四. 总结 零. 简介 BIND(Berkeley Internet Name Domain)是一款广泛使用的开源 DNS(域名系统)服务器软件。 域名系统的主要作用是将易于人类理解的域名&…

《昇思25天学习打卡营第12天 | 昇思MindSpore基于MindSpore的GPT2文本摘要》

12天 本节学习了基于MindSpore的GPT2文本摘要。 1.数据集加载与处理 1.1.数据集加载 1.2.数据预处理 2.模型构建 2.1构建GPT2ForSummarization模型 2.2动态学习率 3.模型训练 4.模型推理

Windows怎么实现虚拟IP

在做高可用架构时,往往需要用到虚拟IP,在linux上面有keepalived来实现虚拟ip的设置。在windows上面该怎么弄,keepalived好像也没有windows版本,我推荐一款浮动IP软件PanguVip,它可以实现windows上面虚拟ip的漂移。设置…