深度学习优化算法大全系列5:AdaDelta,RMSProp
1.AdaGrad的缺点
前面在讲到AdaGrad的时候,我们也提到了他的缺点:其梯度累积的历史是单调递增的,导致训练越往后期学习率越小,学习率是一个单调递减不可逆的过程。因此我们可以只关注一段时间内梯度的累积,而不用关心历史所有时间梯度的累积,这样可以使得学习率不会一直保持单调递减,也是AdaDelta算法中Delta的由来。
2.AdaDelta/RMSProp优化
AdaDelta/RMSProp算法,主要是通过一个衰减系数,来控制历史梯度对当前的影响。而指数移动的平均值,差不多是过去一段时间的平均值。因此二阶动量一段时间内的累积可以采用如下类似方式:
Vt=βVt−1+(1−β)gt2V_t = \beta V_{t-1} + (1- \beta) g_t ^ 2Vt=βVt−1+(1−β)gt2
通过以上改动,可以避免二阶动量一直累积单调递增,从而导致训练提前结束或者训练不充分的情况。
3.算法流程
假定初始参数为θ\thetaθ, 初始全局学习率ϵ\epsilonϵ,小常数δ\deltaδ主要为了数值计算稳定,一般可以取10−710^{-7}10−7
算法步骤:
初始化梯度历史累积r=0r=0r=0
如果不满足终止条件,如下步骤循环:
1.从训练集中采样m个样本x(1)x^{(1)}x(1), x(2)x^{(2)}x(2)…, x(m)x^{(m)}x(m),对应的标签为y(i)y^{(i)}y(i)。
2.计算当前梯度:g=▽θ∑iL(f(x(i);θ),y(i))g = \bigtriangledown_\theta \sum_i L(f(x^{(i)}; \theta), y^{(i)})g=▽θ∑iL(f(x(i);θ),y(i))
3.累积历史梯度的平方和: r=βr+(1−β)g⊙gr = \beta r + (1-\beta)g \odot gr=βr+(1−β)g⊙g
4.计算梯度更新:Δθ=ϵδ+r⊙g\Delta \theta = \frac {\epsilon}{\delta + \sqrt r} \odot gΔθ=δ+rϵ⊙g
5.更新参数:θ=θ−Δθ\theta = \theta - \Delta \thetaθ=θ−Δθ
从上面的算法流程不难看出,AdaDelta/RMSProp与AdaGrad的区别,其实就在第三步累积历史梯度的平方和,此时多了一个超参数β\betaβ,用来控制历史累积梯度对当前的影响程度。
深度学习优化算法大全系列5:AdaDelta,RMSProp相关推荐
- Adam 那么棒,为什么还对 SGD 念念不忘?一个框架看懂深度学习优化算法
作者|Juliuszh 链接 | https://zhuanlan.zhihu.com/juliuszh 本文仅作学术分享,若侵权,请联系后台删文处理 机器学习界有一群炼丹师,他们每天的日常是: 拿来 ...
- 2017年深度学习优化算法最新进展:如何改进SGD和Adam方法?
2017年深度学习优化算法最新进展:如何改进SGD和Adam方法? 深度学习的基本目标,就是寻找一个泛化能力强的最小值,模型的快速性和可靠性也是一个加分点. 随机梯度下降(SGD)方法是1951年由R ...
- 深度学习优化算法的总结与梳理(从 SGD 到 AdamW 原理和代码解读)
作者丨科技猛兽 转自丨极市平台 本文思想来自下面这篇大佬的文章: Juliuszh:一个框架看懂优化算法之异同 SGD/AdaGrad/Adam https://zhuanlan.zhihu.com/ ...
- 大梳理!深度学习优化算法:从 SGD 到 AdamW 原理和代码解读
作者丨知乎 科技猛兽 极市平台 编辑 https://zhuanlan.zhihu.com/p/391947979 本文思想来自下面这篇大佬的文章: Juliuszh:一个框架看懂优化算法之异同 ...
- 深度学习优化算法,Adam优缺点分析
优化算法 首先我们来回顾一下各类优化算法. 深度学习优化算法经历了 SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -& ...
- Adam那么棒,为什么还对SGD念念不忘?一个框架看懂深度学习优化算法
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者|Juliuszh,https://zhuanlan.zhih ...
- 2017年深度学习优化算法最新进展:改进SGD和Adam方法
2017年深度学习优化算法最新进展:如何改进SGD和Adam方法 转载的文章,把个人觉得比较好的摘录了一下 AMSGrad 这个前期比sgd快,不能收敛到最优. sgdr 余弦退火的方案比较好 最近的 ...
- Pytorch框架的深度学习优化算法集(优化中的挑战)
个人简介:CSDN百万访问量博主,普普通通男大学生,深度学习算法.医学图像处理专攻,偶尔也搞全栈开发,没事就写文章,you feel me? 博客地址:lixiang.blog.csdn.net Py ...
- 深度学习优化算法实现(Momentum, Adam)
目录 Momentum 初始化 更新参数 Adam 初始化 更新参数 除了常见的梯度下降法外,还有几种比较通用的优化算法:表现都优于梯度下降法.本文只记录完成吴恩达深度学习作业时遇到的Momentum ...
- 深度学习优化算法之动量法[公式推导](MXNet)
我们在前面的文章中熟悉了梯度下降的各种形态,深度学习优化算法之(小批量)随机梯度下降(MXNet),也了解了梯度下降的原理,由每次的迭代,梯度下降都根据自变量的当前位置来更新自变量,做自我迭代.但是如 ...
最新文章
- C++ 复制构造函数或者拷贝构造函数
- Mysql 事务中Update 会锁表吗?
- 白给的性能不要?cvpr2021-Diverse branch block
- 面试---如何在List<Integer>中如何存放String类型的数据?
- ionic ajax 跨域,解决 ionic 中的 CORS(跨域) 问题
- 【wpf WebBrowser 清空网站的CookieSession 清空用户登录状态】
- snakeyaml读取yaml/yml配置文件数据
- 为什么越来越多的人都拒绝办信用卡?
- lambdas for_Java 8发布了! — Lambdas教程
- 戏说云栖,如果这些名人参加云栖大会。。。
- 服务器每天产生1t文件,编写自己的服务器 - osc_popfjd1t的个人空间 - OSCHINA - 中文开源技术交流社区...
- flex4.5新特征
- 自定义snippet(代码段)就可以极大的提高你的开发效率 VScode快速一键生成html、vue、jsx、ajax、sass、docker等代码片段
- 支付宝推出“轻会员”;iPhone11 或将主动禁用双向无线充电;Java 13 发布 | 极客头条...
- linux usb摄像头 监控软件,Linux下的motion detection(最简单的办公室监控系统)
- snakeyaml生成yaml文件空值显示问题
- c语言输出10000以内的回文数,输出10000以内的素数、回文数、回文素数
- 智能DNS解析搭建成功
- 从云到「链」,京东云成为中国第四朵云背后
- 计算机考试机试题目word文档,计算机考试 word
热门文章
- 企业级 SpringBoot 教程 (七)springboot开启声明式事务
- spring cloud构建互联网分布式微服务云平台-高可用的服务注册中心
- redis3.2版本protected-mode参数
- 基于墨刀实现的原型系统:多啦阅读
- 这项技术曾应用于无人驾驶,荣耀10将其移植到手机上这样操作!
- jdbc 通过反射和元数据编写通用的查询对象方法
- 在本地测试一次成功的AJAX请求
- apache-common-pool2(配置参数详解,以及资源回收,从池中获取资源,将资源返还给池...
- Spring Mvc前台访问报404
- AS3类库资源大集合