译自英文

RAdam(修正Adam)是一种优化器,它修正了Adam中自适应学习率的方差,从而提高了深度学习中的收敛稳定性和泛化能力。

RAdam,即修正Adam(Rectified Adam)的简称,是一种用于训练神经网络的优化算法。它由Liyuan Liu、Haoming Jiang、Pengcheng He、Weizhu Chen、Xiaodong Liu、Jianfeng Gao和Jiawei Han于2019年在论文《论自适应学习率的方差及其超越》中提出。RAdam解决了Adam优化器的一个已知问题,即自适应学习率在训练早期可能具有高方差,导致收敛不佳或最终性能次优。通过修正这种方差,RAdam旨在结合Adam快速收敛的优势与随机梯度下降(SGD)的稳定性。

RAdam在深度学习中广泛使用,特别是在训练transformer和大语言模型时,在这些场景中它表现出与AdamW及其他变体相当的性能。它已在包括PyTorch和TensorFlow在内的主要深度学习框架中实现,并且是一些训练流程中的默认选择。

背景:Adam优化器及其局限性

Adam优化器由Diederik Kingma和Jimmy Ba于2014年提出,是一种流行的自适应学习率方法,它基于梯度的一阶和二阶矩估计为每个参数计算单独的学习率。Adam在训练深度神经网络方面非常成功,但存在已知问题。一个问题是,在训练早期,自适应学习率可能过大,尤其是当二阶矩估计较小时。这可能导致过大的更新,使模型收敛到尖锐的极小值,而这些极小值通常泛化能力较差。此外,Adam可能需要仔细调整学习率和其他超参数。

已经提出了几种变体来解决这些问题,例如AdamW(解耦权重衰减)和AMSGrad(使用过去平方梯度的最大值)。然而,这些方法并未直接解决自适应学习率中的方差问题。

Adam中的方差问题

在Adam中,自适应学习率计算为一阶矩估计与二阶矩估计平方根的比值。在训练早期,二阶矩估计初始化为零,并通过偏差校正进行更新。然而,偏差校正仍可能使估计具有高方差,尤其是当衰减率(beta2)接近1时。这种方差导致学习率剧烈波动,可能引发不稳定的训练和较差的收敛。

RAdam的关键见解是量化这种方差,并应用一个修正项,在方差高时降低学习率,随着方差减小逐渐增加学习率。这类似于修正线性单元(ReLU)激活函数,它将负值裁剪为零。

RAdam的工作原理

RAdam计算自适应学习率的方式与Adam类似,但增加了一个修正项。该算法维护梯度的一阶矩(均值)和二阶矩(非中心方差),分别记为m_t和v_t。它还跟踪时间步t和衰减率beta2。

在每一步中,RAdam计算偏差校正后的估计值:m_t_hat = m_t / (1 - beta1^t) 和 v_t_hat = v_t / (1 - beta2^t)。然后计算参数rho_t = (1 - beta2^t) (2 / (1 - beta2) - 1) - t,该参数衡量移动平均的有效长度。如果rho_t大于阈值(通常为4),RAdam使用修正项:学习率按sqrt((rho_t - 4) (rho_t - 2) rho_t / ((rho_t - 4) (rho_t - 2) rho_t - 4 (rho_t - 2) * (rho_t - 2)))进行缩放。如果rho_t小于或等于4,则更新简化为直接使用一阶矩,类似于带动量的SGD。

这种修正确保学习率在早期不会过大,防止模型采取过大步骤而导致较差的极小值。

RAdam的优势

RAdam相比Adam和其他优化器具有多项优势。首先,它减少了对学习率预热的需求,而预热通常是Adam避免早期不稳定性所必需的。这简化了超参数调整,并可能节省训练时间。其次,RAdam已被证明在各种任务(包括图像分类和语言建模)上相比Adam提高了泛化性能。第三,它在计算上高效,仅对Adam更新增加少量开销。

实证研究表明,RAdam在多种模型上表现良好,包括卷积神经网络和transformer。它特别适用于小批量训练或数据噪声较大的情况,因为这些场景中梯度方差更高。

RAdam的实际应用

RAdam已在流行的深度学习库中实现。在PyTorch中,它作为torch.optim.RAdam提供。在TensorFlow中,它通过Keras API作为tf.keras.optimizers.RAdam提供。它可以作为Adam的直接替代品使用,具有相同的超参数(学习率、beta1、beta2、epsilon)。默认值通常为learning_rate=0.001、beta1=0.9、beta2=0.999、epsilon=1e-8。

在实践中,RAdam已用于训练大规模模型,包括一些大语言模型transformer。例如,它已被采用于某些训练流程中,用于GPT和BERT变体等模型,在这些场景中它表现出与AdamW相当或更好的性能。然而,AdamW仍然是流行的选择,因为它具有解耦权重衰减,这对正则化有益。一些从业者将RAdam与权重衰减结合使用,或将其与余弦学习率调度一起使用。

与其他优化器的比较

RAdam常与Adam、AdamW和带动量的SGD进行比较。与Adam相比,RAdam提供了更稳定的训练,无需预热,并且通常带来更好的泛化。与AdamW相比,RAdam不解耦权重衰减,但可以与L2正则化结合。在某些基准测试中,RAdam在图像分类等任务上优于AdamW,而在其他任务中AdamW更优。选择取决于具体问题和超参数。

RAdam还与其他方差减少技术相关,例如梯度裁剪,可以将其与RAdam结合使用以进一步稳定训练。此外,RAdam可以与学习率调度(如余弦退火或步长衰减)一起使用。

扩展和变体

已经提出了RAdam的几种扩展。例如,RAdam已与lookahead(一种维护慢权重集的技术)结合,创建了Ranger优化器,该优化器在各种任务上表现出强劲性能。另一个变体是AdaBelief,它修改二阶矩以使用与均值的偏差,但RAdam仍是比较的基线。

研究还探讨了RAdam的理论性质,在特定条件下提供了收敛保证。修正项源自对自适应学习率方差的分析,并已被证明能减少泛化差距。

结论

RAdam是一种稳健的优化器,解决了Adam中的方差问题,从而带来更稳定和更好泛化的训练。它易于使用、广泛可用,并已在许多深度学习应用中证明有效。虽然它并不总是最佳选择,但它是优化器工具箱中的宝贵工具,尤其是在稳定性至关重要的训练大型模型场景中。

如需进一步阅读,请参见AdamSGD变体深度学习优化技术。

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:optimization·deep-learning·machine-learning
本页最后编辑于 2026年9月12日 编辑者 AI Wiki Bot · 历史