AdamW, LAMB: 大型预训练模型常用优化器

前言

按照时间上的迭代顺序,近些年神经网络先后出现了 Gradient Descent (GD)、Momentum、Adaptive Gradient (AdaGrad)、Root Mean Square prop (RMSprop)、Adaptive Moment estimation (Adam) 等优秀的优化器。到如今,大部分 NLP 预训练模型已不再使用这些方法,而是使用 Adam Weight Decay Regularization (AdamW) 和去年首度亮相的 Layer-wise Adaptive Moments optimizer for Batching training (LAMB)。为何最为传统的 GD,包括衍生的 stochastic GD、mini-batch GD 优化器已不再使用,下文会有详细的介绍。

Gradient Descent (GD)

梯度下降法是最为经典的凸优化优化器,思想也非常明确:通过 loss 反向传导计算参数的梯度,参数往哪个方向跑可以让 loss 下降,就让参数往哪个方向更新:
Δ W k = ∂ l o s s ∂ W k = ∂ l o s s ∂ Z n ∂ Z n ∂ Z n − 1 . . . ∂ Z k + 1 ∂ W k \Delta W_k=\frac{\partial loss}{\partial W_k}=\frac{\partial loss}{\partial Z_n}\frac{\partial Z_n}{\partial Z_{n-1}}...\frac{\partial Z_{k+1}}{\partial W_k} ΔWk=Wkloss=ZnlossZn1Zn...WkZk+1

W k ← W k − α Δ W k W_k\leftarrow W_k-\alpha \Delta W_k WkWkαΔWk

需要注意的是, W k W_k Wk 中的每一个浮点元素的梯度计算和梯度更新,相互之间是完全独立的,这对于理解梯度更新的机理非常重要。上式中, α \alpha α 为学习率,通常是一个固定的超参数,学习率越高,收敛越快。但需要注意控制范围。学习率过大,容易造成梯度跨过参数的局部最优点造成参数震荡;学习率过小,会导致训练过程过于漫长。为避免参数震荡,使用 GD 时,学习率通常设置在一个较低值,且训练的 batch_size 越大,学习率越低。梯度裁剪虽能一定程度上解决梯度震荡的问题,但由于输出的概率分布发生偏移,模型收敛也受到一定负面影响,因此需尽可能避免对梯度裁剪的依赖。

Adaptive Moment estimation (Adam)

为解决 GD 中固定学习率带来的不同参数间收敛速度不一致的弊端,AdaGrad 和 RMSprop 诞生出来,为每个参数赋予独立的学习率。计算梯度后,梯度较大的参数获得的学习率较低,反之亦然。此外,为避免每次梯度更新时都独立计算梯度,导致梯度方向持续变化,Momentum 将上一轮梯度值加入到当前梯度的计算中,通过某种权重对两者加权求和,获得当前批次参数更新的更新值。 Adam 结合了这两项考虑,既为每一个浮点参数自适应性地设置学习率,又将过去的梯度历史纳入考量:
m t = β 1 m t − 1 + ( 1 − β 1 ) Δ W m_t=\beta_1m_{t-1}+(1-\beta_1)\Delta W mt=β1mt1+(1β1)ΔW

v t = β 2 v t − 1 + ( 1 − β 2 ) Δ W 2 v_t=\beta_2v_{t-1}+(1-\beta_2)\Delta W^2 vt=β2vt1+

  • 9
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: MATLAB是一种常用的数值计算软件,其中涉及到了很多波的计算,其中Lamb波是一种特殊的弹性波。Lamb波也称为横向波,具有类似于横波和纵波的特性。 Lamb波是是由英国数学家霍伦·亚历山大·拉姆(Henry Lamb)发现的,它是一种沿着固体表面传播的弹性波。Lamb波主要传播在板状结构物体表面和边缘周围的空气和液体中,在这些区域中,它的传播速度比固体中的传播速度慢。Lamb波的传播速度与波长成反比,即波长越长传播速度越慢。 MATLAB中可以通过编程计算Lamb波,其中需要用到一些相关的数学公式,如Lamb波的频率公式、波形方程等。可以针对不同的物理场景选择不同的计算方法并进行模型仿真。 总体来说,Lamb波是一种非常有价值的弹性波,可以用于检测材料的缺陷和结构的健康状况,对于相关专业人士来说具有广泛的应用前景。 ### 回答2: 在MATLAB中,lamb波是一种表征声波行为的波形式。它是一种表征在固体或液体中沿着表面传播的一种横波。在声学理论中,lamb波是一种二次波,其能量在垂直于表面的方向上集中。 具体地说,lamb波是一种通过固体或液体表面传播的机械波。这种波可以在不受外界干扰的情况下沿着表面传播,并且可以在不同类型的表面上发生。与其他类型的声波相比,lamb波具有传播速度低、衰减率高和振幅分布广泛等特点,因此它在声学研究和工程应用中具有相当重要的地位。 在MATLAB中,可以使用波动方程或有限元法等数值方法来描述和分析lamb波。此外,根据lamb波的传播性质和振幅分布等特点,还可以将其应用于表面缺陷检测、结构健康监测和材料非破坏性测试等领域。而在实际应用中,研究和利用lamb波也需要按照具体应用情况进行合理设计和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值