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=▽θ​∑i​L(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相关推荐

  1. Adam 那么棒,为什么还对 SGD 念念不忘?一个框架看懂深度学习优化算法

    作者|Juliuszh 链接 | https://zhuanlan.zhihu.com/juliuszh 本文仅作学术分享,若侵权,请联系后台删文处理 机器学习界有一群炼丹师,他们每天的日常是: 拿来 ...

  2. 2017年深度学习优化算法最新进展:如何改进SGD和Adam方法?

    2017年深度学习优化算法最新进展:如何改进SGD和Adam方法? 深度学习的基本目标,就是寻找一个泛化能力强的最小值,模型的快速性和可靠性也是一个加分点. 随机梯度下降(SGD)方法是1951年由R ...

  3. 深度学习优化算法的总结与梳理(从 SGD 到 AdamW 原理和代码解读)

    作者丨科技猛兽 转自丨极市平台 本文思想来自下面这篇大佬的文章: Juliuszh:一个框架看懂优化算法之异同 SGD/AdaGrad/Adam https://zhuanlan.zhihu.com/ ...

  4. 大梳理!深度学习优化算法:从 SGD 到 AdamW 原理和代码解读

    ‍ 作者丨知乎 科技猛兽  极市平台 编辑 https://zhuanlan.zhihu.com/p/391947979 本文思想来自下面这篇大佬的文章: Juliuszh:一个框架看懂优化算法之异同 ...

  5. 深度学习优化算法,Adam优缺点分析

    优化算法 首先我们来回顾一下各类优化算法. 深度学习优化算法经历了 SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -& ...

  6. Adam那么棒,为什么还对SGD念念不忘?一个框架看懂深度学习优化算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者|Juliuszh,https://zhuanlan.zhih ...

  7. 2017年深度学习优化算法最新进展:改进SGD和Adam方法

    2017年深度学习优化算法最新进展:如何改进SGD和Adam方法 转载的文章,把个人觉得比较好的摘录了一下 AMSGrad 这个前期比sgd快,不能收敛到最优. sgdr 余弦退火的方案比较好 最近的 ...

  8. Pytorch框架的深度学习优化算法集(优化中的挑战)

    个人简介:CSDN百万访问量博主,普普通通男大学生,深度学习算法.医学图像处理专攻,偶尔也搞全栈开发,没事就写文章,you feel me? 博客地址:lixiang.blog.csdn.net Py ...

  9. 深度学习优化算法实现(Momentum, Adam)

    目录 Momentum 初始化 更新参数 Adam 初始化 更新参数 除了常见的梯度下降法外,还有几种比较通用的优化算法:表现都优于梯度下降法.本文只记录完成吴恩达深度学习作业时遇到的Momentum ...

  10. 深度学习优化算法之动量法[公式推导](MXNet)

    我们在前面的文章中熟悉了梯度下降的各种形态,深度学习优化算法之(小批量)随机梯度下降(MXNet),也了解了梯度下降的原理,由每次的迭代,梯度下降都根据自变量的当前位置来更新自变量,做自我迭代.但是如 ...

最新文章

  1. C++ 复制构造函数或者拷贝构造函数
  2. Mysql 事务中Update 会锁表吗?
  3. 白给的性能不要?cvpr2021-Diverse branch block
  4. 面试---如何在List<Integer>中如何存放String类型的数据?
  5. ionic ajax 跨域,解决 ionic 中的 CORS(跨域) 问题
  6. 【wpf WebBrowser 清空网站的CookieSession 清空用户登录状态】
  7. snakeyaml读取yaml/yml配置文件数据
  8. 为什么越来越多的人都拒绝办信用卡?
  9. lambdas for_Java 8发布了! — Lambdas教程
  10. 戏说云栖,如果这些名人参加云栖大会。。。
  11. 服务器每天产生1t文件,编写自己的服务器 - osc_popfjd1t的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. flex4.5新特征
  13. 自定义snippet(代码段)就可以极大的提高你的开发效率 VScode快速一键生成html、vue、jsx、ajax、sass、docker等代码片段
  14. 支付宝推出“轻会员”;iPhone11 或将主动禁用双向无线充电;Java 13 发布 | 极客头条...
  15. linux usb摄像头 监控软件,Linux下的motion detection(最简单的办公室监控系统)
  16. snakeyaml生成yaml文件空值显示问题
  17. c语言输出10000以内的回文数,输出10000以内的素数、回文数、回文素数
  18. 智能DNS解析搭建成功
  19. 从云到「链」,京东云成为中国第四朵云背后
  20. 计算机考试机试题目word文档,计算机考试 word

热门文章

  1. 企业级 SpringBoot 教程 (七)springboot开启声明式事务
  2. spring cloud构建互联网分布式微服务云平台-高可用的服务注册中心
  3. redis3.2版本protected-mode参数
  4. 基于墨刀实现的原型系统:多啦阅读
  5. 这项技术曾应用于无人驾驶,荣耀10将其移植到手机上这样操作!
  6. jdbc 通过反射和元数据编写通用的查询对象方法
  7. 在本地测试一次成功的AJAX请求
  8. apache-common-pool2(配置参数详解,以及资源回收,从池中获取资源,将资源返还给池...
  9. Spring Mvc前台访问报404
  10. AS3类库资源大集合