#深入探究# Adam和SGDM优化器的对比

72 篇文章 12 订阅
订阅专栏
31 篇文章 3 订阅
订阅专栏
23 篇文章 11 订阅
订阅专栏

常用优化器的详细解析请参考此文章:

  1. 通俗理解 Adam 优化器
  2. #深度解析# 深度学习中的SGD、BGD、MBGD、Momentum、NAG、Adagrad、Adadelta,RMSprop、Adam优化器

文章目录

  • 1. Adam 和 MSGD
  • 2. SWATS
  • 3. Adam + warm-up
  • 4. Lookahead(k step forward,1 step back)
  • 5. AdamW 和 SGDWM
  • 6. SGDM 和 Adam 应用

1. Adam 和 MSGD

Adam和MSGD作为当今最优秀的两种深度学习优化器,分别在效率和精度上有着各自的优势,下面我们将分析两种优化器各自优势的原因,两边的两张图分别是 几种常见的优化器在猫狗分类数据集上的分类准确率曲线,第一个是训练集,第二个是测试集
在这里插入图片描述
在这里插入图片描述
以下两张图是某个NLP任务中,几种模型的准确率和困惑度指标变换曲线
在这里插入图片描述

在这里插入图片描述

通过上边两幅图片可知:

  1. Adam在训练集上的准确率较高,MSGD在测试集上的准确率较高
  2. Adam的速度更快,但MSGD能够得到好的效果

第一个结论可以用下边这个图来解释:
在这里插入图片描述
虽然测试集和训练集都来自同一数据集,但是测试集和训练集在数据分布上还是有着些许偏差(或者说参数的最优值存在细微偏差);同一个损失函数可能包含多个最优解,而这些最优解又可以分为 Flat Minimum 和 Sharp Minimum,其中测试集和训练集上 Flat Minimum 重合的几率较大,Sharp Minimum 重合的几率较小(如上图所示);因此在训练集上得到的是 Flat Minimum,那么在测试集也能得到 Minimum 值得概率会很大,我们要尽可能的得到 Flat Minimum

Adam 得到最优解多数时候是 Sharp Minimum,而 MSGD 得到往往是Flat Minimum,这也就解释了为什么MSGD在测试集上能够得到更好的效果

至于第二个结论,原因是 Adam 在 MSGD的基础上增加了自适应学习率机制,能够使Adam针对不同的参数分配不同的学习率,从而增加优化速度

2. SWATS

通过上述分析我们得知,Adam在前期优化速度较快,SGDM在后期优化精度较高;SWATS算法在提出在前期使用Adam算法,后期使用SGDM算法,从而在保证算法精度的同时,提高了算法的速度,但此算法存在两个问题:何时切换和如何切换两种算法,因为原作者并并没有针对这两个问题给出确切的解决方案,因此SWATS算法的应用并不是很广泛
在这里插入图片描述

3. Adam + warm-up

首先我们看一下Adam 在使用 warm-up前后的区别。
下图横轴代表模型中参数中梯度的绝对值大小,纵轴代表迭代次数,高度代表当前迭代次数下当前梯度大小的参数数量
在这里插入图片描述
通过上图可知,没有使用warm-up的Adam算法,在算法初期(图二)梯度大小分布较为复杂(梯度数值跨度较大),而使用warm-up的Adam梯度值分布较为集中

4. Lookahead(k step forward,1 step back)

Lookahead(k step forward,1 step back)本质上是一种在各种优化器上层的一种优化器方法,内部可以使用任何形式的优化器,用作者的话说就是:universal wrapper for all optimizers
Lookahead 的就是:没使用优化器向前走k步,就对当前的第1步和第k步做一个加权平均(忽略中间的k-2步);以下图为例,蓝色线是优化器走的k步路径,然后将蓝线的起始点连接(图中红线),然后在红线上取一点作为k+1步的值(根据 α 而定)

在这里插入图片描述
Lookahead 的伪代码如下:
在这里插入图片描述
其中 optim() 为任意优化器得到的值

5. AdamW 和 SGDWM

在神经网络中,为了提高网络的泛化性我们一般会在损失函数中增加 L2 正则,这种网络使用Adam和SGDM优化器会出现问题

下图是三种优化器计算权重更新值的过程(损失函数中包含L2正则):
在这里插入图片描述
我们得到的 m t m_t mt v t v_t vt都多出了一个 γ θ t − 1 γθ_{t-1} γθt1,为了解决这个问题,2017年提出了 AdamW 和 SGDWM 优化器,这两种优化器将 γ θ t − 1 γθ_{t-1} γθt1 放到了 m t m_t mt v t v_t vt 外,AdamW 和 SGDWM 优化器的公式如下:
在这里插入图片描述
注:著名的Bert模型(PyTorch)中使用的 Adam优化器就是 AdamW优化器

6. SGDM 和 Adam 应用

SGDM 和 Adam 应用请参考下表:
在这里插入图片描述

AdamOptimizer和随机梯度下降法SGD区别
湾区人工智能
06-25 9075
Adam 这个名字来源于adaptive moment estimation,自适应矩估计,如果一个随机变量 X 服从某个分布,X 的一阶矩是 E(X),也就是样本平均值,X 的二阶矩就是 E(X^2),也就是样本平方的平均值。Adam 算法根据损失函数对每个参数的梯度的一阶矩估计和二阶矩估计动态调整针对于每个参数的学习速率。TensorFlow提供的tf.train.AdamOptimize...
tensorflow2 5种优化器 SGD,SGDM,ADAGRAD,RMSPROP,ADAM 在鸢尾花数据集中的对比.docx
05-01
tensorflow2 5种优化器 SGD,SGDM,ADAGRAD,RMSPROP,ADAM 在鸢尾花数据集中的对比,word 文档。
各种优化器及其优缺点(SGD,RMSProp,Adam及其变种)
最新发布
samoyan的博客,记录技术成长~
04-29 1678
其中,θ_t是第t步的参数,α是学习率,∇f(θ_{t-1})是损失函数在第t-1步的梯度,r_t是第t步的平方梯度的移动平均值,β是衰减系数,ε是防止除0错误的小常数。其中,m_t和v_t分别是一阶矩和二阶矩的指数移动平均值,β1和β2是衰减系数,α是学习率,λ是权重衰减系数,ε是防止除0错误的小常数。其中,θ_t是第t步的参数,α是学习率,∇f(θ_{t-1})是损失函数在第t-1步的梯度,v_t是第t步的速度,γ是动量参数。动量优化的另一个缺点是可能会导致优化过程在某些方向上过快,从而跳过最优解。
优化器SGDAdam和AdamW的区别和联系
weixin_44902604的博客
02-18 5793
优化器是用来更新和计算影响模型训练和模型输出的网络参数,使其逼近或达到最优值,从而最小化(或最大化)损失函数。
SGD优化器Adam区别
胭脂草的ABC博客
03-25 927
综上所述,选择哪种优化器取决于具体任务的需求,包括计算资源、收敛速度、鲁棒性以及对超参数调整的容忍度。
SGDAdam,AdamW,LAMB优化器
flyingluohaipeng的博客
03-31 6836
BERT 预训练包括两个阶段:1)前 9/10 的训练 epoch 使用 128 的序列长度,2)最后 1/10 的训练 epoch 使用 512 的序列长度。优化器是用来更新和计算影响模型训练和模型输出的网络参数,使其逼近或达到最优值,从而最小化(或最大化)损失函数。优点: 简单性,在优化算法中没有太多的参数需要调整,通过少量的计算量就可以获得比较好的结果。为预先设定的超参数,分别代表参数调整的下界和上界。这一简单的调整所带来的实际效果非常显著。随机梯度下降是最简单的优化器,它采用了简单的梯度下降法,
深度学习Adam与SGD优化器的选择
rocking_struggling的博客
02-13 2579
发现若监督优化器的算法很多都采用SGD,选择Adam反而效果不好,所以这里学习了两者的区别
sgd,adam和adagrad哪个好
weixin_42596011的博客
01-19 692
SGDAdam和Adagrad都是梯度下降优化算法,它们都可以用来训练神经网络。这三种算法的主要区别在于它们对学习率的调整方式不同。 SGD(随机梯度下降)是最简单的优化算法,它每次仅使用一个样本来更新参数。 Adam是SGD的变种,它除了使用动量项来提高收敛速度外,还使用了类似于RMSProp的变量来调整学习率Adagrad是一种自适应学习率优化方法,它通过调整每个参数的学习率来提高收敛...
优化器笔记-大毛.zip
11-07
优化器演化流程:SGD -> SGDM -> NAG ->AdaGrad -> RMSProp/AdaDelta -> Adam -> Nadam 这样的发展历程,下面逐一介绍每个公式,不用担心公式看不懂,都是围绕上述1,2,3,4个公式带入动量参数既是优化公式。
Matlab代码,里面包括五种常见神经网络优化算法的对比 包括SGDSGDMAdagrad、AdaDelta、Adam
03-02
SGDSGDMAdagrad、AdaDelta 和 Adam 的简介: SGD(Stochastic Gradient Descent,随机梯度下降)是神经网络中最基本的优化算法之一。它通过随机选择一小部分样本进行训练,并基于这些样本的梯度来更新模型参数...
五种常见Matlab神经网络优化算法的对比(包括SGDSGDMAdagrad、AdaDelta、Adam).zip
04-15
数学建模备赛、学习资料 数学建模大赛赛题、解决方案资料,供备赛者学习参考!数学建模大赛赛题、解决方案资料,供备赛者学习参考!数学建模大赛赛题、解决方案资料,供备赛者学习参考!数学建模大赛赛题、解决...
安川SGDM型伺服用户手册.pdf
06-03
安川2系列电机的驱动器手册
这是一个Matlab代码,里面包括五种常见神经网络优化算法的对比。包括SGDSGDMAdagrad、AdaDelta
08-20
matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接...
安川伺服驱动器-CN3串口通信(中文)-综合文档
05-23
安川伺服驱动器-CN3串口通信(中文)
安川SGDM说明书
10-22
安川SGDM说明书
【机器学习】优化器Adam
奥古斯都
05-30 7209
上一个章节说了SGD和动量版本的SGD,这个优化算法目前也是比较常用的一个优化算法,但是它还是存在一些问题的,因此后面又出了几个不同的算法,比如AdaGrad、RMSProp、Adam等算法。
Adam 优化器
热门推荐
m0_50534425的博客
05-23 3万+
深度学习中的神经网络优化。它结合了RMSProp和Momentum两种优化算法的思想,并且对参数的更新进行了归一化处理,使得每个参数的更新都有一个相似的量级,从而提高训练效果。具体来说,Adam优化器定义了两个指数加权平均值:第一个指数加权平均值是梯度的指数加权平均值,第二个指数加权平均值是梯度的平方的指数加权平均值。1.自适应调整学习率Adam 优化器可以根据历史梯度信息来自适应地调节学习率,使得在训练初期使用较大的学习率,能够快速收敛,在训练后期使用较小的学习率,能够更加准确地找到损失函数的最小值。
SGD、Momentum、AdaGrad、RMSProp和Adam的区别
m0_50833438的博客
09-14 710
SGD是最基本的优化算法之一。它通过在每次迭代中计算损失函数关于权重的梯度(对一小批量训练样本),然后沿着梯度的反方向来最小化损失。
sgdm优化器adam优化器对比图代码
11-12
以下是使用TensorFlow 2在鸢尾花数据集上比较SGDM优化器Adam优化器的代码和结果: ...运行上述代码后,将会得到一个准确率变化曲线的图表,该图表将SGDM优化器Adam优化器的训练过程中准确率的变化进行了对比。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 通俗理解 什么是量纲 48273
  • #从源头解决# 自定义头文件在VS上出现“无法打开源文件“XX.h“的问题 46194
  • #最全面# VS 出现 无法打开 iostream 的错误 25695
  • linux下启动 nginx 提示 ‘Welcome to CentOS...’ 18999
  • #从根本解决# uwsgi --ini uwsgi.ini 无法绑定端口 18174

分类专栏

  • 概率基础 12篇
  • 机器学习 72篇
  • NLP 23篇
  • 深度学习 31篇
  • Pytorch 3篇
  • 数据结构 4篇
  • 集成学习 1篇
  • Pyqt5 10篇
  • 环境配置 17篇
  • python编程 65篇
  • linux编程 24篇
  • django 19篇
  • html 10篇
  • opencv 2篇
  • Pycharm 5篇
  • 爬虫 4篇
  • 成果分享 1篇
  • c++混合编程 4篇
  • Python语法糖 2篇
  • VS配置问题 3篇
  • c++ 6篇
  • TensorFlow 24篇
  • 经典算法 1篇
  • 网络编程 5篇
  • MongoDB 1篇
  • 云服务器 9篇
  • eeglab 1篇
  • matlab算法 2篇
  • matlab编程 2篇
  • mysql 5篇
  • nginx 9篇
  • javascript 4篇
  • Git 8篇
  • Github 6篇
  • Redis 2篇
  • docker 4篇
  • 速查资料 5篇
  • 多线程 1篇
  • pipenv 2篇
  • 域名设置 1篇
  • 个人博客 1篇
  • 远程仓库 1篇
  • vscode 1篇
  • cell 1篇
  • 元胞 1篇

最新评论

  • #最全面# VS 出现 无法打开 iostream 的错误

    2301_80091817: 哭了,看不懂,有没有详细一点的,而且找不到vs之前下载的路径怎么办

  • Pyqt 使用 QButtonGroup的 buttonClicked 信号,返回 PyQt5.QtWidgets.QRadioButton 对象

    Brian.Tang: 大佬,请问你在哪看到的源码,我想看下源码,发现被编译为pyd文件

  • 通俗理解 Adam 优化器

    林声声: 你好,请问公式来源于哪里呀,有链接吗

  • #根本上解决# 使用 Pyinstaller 打包后 出现 lib not found 错误

    Matcha芥末酱: 其实没有解决问题,很难给你一个赞

  • #深度解析# 深度学习中的SGD、BGD、MBGD、Momentum、NAG、Adagrad、Adadelta,RMSprop、Adam优化器

    丝诺温忒: 能不能注释下公式里符号都是啥啊?

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 对 Relu激活函数导致 [ 神经元死亡 ] 的理解
  • #深入理解# 线性回归中的“线性”、以及最小二乘和梯度下降的理解
  • #浅谈# 构造哈夫曼树
2021年85篇
2020年101篇
2019年10篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

energy_百分百

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码坂田seo优化观澜网站优化按天扣费观澜seo网站推广盐田设计公司网站坪山网站优化南联网站推广工具横岗优秀网站设计南联SEO按天计费龙岗seo网站推广龙华网站seo优化松岗网站关键词优化坑梓百度seo光明百搜标王坂田网站优化按天计费惠州网站制作松岗网络营销丹竹头网站制作大运建网站罗湖网站改版西乡网站开发广州SEO按天计费吉祥关键词排名包年推广坪山外贸网站设计坂田网站搜索优化南山网站推广方案大浪seo优化塘坑网站关键词优化光明网站搜索优化双龙seo网站推广松岗百度爱采购歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化