最佳学习率和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之间的比例规律。我们从理论上证明,最佳学习率最初会随着批量大小的增加而增加,然后减小,而激增的峰值代表了训练速度和数据效率之间的权衡点。通过大量实验,我们在不同的深度学习模型和数据集上验证了我们的理论。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux源码-进程描述符

Linux操作系统引入了PCB(Process Control Block,进程控制块)结构。PCB是Linux操作系统识别进程的通道。 创建进程时,首先会创建PCB,根据PCB中的信息对进程实施有效管理。当进程终止后,Linux操作系统会释放对应的PCB资源。 PCB的数据结构是s…

2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第二部分】

上一篇文章:2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第一部分】_尘封的CPU的博客-CSDN博客最近回顾了Java B组的试题,深有感触:脑子长时间不用会锈住,很可怕。兄弟们,都给我从被窝里爬起来,赶…

解决error Error: certificate has expired问题

安装环境遇到下面问题: 产生原因:可能是开了服务器代理访问导致ssl安全证书失效 解决办法: 在终端输入以下命令: yarn config set "strict-ssl" false -g

3ds Max导出fbx贴图问题简单记录

1.前言 工作中发现3ds Max导出的fbx在其它软件(Autodesk viewer,blender,navisworks,FBXReview等)中丢失了部分贴图,但导出的fbx用3ds Max打开却正常显示。 fbx格式使用范围较广,很多常见的三…

Milvus【部署 01】向量数据库Milvus在Linux环境下的在线+离线安装

向量数据库Milvus在Linux环境下的在线离线安装 1.千问简介2.在线安装2.离线安装 1.千问简介 Milvus 是一款专为处理高维向量数据设计的开源云原生数据库,旨在满足海量向量数据的实时召回需求。它由 Zilliz 公司开发并维护,基于Apache许可证2.0版本发布。…

ASUS华硕A豆14笔记本电脑I421EAYB,I421EQYB_ADOL14EA工厂模式原厂Win11系统安装包下载

适用型号:ADOL14EA笔记本I421EAYB、I421EQYB 链接:https://pan.baidu.com/s/1krU8m_lbApyUfZQo5E4cCQ?pwd0ewl 提取码:0ewl 华硕原装WIN11系统工厂安装包,带有MyASUS WinRE RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系…

Linux上安装JDK,Java起飞,开启编程之旅

在Linux环境下搭建Java开发平台,是许多开发者入门Java世界的第一步。Java的跨平台特性使得在Linux上安装JDK尤为重要,它不仅能为Linux开发者提供更广阔的应用场景,也是探索Java强大功能的起点。 接下来,让我们一起在Linux中完成J…

【SpringMVC】_SpringMVC实现留言墙

目录 1. 需求分析 2. 接口定义 2.1 提交留言 2.2 获取全部留言 3. 响应数据 4. 服务器代码 4.1 MessageInfo 文件 4.2 MessageController 文件 5. 前端页面代码 5. 运行测试 1. 需求分析 实现如下页面: 1、输入留言信息,点击提交后&#xff0…

使用腾讯云服务器从0搭建个人网站,超简单图文教程

使用腾讯云服务器搭建网站全流程,包括轻量应用服务器和云服务器CVM建站教程,轻量可以使用应用镜像一键建站,云服务器CVM可以通过安装宝塔面板的方式来搭建网站,腾讯云服务器网txyfwq.com整理使用腾讯云服务器建站教程,…

NPOI入门指南:轻松操作Excel文件的.NET库

目录 引言 一、NPOI概述 二、NPOI的主要用途 三、安装NPOI库 四、NPOI基本使用 六、性能优化和内存管理 七、常见问题与解决方案 八、结论 附录 引言 Excel文件作为数据处理的重要工具,广泛应用于各种场景。然而,在没有安装Microsoft Office的…

llama.cpp

https://github.com/echonoshy/cgft-llm 【大模型量化】- Llama.cpp轻量化模型部署及量化_哔哩哔哩_bilibili github.com/ggerganov/llama.cpp cd ~/code/llama.cpp/build_cuda/bin ./quantize --allow-requantize /root/autodl-tmp/models/Llama3-8B-Chinese-Chat-GGUF/Llama…

海尔智家:科技优秀是一种习惯

海尔智家:科技优秀是一种习惯 2024-06-28 15:19代锡海 6月24日,2023年度国家科学技术奖正式揭晓。海尔智家“温湿氧磁多维精准控制家用保鲜电器技术创新与产业化”项目荣获国家科学技术进步奖,成为家电行业唯一牵头获奖企业。 很多人说&…

分布式kettle调度管理平台简介

介绍 Kettle(也称为Pentaho Data Integration)是一款开源的ETL(Extract, Transform, Load)工具,由Pentaho(现为Hitachi Vantara)开发和维护。它提供了一套强大的数据集成和转换功能&#xff0c…

【C++】类、静态、枚举、重载、多态、继承、重写、虚函数

五、类 面向对象编程是一个巨大的编程范式。C中的类class就是基于对象的程序设计。 我们可以用类来定义一个新的类型,这些新类型就可以像内置类型一样使用。 内置类型颗粒度太太小,现实需求又非常复杂,这就需要我们把内置类型适度的进行拼搭…

源码学习:文件描述符

在进程描述学习中,扯到了max_fds,接着就联想到了日常运维中常见的ulimit参数、sysctl内核参数,原来以为max_fds与这些个关联性比较强,但经过一早上折腾以后,发现其实还是有一些差距的。但是在学习过程中,却…

【C++】数组、字符串

六、数组、字符串 讨论数组离不开指针,指针基本上就是数组的一切的基础,数组和指针的相关内容参考我的C系列博文:【C语言学习笔记】四、指针_通过变量名访问内存单元中的数据缺点-CSDN博客【C语言学习笔记】三、数组-CSDN博客 1、数组就是&…

数据结构03 链表的基本操作【C++数组模拟实现】

前言:本节内容主要了解链表的基本概念及特点,以及能够通过数组模拟学会链表的几种基本操作,下一节我们将通过STL模板完成链表操作,可以通过专栏进入查看下一节哦~ 目录 单链表及其特点 完整链表构成 完整链表简述 创建单链表 …

京东云备案流程图_云主机快速ICP备案_京东云服务器备案问题解答

京东云ICP备案流程,备案包括网站和APP备案,以及备案问题解答FAQ,阿腾云以京东云网站域名备案流程为例,先填写主办单位信息,选择网站备案或APP备案,申请授权码并验证,填写并上传主办单位详细信息…

光伏仿真软件是什么?都有哪些功能?

光伏仿真软件,作为现代光伏系统设计的重要工具,正日益受到设计师、工程师和决策者的青睐。它结合了物理学、工程学和计算机科学的原理,以数字化方式模拟光伏系统的运行,帮助用户预测和优化系统的性能。本文将详细探讨光伏仿真软件…

[Go 微服务] go-micro + consul 的使用

文章目录 1.go-micro 介绍2.go-micro 的主要功能3.go-micro 安装4.go-micro 的使用4.1 创建服务端4.2 配置服务端 consul4.3 生成客户端 5.goodsinfo 服务5.1 服务端开发5.2 客户端开发 1.go-micro 介绍 Go Micro是一个简化分布式开发 的微服务生态系统,该系统为开…