提出
AdamW 算法是由 Ilya Loshchilov 和 Frank Hutter 提出的。这一算法的详细描述和原理可以在论文《Decoupled Weight Decay Regularization》中找到,该论文发表于 2017 年
在论文中,作者指出了传统 Adam 算法在权重衰减(weight decay)方面的一些问题,并提出了 AdamW 作为解决方案。AdamW 通过将权重衰减从梯度更新中解耦,从而在每次迭代中更有效地应用权重衰减。这种方法在实践中被证明可以提高模型的收敛速度和泛化能力
AdamW 算法的原理
AdamW 优化器是在 Adam 优化器的基础上进行了改进,主要解决了在 Adam 中使用权重衰减(Weight Decay)时的问题。在标准的 Adam 优化器中,权重衰减是直接加到梯度上的,但在 AdamW 中,权重衰减是以不同的方式应用的,它直接作用在参数更新上
更新公式如下:
- 初始化一阶矩估计(动量) 和二阶矩估计(梯度平方的移动平均) 为 0,以及时间步长
- 在每次迭代中,计算梯度
- 更新一阶矩估计 和二阶矩估计 :
- 计算偏差修正的一阶矩估计 和二阶矩估计 :
- 更新参数 ,这里 是权重衰减系数:
在 AdamW 中,权重衰减 是乘以学习率 后从参数中减去的,而不是加到梯度上。这种方法被认为可以更好地控制模型的复杂度,防止过拟合,并且在许多情况下可以提高模型的性能
在实际应用中,选择 AdamW 或其他优化器通常取决于具体任务的需求以及对算法性能的实验评估
AdamW 算法的主要特点
AdamW(Adam with Weight Decay)是一种流行的优化算法,它在原始的 Adam 算法基础上进行了改进,特别是在处理权重衰减(Weight Decay)方面
优点:
- 改进的权重衰减处理:AdamW 通过将权重衰减应用于参数更新步骤,而不是梯度计算步骤,解决了原始 Adam 算法在处理权重衰减时的问题。这种方法使得权重衰减的效果更加一致和有效
- 减少过拟合:权重衰减是一种正则化技术,有助于减少模型的过拟合。AdamW 通过合理地应用权重衰减,可以提高模型的泛化能力
- 保持动量和自适应学习率的优点:AdamW 保留了 Adam 算法的动量(Momentum)和自适应学习率(AdaGrad)的优点,这有助于加速收敛并适应不同的参数更新需求
缺点:
- 超参数调整:AdamW 引入了额外的超参数(如权重衰减系数),这可能需要更多的调参工作来找到最优的超参数组合
- 对学习率的敏感性:AdamW 对学习率的选择可能比 SGD 等其他优化器更敏感,不恰当的学习率设置可能导致训练效果不佳