adam算法效果差原因_信电学院本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR领域主席赞不绝口...
晓查 乾明 发自 凹非寺
量子位 报道 | 转自公众号 QbitAI
两位学霸本科生,一位来自浙大,一位来自北大。
他们在实习期间,研究出一种新的AI算法,相关论文已经被人工智能顶级会议ICLR 2019收录,并被领域主席赞不绝口,完全确定建议接收。
在这篇论文中,他们公布了一个名为AdaBound的神经网络优化算法,简单地说,这个算法训练速度比肩Adam,性能媲美SGD。
这个算法适用于CV、NLP领域,可以用来开发解决各种流行任务的深度学习模型。而且AdaBound对超参数不是很敏感,省去了大量调参的时间。
两位本科生作为共同一作的这篇论文,也在Reddit上引发了热赞,作者本人也在这个论坛上展开了在线的答疑交流。
AdaBound已经开源,还放出了Demo。
AdaBound是什么
AdaBound结合了SGD和Adam两种算法,在训练开始阶段,它能像Adam一样快速,在后期又能像SGD一样有很好的收敛性。
SGD(随机梯度下降)算法历史悠久,它是让参数像小球滚下山坡一样,落入山谷,从而获得最小值。
但它最大的缺点是下降速度慢(步长是恒定值),而且可能会在沟壑的两边持续震荡,停留在一个局部最优点。
Adam(自适应矩估计)就是为了提高训练速度而生的。它和自适应优化方法AdaGrad、RMSProp等一样,通过让小球在更陡峭的山坡上下降,速率加快,来更快地让结果收敛。
虽然Adam算法跑得比SGD更快,却存在两大缺陷:结果可能不收敛、可能找不到全局最优解。也就是说它的泛化能力较差,在解决某些问题上,表现还不如SGD。
而造成这两大缺陷的原因,可能是由于不稳定和极端的学习率。
AdaBound是如何解决这个问题的?
它给学习率划出动态变化的界限,让实现从Adam到SGD的渐进和平滑过渡,让模型在开始阶段有和Adam一样快的训练速度,后期又能保证和SGD一样稳定的学习率。
这种思路是受到2017年Salesforce的研究人员的启发。他们通过实验发现,Adam后期的学习率太低影响了收敛结果。如果控制一下Adam的学习率的下限,实验结果会好很多。
对学习率的控制就和梯度裁剪差不多。在防止梯度爆炸问题上,我们可以剪掉大于某个阈值的梯度。同样的,我们也可以剪裁Adam学习率实现AdaBound。
在上面的公式中,学习率被限制在下限 η? 和上限 η?之间。当η? = η? = α时,就是SGD算法;当η?=0、 η? =∞时,就是Adam算法。
为了实现从Adam到SGD的平滑过渡,让η? 和 η?变成随时间变化的函数:η? 递增从0收敛到α,η?从∞递减收敛到α。
在这种情况下,AdaBound开始时就像Adam一样训练速度很快,随着学习率边界越来越受到限制,它又逐渐转变为SGD。
AdaBound还有个非常大的优点,就是它对超参数不是很敏感,省去了大量调参的时间。
实验结果
作者分别对不同模型进行实验,比较了Adam与业界流行方法SGD,AdaGrad,Adam和AMSGrad在训练集和测试集上的学习曲线。
以上结果证明了AdaBound确实有比SGD更快的训练速度。
在LSTM上的实验则证明Adam更好的泛化能力。Adam算法在该实验条件下没有收敛到最优解,而AdaBound和SGD算法一样收敛到最优解。
上图中,还无法完全体现AdaBound算法相比SGD的在训练速度上的优点,但AdaBound对超参数不敏感,是它相比SGD的另一大优势。
但使用AdaBound不代表完全不需要调参,比如上图中α=1时,AdaBound的表现很差,简单的调整还是需要的。
目前实验结果的测试范围还比较小,评审认为论文可以通过更大的数据集,比如CIFAR-100,来获得更加可信的结果。
Reddit网友也很好奇AdaBound在GAN上的表现,但作者表示自己计算资源有限,还没有在更多的模型上测试。希望在开源后有更多人验证它的效果。
自己动手
目前作者已经在GitHub上发布了基于PyTorch的AdaBound代码。
它要求安装Python 3.6或更高版本,可以用pip直接安装:
pip install adabound
使用方法和Pytorch其他优化器一样:
optimizer = adabound.AdaBound(model.parameters(), lr=1e-3, final_lr=0.1)
作者还承诺不久后会推出TensorFlow版本,让我们拭目以待。
学霸本科生
这项研究的共同一作,是两位学霸本科生。他们在滴滴实习的时候一起完成了这项研究。
其中一位名叫熊远昊,就读于浙江大学信电学院,今年大四。
另一位名叫骆梁宸,就读于北京大学地球与空间科学学院,今年也是大四。
熊远昊
熊远昊现在是浙江大学信电学院信息工程专业的大四学生,同样是学霸级人 物,三年综合成绩排名年级第一。
到目前为止他已经取得Wisconsin-Madison和Penn State cs专业的phd offer,同时也获得了ucsd和umich ece专业的MS offer。
在发表这篇ICLR论文之前,他还以第二作者身份在通信领域的权威期刊上发表过论文1篇。
此外,论文还有一位作者,是南加州大学的副教授Yan Liu。
如果,你对他们的研究感兴趣,请收好下面的传送门:
论文:
ADAPTIVE GRADIENT METHODS WITH DYNAMIC BOUND OF LEARNING RATE
https://openreview.net/pdf?id=Bkg3g2R9FX
论文评审页面:
https://openreview.net/forum?id=Bkg3g2R9FX
GitHub地址:
https://github.com/Luolc/AdaBound
Reddit讨论地址:
https://www.reddit.com/r/MachineLearning/comments/auvj3q/r_adabound_an_optimizer_that_trains_as_fast_as/
— 完 —
adam算法效果差原因_信电学院本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR领域主席赞不绝口...相关推荐
- 中国学霸本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR领域主席赞不绝口
晓查 乾明 发自 凹非寺 量子位 报道 | 公众号 QbitAI 两位学霸本科生,一位来自北大,一位来自浙大. 他们在实习期间,研究出一种新的AI算法,相关论文已经被人工智能顶级会议ICLR 201 ...
- 中国学霸本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR领域主席赞不绝口...
晓查 乾明 发自 凹非寺 量子位 报道 | 公众号 QbitAI 两位学霸本科生,一位来自北大,一位来自浙大. 他们在实习期间,研究出一种新的AI算法,相关论文已经被人工智能顶级会议ICLR 201 ...
- adam算法效果差原因_干货|快来get中央空调冬天制热效果差的十大原因!
作为调节室内温度的重要电器,中央空调在人们的生活中扮演着至关重要的角色.目前,市场上许多中央空调都是冷暖两用型,每到冬季,绝大部分家用中央空调都被纷纷派上用场:然而,有些用户在使用空调制热时,会十分惊 ...
- adam算法效果差原因_深度学习优化器-Adam两宗罪
在上篇文章中,我们用一个框架来回顾了主流的深度学习优化算法.可以看到,一代又一代的研究者们为了我们能炼(xun)好(hao)金(mo)丹(xing)可谓是煞费苦心.从理论上看,一代更比一代完善,Ada ...
- adam算法效果差原因_电缆耐高温套管使用效果差的原因有哪些?
电缆耐高温套管是高温区域缆线防护的一种常用产品,防护效果好,因此其使用频率非常高.但是在实际应用中,也会出现使用效果差的现象,那么是为什么呢?昂拓总结如下几点: 产品质量不达标.电缆耐高温套管在市场上 ...
- adam算法效果差原因_冷库制冷效果差原因
冷库常见的现象有冷库温度降不下来和下降缓慢的时候,现在对库温下降缓慢的原因简单分析: 1.冷库工程由于隔热或密封性能差,导致冷量损耗大 隔热性能差是由于管道.库房隔热墙等的保温层厚度不够,隔热和保温效 ...
- 拯救渣画质,马赛克图秒变高清,杜克大学提出AI新算法
作者 | 神经小兮 来源 | HyperAI超神经(ID: HyperAI) 导语:将「马赛克」像素级别的大头照转换成高清照片,是一种怎样的体验?杜克大学提出的 AI 算法,不仅可以「去掉马赛克」,还 ...
- 温州大学计算机学院-浙江大学信电学院联合招收博士后研究人员招聘启事
浙江大学 浙江大学是一所特色鲜明.在海内外有较大影响的综合型.研究型.创新型大学,学科涵盖哲学.经济学.法学.教育学.文学.历史学.艺术学.理学.工学.农学.医学.管理学.交叉学科等13个门类,设有7 ...
- 浙大计算机系 信电系,奇崛之路——浙江大学信电学院2018年成绩盘点
原标题:奇崛之路--浙江大学信电学院2018年成绩盘点 2018年是孕育的一年,一篇国际合作高水平论文登上2019Nature首刊:2018年是充实的一年,6位高层次人才倾力加盟:2018年是突进的一 ...
最新文章
- 15 个让新手爱不释手的 Python 高级库
- AJPFX关于collection总结
- linux语言 翻译工具,Linux文本转语音工具eSpeak介绍
- 清华90后博士后万蕊雪:科研这场马拉松,我会一直跑下去
- Unity Excel转json且自动生成C#脚本
- 瑞星千万巨款贿赂官员 制造冤狱铲除竞争对手图片
- 赛特斯艰难上市,“软件定义通信”的路并不好走
- Logic Synthesis And Verification Algorithms Gary D. Hachtel Fabio Somenzi 第十章
- 对于气缸型号表示的内容与与含义说明
- 向Linux增加一个系统调用或内核模块
- 职教云助手手机版_职教云app下载安装_职教云最新版本下载网址
- Vue + ElementUI 实现后台管理系统模板 -- 前端篇(四):定义主页面
- 分享几个常做甘特图的软件
- 纯Ubuntu系统重新安装为纯Windows10系统方法
- OKR考核体系使用的分析
- 关于stm32单片机低功耗的实现和唤醒
- 大学生职业生涯规划计算机科学与,计算机科学与技术专业大学生职业生涯规划书...
- python 爬取某乎某选全部内容
- Ext JS 6.7 中文文档:应用架构介绍(MVC/MVVM)
- metinfo 添加css,米拓7.1如何引入css和js
热门文章
- 【Flink】Flink on yarn 支持指定 application id 吗? yarn.application.id
- 95-38-045-Buffer-UnpooledByteBuf
- 95-36-100-ChannelHandler-ChannelOutboundHandler
- 【elasticsearch】elasticsearch 7 index.lifecycle.rollover_alias does not point to index
- 【clickhouse】clickhouse 的 数据类型
- 【kafka】Kafka JMX监控报错 Failed to get broker metrics for BrokerIdentity
- 《KyLin学习理解》-01-KyLin麒麟的简介及其思想
- 这样讲 Netty 中的心跳机制,还有谁不会?
- 交公粮了,我经常逛的技术网站,你最爱哪个?
- JVM 史上最最最完整深入解析(12000 字总结)