💪 专业从事且热爱图像处理,图像处理专栏更新如下👇:
📝《图像去噪》
📝《超分辨率重建》
📝《语义分割》
📝《风格迁移》
📝《目标检测》
📝《图像增强》
📝《模型优化》
📝《模型实战部署》
📝《图像配准融合》
📝《数据集》
📝《高效助手》
Adam 和 AdamW 是两种常用的优化器,它们都是基于梯度下降算法的优化器,用于训练神经网络。它们之间的主要区别在于权重衰减(Weight Decay)的处理方式。
目录
一、Adam(Adaptive Moment Estimation)
1.1 更新规则
m = beta1*m + (1-beta1)*grad
v = beta2*v + (1-beta2)*(grad**2)
theta = theta - learning_rate * m / (sqrt(v) + epsilon)
可以看到,对权重衰减项没有特别的处理。
1.2 权重衰减处理
在原始的Adam优化器中,权重衰减(weight decay)是在梯度更新中直接应用的,它等价于在损失函数中添加了一个L2正则化项,用于减小权重的幅度。这意味着权重衰减对所有权重参数都是一样的。
1.3 动量处理
Adam使用了动量来加速梯度下降,它引入了两个动量参数β₁(用于一阶矩估计)和β₂(用于二阶矩估计)。这些动量参数决定了过去梯度的影响程度。
1.4 超参数调整
Adam的超参数(如学习率、β₁、β₂等)通常需要进行调整,以获得最佳性能。
二、AdamW(Adam with Weight Decay Fix)
2.1 更新规则
AdamW 在Adam式的基础上,对 m 项加入了权重衰减项的计算:
m = beta1*m + (1-beta1)*(grad + lambda*theta)
v = beta2*v + (1-beta2)*(grad**2)
theta = theta - learning_rate * m / (sqrt(v) + epsilon)
这里 lambda 是权重衰减系数。
这相当于在梯度之外,额外考虑了一个 L2 范数正则化目标。这样可以更好地减小权重参数值,提高模型的泛化能力。
2.2 权重衰减处理
AdamW是对Adam的改进,它将权重衰减与梯度更新分开处理。具体来说,权重衰减只应用于权重参数,而不应用于偏置参数。这是通过在损失函数中添加一个额外的L2正则化项来实现的,而不是直接应用于梯度更新。
2.3 动量处理
AdamW仍然使用动量,与Adam一样,它使用β₁和β₂参数来调整动量的影响。
2.4 超参数调整
与Adam类似,AdamW的超参数(如学习率、β₁、β₂等)也需要进行调整,以获得最佳性能。
三、总结
AdamW的改进主要在于更好地处理了权重衰减。这有助于避免权重衰减对偏置参数的不必要影响,因此可以提高模型的训练效果。然而,选择使用哪种优化器取决于具体的任务和模型,通常需要进行实验来确定哪种优化器最适合你的情况。
感谢您阅读到最后!😊总结不易,多多支持呀🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖
关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!