1.深度学习优化算法概览图

深度学习(其实也包括传统的机器学习)中的优化算法,丰富多彩多种多样。如果没有从逻辑上有条主线理清楚,很容易会陷入混乱。因此我参考前人的总结,特意总结了一张图,将这些优化算法的逻辑关系理顺一下。


上面的图,从两个方面对优化算法进行逻辑梳理:以最基础的SGD为起点,左半部分针对梯度方向进行优化,右半部分针对学习率进行优化。

根据上面图片,不难看出,深度学习优化算法发展过程基本如下:
SGD->SGDM->Nesterov->AdaGrad->AdaDelta->Adam->Nadam

后面我们针对上述算法将分别介绍。

2.优化算法框架

根据参考文献1,提出用一个框架表述所有的优化算法,个人认为总结很赞,因此贴出来供大家参考:
定义待优化参数ω\omegaω,目标函数f(ω)f(\omega)f(ω),初始学习率α\alphaα。

在每个epoch t进行迭代时:

1.根据目标函数计算当前参数的梯度:gt=▽f(ωt)g_t=\bigtriangledown f(\omega_t)gt​=▽f(ωt​)
2.根据历史梯度计算一阶动量与二阶动量
mt=ϕ(g1,g2,⋯,gt)Vt=φ(g1,g2,⋯,gt)m_t = \phi(g_1, g_2, \cdots, g_t)\\ V_t = \varphi(g_1, g_2, \cdots, g_t) mt​=ϕ(g1​,g2​,⋯,gt​)Vt​=φ(g1​,g2​,⋯,gt​)
3.计算当前时刻的下降梯度
ηt=α⋅mt/Vt\eta_t = \alpha \cdot m_t / \sqrt{V_t}ηt​=α⋅mt​/Vt​​
4.根据下降梯度进行更新
ωt+1=ωt−ηt\omega_{t+1} = \omega_t - \eta_t ωt+1​=ωt​−ηt​

各种优化算法基本都是上述框架,步骤3,4都一致,不同就体现在第1,2两点。

以传统的SGD为例:
mt=gtVt=I2m_t=g_t\\ V_t = I^2 mt​=gt​Vt​=I2

则对于步骤三,梯度下降时,ηt=α⋅gt\eta_t = \alpha \cdot g_tηt​=α⋅gt​
这就是我们见到的传统的最简单梯度下降的方式。

参考文献

1.https://zhuanlan.zhihu.com/p/32230623

深度学习优化算法大全系列1:概览相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 俄罗斯方块新增行算法:不拘一格编程序之二
  2. 主库创建存储过程时从库显示 Error 1049
  3. 对$()与``区别的理解
  4. SpringBoot 集成 Jsp、Thymeleaf 模板引擎 + Thymeleaf 基本使用
  5. shell语法中的test命令用法
  6. 凤凰系统运行linux,开机引导凤凰os出grub
  7. 何凯明团队又出新论文,北大、上交校友教你用ViT做迁移学习
  8. python 四舍五入到整数_python “四舍五入”
  9. VMware上Ubuntu联网(NAT方式)
  10. excel组合汇总_Excel汇总20150112
  11. 基于tidbV6.0探索tiflash在多标签组合场景下的使用
  12. 边缘人工智能芯片大放异彩
  13. 【源码】从Ansys导入mesh到MATLAB的小程序
  14. vue updated
  15. DS1302实时时钟
  16. 复合文档的二进制存储格式研究(word,xls,ppt...)
  17. uView JS工具库
  18. 计算机考csp200分啥水平,计算机与信息工程学院成功举办第20次CCF CSP认证考试
  19. outlook 2003收发进度条卡住现象解决办法[exchange模式]
  20. 华为ModelArts自定义镜像(PyTorch镜像)

热门文章

  1. 中文编程汉语编程实例
  2. Access denied (403) see security.limit_extensions
  3. 【php写日志】php将日志写入文件
  4. 虚拟机外接USB设备情况的vMotion问题
  5. 多核cpu服务器安装SQLserver 2005的问题
  6. 为什么300的并发能把支持最大连接数4000数据库压死
  7. Java中对数组的操作
  8. 用友与中国互联网协会签署战略合作 共推企业互联网转型
  9. OpenCV3.4 sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' : undeclared
  10. 改进:js修改iOS微信浏览器的title