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

news2024/11/23 15:26:37

前言

  • 《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.coloradmin.cn/o/1878114.html

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

相关文章

llm学习-1(包含如何使用github的codespace):

本文学习参考:datawhalechina/llm-universe: 本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/ 一些可使用的大模型地址: Claude 使用地址 PaLM 官方地址 Gemini…

24年hvv前夕,微步也要收费了,情报共享会在今年结束么?

一个人走的很快,但一群人才能走的更远。吉祥同学学安全https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&scene21#wechat_redirect这个星球🔗里面已经沉淀了: 《Ja…

机械拆装-基于Unity-总体设计

前言 在工业设计和制造领域,零部件的拆装技术是一个重要的应用场景,比如我们在工程训练课程中经历的摩托车发动机拆装课程,是机械类学生的必修课程。虚拟拆装系统模拟和仿真了模型的拆装过程,虽然SolidWorks等机械设计软件能够解决…

apipost的安装和测试添加接口能否正常使用

1.进入官网,点击免费使用(我是windows 64位,选合适自己的配置) 2.开始安装 选仅为我安装——下一步 选择自己的安装目录——点安装 等待 运行——完成 3.apipost一些基本操作——实现添加内容 (1)新建接口…

【05】从0到1构建AI生成思维导图应用 -- 前端交互实现

【05】从0到1构建AI生成思维导图应用 – 前端交互实现 大家好!最近自己做了一个完全免费的AI生成思维导图的网站,支持下载,编辑和对接微信公众号,可以在这里体验:https://lt2mind.zeabur.app/ 上一章:http…

5_Clark变换Simulink仿真详细步骤

一、Clark变换的计算过程 根据投影定理: Iα由Ia、Ib、Ic共同投影决定,根据几何原理,IαIa-cos(60)*Ib-cos(60)*Ic,即是IαIa-0.5*Ib-0.5*Ic Iβ由Ib、Ic共同投影决定,根据几何原理,Iβsin(60&a…

下一代的JDK - GraalVM

GraalVM是最近几年Java相关的新技术领域不多的亮点之一, 被称之为革命性的下一代JDK,那么它究竟有什么神奇之处,又为当前的Java开发带来了一些什么样的改变呢,让我们来详细了解下 下一代的JDK 官网对GraalVM的介绍是 “GraalVM 是…

【Python机器学习】模型评估与改进——交叉验证

交叉验证是一种评估泛化性能的统计学方法,它比单次划分训练集和测试集的方法更稳定、前面。在交叉验证中,数据被多次划分,并且需要训练多个模型。最常用的交叉验证是k折交叉验证,其中k是由用户指定的数字,通常取5或10,…

MySQL高级-InnoDB引擎-事务日志- redo log(事务持久性的保证)

文章目录 1、redo log1.1、重做日志缓冲(redo log buffer)1.2、重做日志文件(redo log file) 2、如果没有redo log,可能会存在什么问题的?2.2、我们一起来分析一下。 2.2、那么,如何解决上述的问…

240629_昇思学习打卡-Day11-Vision Transformer中的self-Attention

240629_昇思学习打卡-Day11-Transformer中的self-Attention 根据昇思课程顺序来看呢,今儿应该看Vision Transformer图像分类这里了,但是大概看了一下官方api,发现我还是太笨了,看不太明白。正巧昨天学SSD的时候不是参考了太阳花的…

Databend db-archiver 数据归档压测报告

Databend db-archiver 数据归档压测报告 背景准备工作Create target databend table启动 small warehouse准备北京区阿里云 ECSdb-archiver 的配置文件准备一亿条源表数据开始压测 背景 本次压测目标为使用 db-archiver 从 MySQL 归档数据到 Databend Cloud, 归档的…

qt 开发笔记 动态链接库应用

1.概要 1.1 需求 库有两种,动态库和静态库,这里说的是动态库;动态库的加载方式有两种,一直是静态的一种是动态的,这里的静态加载是指静态加载动态,是一种加载动态库的方式。也有一种动态加载的方式&#…

衣服、帽子、鞋子相关深度学习数据集大合集(1)

最近收集了一大波关于衣物深度学习数据集,主要有衣服、帽子、鞋子、短裤、短袖、T恤等。 1、运动裤、短裤图片数据集 数据格式:图片 是否标注:已标注 标注格式:yolov8 图片数量:915张 查看地址:https…

# Sharding-JDBC从入门到精通(2)- Sharding-JDBC 介绍

Sharding-JDBC从入门到精通(2)- Sharding-JDBC 介绍 一、概述-分库分表所带来的问题 1、分库分表带来的问题 分库分表能有效的缓解了单机和单库带来的性能瓶颈和压力,突破网络 IO、硬件资源、连接数的瓶颈,同时也带来了一些问题…

容器进程

一、容器进程和宿主机进程的关系 容器在进程空间上和宿主机是隔离的,每创建一个容器,该容器都有一个独属的进程空间简称PID NameSpace。但是容器本质也是一个进程,自然是由其父进程创建的,这个可以使用ps aux命令验证。 | 容器视…

Thinger.io 支持多协议、插件化100%开源 IoT 企业级物联网平台

项目源码,文末联系小编 Thinger.io 是一个开源插件化物联网平台,提供了设备原型、扩展和设备连接管理所需的一切工具。我们的目标是使物联网的使用民主化,使其可供全世界使用,并简化大型物联网项目的开发。 01 Thinger.io 物联网平…

【C++】哈希表 --- 闭散列版本的实现

在无人问津日子里 正是登峰造极的好时机 ——《人民日报》 哈希表 --- 闭散列版本的实现 1 C中的哈希表2 哈希表底层2.1 功能2.1 哈希冲突2.3 开散列与闭散列 3 闭散列版本的实现3.1 框架搭建3.2 仿函数设计3.3 插入函数3.4 查找函数3.5 删除函数 Thanks♪(・ω&a…

windows 10 安装tcping 使用教程

1 官网下载:tcping下载 2 复制tcping 到win10系统目录C:\Windows\System32 3 tcping 网址测试,可以指定端口 4 tcping 测试端口联通 5 tcping http模式

LeetCode 算法: 合并 K 个升序链表 c++

原题链接🔗:合并 K 个升序链表 难度:困难⭐️⭐️⭐️ 题目 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists […

Hugging Face Accelerate 两个后端的故事:FSDP 与 DeepSpeed

社区中有两个流行的零冗余优化器 (Zero Redundancy Optimizer,ZeRO)算法实现,一个来自DeepSpeed,另一个来自PyTorch。Hugging FaceAccelerate对这两者都进行了集成并通过接口暴露出来,以供最终用户在训练/微调模型时自主选择其中之…