每天3分钟,彻底弄懂神经网络的优化器(十一)AdamW

news2024/10/22 4:47:59

1. AdamW算法的提出

AdamW算法是由Ilya Loshchilov和Frank Hutter提出的。这一算法的详细描述和原理可以在论文《Decoupled Weight Decay Regularization》1中找到,该论文发表于2017年。在论文中,作者指出了传统Adam算法在权重衰减(weight decay)方面的一些问题,并提出了AdamW作为解决方案。AdamW通过将权重衰减从梯度更新中解耦,从而在每次迭代中更有效地应用权重衰减。这种方法在实践中被证明可以提高模型的收敛速度和泛化能力。

2. AdamW算法的原理

AdamW优化器是在Adam优化器的基础上进行了改进,主要解决了在Adam中使用权重衰减(Weight Decay)时的问题。在标准的Adam优化器中,权重衰减是直接加到梯度上的,但在AdamW中,权重衰减是以不同的方式应用的,它直接作用在参数更新上。

AdamW的更新公式如下:

  1. 初始化一阶矩估计(动量) m 0 m_0 m0 和二阶矩估计(梯度平方的移动平均) v 0 v_0 v0 为0,以及时间步长 t = 1 t=1 t=1

  2. 在每次迭代中,计算梯度 g t g_t gt

  3. 更新一阶矩估计 m t m_t mt 和二阶矩估计 v t v_t vt

    m t = β 1 ⋅ m t − 1 + ( 1 − β 1 ) ⋅ g t m_t = \beta_1 \cdot m_{t-1} + (1 - \beta_1) \cdot g_t mt=β1mt1+(1β1)gt

    v t = β 2 ⋅ v t − 1 + ( 1 − β 2 ) ⋅ g t 2 v_t = \beta_2 \cdot v_{t-1} + (1 - \beta_2) \cdot g_t^2 vt=β2vt1+(1β2)gt2

  4. 计算偏差修正的一阶矩估计 m ^ t \hat{m}_t m^t 和二阶矩估计 v ^ t \hat{v}_t v^t

    m ^ t = m t 1 − β 1 t \hat{m}_t = \frac{m_t}{1 - \beta_1^t} m^t=1β1tmt

    v ^ t = v t 1 − β 2 t \hat{v}_t = \frac{v_t}{1 - \beta_2^t} v^t=1β2tvt

  5. 更新参数 θ \theta θ,这里 λ \lambda λ 是权重衰减系数:

    θ t = θ t − 1 − η ( m ^ t v ^ t + ϵ + λ θ t − 1 ) \theta_t = \theta_{t-1} - \eta \left( \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} + \lambda \theta_{t-1} \right) θt=θt1η(v^t +ϵm^t+λθt1)

在AdamW中,权重衰减 $ \lambda $ 是乘以学习率 $ \eta $ 后从参数中减去的,而不是加到梯度上。这种方法被认为可以更好地控制模型的复杂度,防止过拟合,并且在许多情况下可以提高模型的性能。

在实际应用中,选择AdamW或其他优化器通常取决于具体任务的需求以及对算法性能的实验评估.

3. AdamW算法的主要特点

AdamW(Adam with Weight Decay)是一种流行的优化算法,它在原始的Adam算法基础上进行了改进,特别是在处理权重衰减(Weight Decay)方面。以下是AdamW的优点和缺点:

优点:

  1. 改进的权重衰减处理:AdamW通过将权重衰减应用于参数更新步骤,而不是梯度计算步骤,解决了原始Adam算法在处理权重衰减时的问题。这种方法使得权重衰减的效果更加一致和有效;

  2. 减少过拟合:权重衰减是一种正则化技术,有助于减少模型的过拟合。AdamW通过合理地应用权重衰减,可以提高模型的泛化能力;

  3. 保持动量和自适应学习率的优点:AdamW保留了Adam算法的动量(Momentum)和自适应学习率(AdaGrad)的优点,这有助于加速收敛并适应不同的参数更新需求。

缺点:

  1. 超参数调整:AdamW引入了额外的超参数(如权重衰减系数),这可能需要更多的调参工作来找到最优的超参数组合;

  2. 对学习率的敏感性:AdamW对学习率的选择可能比SGD等其他优化器更敏感,不恰当的学习率设置可能导致训练效果不佳。
    请添加图片描述

参考

[1] DECOUPLED WEIGHT DECAY REGULARIZATION

欢迎关注我的GitHub和微信公众号,来不及解释了,快上船!

GitHub: LLMForEverybody

仓库上有原始的Markdown文件,完全开源,欢迎大家Star和Fork!

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2213721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初等数学几百年重大错误:将根本不是无穷集的真子集误为其真子集

黄小宁 【摘要】长为1的直线段形橡皮筋A拉长为长为2的橡皮筋B(可二等分),去掉拉力使B缩短成原来的A,A不是B的一半。同样可证直线段L均匀压缩变短为直线段D~L不能成为L的一部分。数学一直误以为D是L的一部分使康脱推出…

C/C++栈和队列

一.队列 结构定义 FIFO:队列是一个先进先出的数据结构; 只允许从队首出元素,从队尾入元素; head和tail所包含的区间是左闭开的; 入队操作 没用真实将一号元素删除,而是将head指针向后移动一位,进行逻辑上的删除; 出队操作 将新元素储存在队尾指针所在的位置,并将队尾指针…

二校区图书馆一楼《中华再造善本》很多

上两幅为同一本书的,有“太平之时嫌官小,离乱之时怕出征”这句 上两幅为同一本书的,为《水浒传》节选 二校区图书馆一楼满眼都是线装的古书《中华再造善本》 图书馆五楼 图书馆四楼,一个人躺在长沙发上 图书馆一楼的透明电梯

Intel Xeon(至强) 服务器 CPU

Purley平台:Sky Lake(第一代)、Cascade Lake(第二代) Whitley平台:Cooper Lake、Ice Lake(第三代) Eagle Stream平台:Sapphire Rapids、Emerald Rapids(第四…

Vite打包碎片化,如何化解?

背景 我们在使用Vite进行打包时,经常会遇到这个问题:随着业务的展开,版本迭代,页面越来越多,第三方依赖也越来越多,打出来的包也越来越大。如果把页面都进行动态导入,那么凡是几个页面共用的文…

RHCSA的学习(5)

一、文本内容处理命令 1、数据流和重定向 1、数据流 标准输入(standard input,简称stdin):默认情况下,标准输入指从键盘获取的输入标准输出(standard output,简称stdout)&#xff…

2020前端面试 - JavaScript2.0篇

前言: 个人觉得面试其实是一个自我学习的过程,如果说短时间内找不到工作,那一定是你面的还不够多,不要气馁,不要放弃,在心底告诉自己,下一次面试,再下一次面试,一定能够拿…

为什么inet_ntoa会返回错误的IP地址?

目录 1、调用inet_addr和inet_ntoa实现整型IP与点式字符串之间的转换 1.1、调用inet_addr将点式字符串IP转换成整型IP 1.2、调用inet_ntoa将整型IP转换成点式字符串IP 2、调用inet_ntoa返回错误点式字符串IP的原因分析 3、解决多线程调用inet_ntoa返回错误点式字符串IP的办…

在 Docker容器中安装 ROS-Melodic 并使用 rviz 进行图形化显示

文章目录 写在前面1. 背景描述2. 安装步骤2.1 允许本地机器上的用户或进程连接到 X server2.2 拉取 docker 镜像2.3 使用镜像osrf/ros:melodic-desktop-full创建并运行容器2.4 运行 roscore2.5 运行 rviz 参考链接 写在前面 自己的测试环境: Ubuntu20.04&#xff0…

基于SSM的微信小程序博客管理系统(博客1)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM的微信小程序博客管理系统实现与设计,实现了管理员与用户,管理员实现了用户管理、博文信息管理、博文类型管理、我的博文管理、个人名片分享管理、签到管理…

SAP S/4 HANA 销售返利

目录 1 简介 2 后台配置 3 主数据 4 业务操作 4.1 场景 1 - 返利应计 4.2 场景 2 - 最终结算 1 简介 在过去 SAP ECC 把“返利”功能集成在了 SD 模块当中,而 SAP S/4 HANA 把“返利”集成在了结算管理功能模块当中。究其原因,主要是 ECC “返利”…

深度解析LMS(Least Mean Squares)算法

目录 一、引言二、LMS算法简介三、LMS算法的工作原理四、LMS算法的特点五、LMS算法的应用场景六、LMS算法的局限性七、总结八、进一步探讨 一、引言 自适应滤波器是一种动态调整其参数以适应变化环境的信号处理工具,广泛应用于噪声消除、信道均衡和系统识别等领域。…

算法工程师重生之第二十五天(加油站 分发糖果 柠檬水找零 根据身高重建队列 )

参考文献 代码随想录 一、加油站 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。…

Mysql的Innodb的RR隔离级别到底有没有解决幻读问题?

InnoDB中的repeatable read这种隔离级别通过间隙锁MVCC解决了大部分的幻读问题,但是并不是所有的幻读都能解读,想要彻底解决幻读,需要使用Serializable的隔离级别。 MVCC解决幻读 在RC中,每次读取都会重新生成一个快照&#xff…

EDM平台排行榜与工具推荐

本文总结了EDM平台排行榜,包括ZohoCampaigns、Mailchimp等。各平台在集成性、自动化、模板库等方面各具优势,适合不同规模和需求的企业。选择适合的EDM平台对营销活动成功至关重要。 1. Zoho Campaigns 简介 Zoho Campaigns是Zoho的edm平台&#xff0c…

[LeetCode] 515. 在每个树行中找最大值

题目描述: 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 示例1: 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例2: 输入: root [1,2,3] 输出: [1,3]提示: 二叉树的节点个数的范围是 [0,10…

标准地图下载

官网,地图来源为中国地图出版社、国家基础地理信息中心 http://bzdt.ch.mnr.gov.cn/ 能够下载各个版本的中国地图 世界地图

python中的工具

一、Scapy Scapy是python语言编写的工具,也是一个强大的交付式数据包处理程序,能够伪造或者解码大量的网络协议数据包,能够发送、嗅探、剖析和伪造网络数据包,如端口扫描、路由跟踪、探测、攻击或网络发现等。 python3环境下&am…

2022年华为杯数学建模竞赛B题论文和代码

基于整数规划的方形件排样和组批优化问题研究 常见的板式产品如玻璃,PCB板,铝合金门窗等产品因其结构定制化程度高的特点,相关生产制造的企业往往采用“多品种小批量”的个性化生产模式。通过对客户订单的组批,预先规划好各个产品…

【2022统考真题】计算时间复杂度

目录 一、题目描述 二、思路分析 三、易错提醒 四、同级和嵌套的关系 一、题目描述 下列程序段的时间复杂度是&#xff08;&#xff09; int sum 0; for (int i 1; i < n; i * 2) for (int j 0; j < i; j) sum; A. O(logn) B. O(n) C. O(nlogn) D…