AdamW 在实践中为何通常优于带 L2 正则化的 Adam?14 2025 年 7 月 | 阅读 8 分钟 优化算法在有效且高效地训练深度学习模型中起着至关重要的作用。其中,Adam (Adaptive Moment Estimation) 因其自适应学习率的特性而得到广泛应用,使其非常适合各种任务。然而,当应用 L2 正则化(通常称为权重衰减)时,Adam 会出现一个普遍问题。为了解决这个问题,引入了一个名为 AdamW 的模型,它在实践中通常优于标准的带 L2 正则化的 Adam。本文探讨了 AdamW 何以通常优于带 L2 正则化的 Adam,以及它如何提高优化性能。 理解 Adam 和 L2 正则化Adam (Adaptive Moment Estimation) 是一种在深度学习中广泛使用的优化算法,它结合了基于动量的梯度下降和自适应学习率的优点。它维护了过去梯度(一阶矩)和平方梯度(二阶矩)的指数加权移动平均值,从而实现高效稳定的更新。Adam 中标准的权重更新规则通过除以二阶矩的平方根来归一化更新步长,确保每个参数都适应其自身的学习率。这使得 Adam 在处理稀疏梯度和嘈杂的优化场景方面特别有效。 L2 正则化,也称为权重衰减,是一种常用的技术,用于通过惩罚大权重来防止过拟合。它通过向损失函数添加一个与权重幅度平方成正比的项来实现。这鼓励模型学习较小的权重,从而提高泛化能力。在传统的随机梯度下降 (SGD) 中,L2 正则化是通过在每次迭代中直接从更新后的参数中减去一部分权重值来实现的。这导致权重逐渐向零收缩,除非数据表明其他情况。 然而,当 L2 正则化应用于 Adam 时,它会以一种意想不到的方式与算法的自适应学习率机制相互作用。惩罚项在计算更新步长之前被添加到梯度中,而不是直接衰减权重。由于 Adam 使用一阶矩和二阶矩估计独立调整每个参数的学习率,因此有效的权重衰减在不同参数之间会有所不同。这导致正则化效果不一致,有时会导致权重增长而不是收缩。由于这个问题,结合了标准 L2 正则化的 Adam 通常无法达到预期的泛化效果。这导致了 AdamW 的开发,AdamW 是 Adam 的一种变体,它有效地将权重衰减与梯度更新分离,确保了正确的正则化和模型性能的提高。 L2 正则化如何在 Adam 中应用?在传统的随机梯度下降 (SGD) 中,L2 正则化(也称为权重衰减)直接应用于权重。在每次更新期间,正则化项会从权重值中减去,从而确保参数的缓慢收缩。这通过阻止较大的权重值来帮助防止过拟合,从而提高泛化能力。 然而,在 Adam 中,L2 正则化的应用方式不同。不是直接修改权重,而是将正则化项添加到梯度中,然后再计算更新。这意味着 Adam 没有执行真正的权重衰减,而是修改了更新步骤中使用的梯度。由于 Adam 根据一阶矩和二阶矩估计自适应地缩放更新,因此权重衰减的影响在不同参数之间是不一致的。 这种方法的麻烦在于它会干扰 Adam 的自适应学习率机制。由于 Adam 使用二阶矩估计来归一化更新,因此有效权重衰减的强度在不同参数之间有所不同。某些参数可能经历过度衰减,而其他参数则获得太少,导致不可预测的权重动态。这降低了预期的正则化效果,并可能导致泛化性能不佳。 为了解决这个问题,AdamW 被引入,它是 Adam 的一个修改版本,它将权重衰减与梯度更新分离。AdamW 不是将正则化项应用于梯度,而是在更新步骤之后直接应用权重衰减。这确保了所有参数都经历一致的衰减率,与传统的带 L2 正则化的 Adam 相比,可以实现更稳定的训练和更好的泛化。 Adam 和 L2 正则化的问题直接在 Adam 中应用 L2 正则化的麻烦在于 Adam 更新权重的方式。具体来说: 不一致的权重衰减应用 在标准的随机梯度下降 (SGD) 中,L2 正则化直接应用于权重,确保它们随时间持续收缩。然而,在 Adam 中,权重衰减是通过在计算更新之前将惩罚项添加到梯度中来实现的。这种方法不会导致真正的权重衰减,因为 Adam 的自适应学习率独立调整每个参数的步长,导致在不同参数上正则化的应用方式不一致。 自适应学习率造成的失真 Adam 使用一阶矩和二阶矩估计来归一化梯度更新,这导致每个参数具有不同的有效学习率。当 L2 正则化被添加到梯度中而不是直接修改权重时,衰减强度会不可预测地变化。一些参数会经历过度正则化,而其他参数则获得太少,从而导致次优的权重控制。 动量对正则化的干扰 Adam 维护着过去梯度的指数加权移动平均值,引入了一种类似于动量的影响,这进一步使 L2 正则化复杂化。由于权重衰减应用于梯度而不是权重本身,它会以一种意想不到的方式与动量更新相互作用。这可能会抵消 L2 正则化的收缩效果,有时甚至会导致权重幅度增加而不是减小。 泛化性能差 由于这些不一致性,使用 Adam 和朴素 L2 正则化训练的模型通常无法达到预期的泛化效果。权重可能会过大,从而增加过拟合的风险。此外,正则化效果变得更难控制,需要过度的超参数调整才能获得所需的泛化效果。无效的衰减应用:Adam 与 L2 正则化的隐式交互会以意想不到的方式修改每种参数的有效正则化强度,而不是直接衰减权重,从而降低了正则化的有效性。 AdamW 如何解决这个问题AdamW 是 Adam 的一个修改模型,它正确地应用权重衰减,解决了原始 Adam 优化器中与 L2 正则化相关的问题。AdamW 不是将权重衰减项添加到梯度中,而是在更新步骤之后直接将权重衰减应用于权重。这种简单但至关重要的调整确保了权重衰减按预期工作,从而提高了泛化能力并获得了更稳定的训练。 在 Adam 中,权重衰减是通过在计算更新之前增强梯度来间接实现的。然而,由于 Adam 使用自适应学习率,这会导致不同参数之间的衰减强度不一致。AdamW 通过将权重衰减与梯度更新分离来解决这个问题。它在参数更新步骤之后显式地减去一部分权重,从而确保所有参数都获得均匀的衰减效果。 通过将权重衰减直接应用于权重,AdamW 确保了正则化效果的稳定性和可预测性。这可以防止在带 L2 正则化的 Adam 中出现的意外权重增长,并能更有效地控制过拟合。因此,与使用朴素 L2 正则化的 Adam 相比,使用 AdamW 训练的模型往往能更好地泛化,所需的超参数调整也更少。AdamW 在标准 Adam 更新之后将权重衰减直接应用于权重 θ←θ−η⋅AdamUpdate(∇L) θ←θ(1−ηλ) 为什么带 L2 正则化的 Adam 效果不佳L2 正则化通常用于通过惩罚大权重来防止过拟合,鼓励参数更小且更易于泛化。在标准的随机梯度下降 (SGD) 中,L2 正则化直接应用于权重,确保了持续的收缩效果。然而,在 Adam 中,L2 正则化的整合方式使其效果大打折扣。 主要问题源于 Adam 应用权重衰减的方式。Adam 不是在每次更新步骤中直接减去一部分权重,而是通过在计算更新之前添加权重衰减项来修改梯度。由于 Adam 使用对每个参数都不同的自适应学习率,这种间接应用权重衰减会导致不同权重之间的正则化强度不一致。某些参数会经历更强的衰减,而其他参数则经历更弱的衰减,从而产生不可预测的效果。 此外,Adam 的类似动量的更新会干扰 L2 正则化。由于 Adam 维护着过去梯度的移动平均值,因此这些累积的更新会扭曲正则化效果。这有时会导致权重幅度增加而不是减小,这与权重衰减的目的相悖。因此,使用 Adam 和朴素 L2 正则化训练的模型最终往往会比预期的具有更大的权重,从而导致泛化能力差和过拟合风险增加。 为了解决这个问题,AdamW 被引入,它通过将权重衰减与梯度更新分离来正确地应用权重衰减。AdamW 不是修改梯度,而是在每次更新步骤之后直接从权重中减去权重衰减项。这确保了所有参数都具有一致的衰减效果,从而提高了泛化能力和训练稳定性。 以下是 AdamW 优越的原因:正确的权重衰减应用 AdamW 通过在更新步骤之后减去一部分权重来有效地应用权重衰减,而不是修改梯度。这确保了权重衰减按预期工作,从而实现了更稳定和可预测的正则化。 跨参数的一致正则化 与 Adam 和 L2 正则化不同,后者中的自适应学习率会扭曲不同参数的衰减强度,AdamW 会统一应用权重衰减。这可以防止某些参数经历过度衰减,而另一些参数则获得太少。 提高泛化性能 通过确保权重衰减始终得以实施,AdamW 可以防止意外的权重增长,并更好地控制过拟合。这使得模型能够很好地泛化到看不见的数据,降低了测试时性能不佳的风险。 更稳定的训练动态 AdamW 避免了权重衰减与 Adam 的基于动量的更新之间的不良交互。这带来了更平滑的训练曲线、更快的收敛速度以及对超参数调整的敏感度降低。 更简单有效的正则化 由于 AdamW 直接应用权重衰减,因此无需单独微调学习率和权重衰减系数即可获得适当的正则化。与朴素 L2 正则化的 Adam 相比,这使其在实践中更易于使用。 通过解决 Adam 的 L2 正则化方法中的不一致性,AdamW 提供了一种更可靠的优化方法,提高了训练稳定性和泛化能力。 结论AdamW 是 Adam 与 L2 正则化相比的一个简单但非常有效的改进。通过正确地将权重衰减与梯度更新分离,AdamW 确保了权重正则化按预期工作,从而提高了泛化能力并获得了更稳定的训练。鉴于其优势,它已成为许多现代深度学习框架和架构中的默认选择。 下一主题数据工程分析师 |
我们请求您订阅我们的新闻通讯以获取最新更新。