点上方计算机视觉联盟获取更多干货

仅作学术分享,不代表本公众号立场,侵权联系删除

转载于:作者丨Xuezhe Ma@知乎(已授权)

来源丨https://zhuanlan.zhihu.com/p/401826098

编辑丨极市平台

985人工智能博士笔记推荐

周志华《机器学习》手推笔记正式开源!附pdf下载链接,Github2500星!

论文地址

https://arxiv.org/abs/2009.13586

论文源码

https://github.com/XuezheMax/apollo 类型: PyTorch

摘要

本文介绍了Apollo,一种针对非凸随机优化的拟牛顿方法。它通过对角矩阵逼近Hessian,动态地将损失函数的曲率应用到优化的过程中。重要的是,Apollo对于Hessian的对角近似的时间和空间复杂度与自适应一阶优化方法一样。为了处理目标函数的非凸性,我们用Hessian的修正绝对值(recified absolute value)来代替原始的Hessian,保证它是正定的。机器视觉和自然语言处理三项任务上的实验表明,Apollo在收敛速度和泛化性能上都比其它随机优化方法(包括SGD和ADAM的变体)有了显著的改进。

随机非凸优化和拟牛顿法

本文专注于以下形式的随机非凸优化问题:

其中  是模型的参数, 是随机噪音。拟牛顿法的参数更新公式如下:

为步长(stepsize),又叫学习率(learning rate)。 为每一次参数更新时对Hessian矩阵的近似。矩阵  的计算满足经典的 secant equation:

其中  ,  。以上公式中不同矩阵模(norm)的选择对应不同的经典算法,例如L-BFGS[1]和DFP[2]。

总结来说,拟牛顿法在深度学习优化问题中存在三个常见问题:

  1. Time and Memory Efficiency(时空复杂度). 在深度学习的优化问题中,由于模型参数的维度巨大,现有的拟牛顿法无法在实际问题中应用。比如经典的L-BFGS[1]算法一般需要记录至少之前5到10步的迭代历史,这在深度学习问题中是不实际的。而现有的一些为随机非凸问题设计的拟牛顿法,例如SdLBFGS[3],甚至需要比L-BFGS更多的时间和空间资源。

  2. Stochastic Variance. 优化过程中的随机性使得对于Hessian的近似存在较大的方差, 导致优化算法的不稳定甚至失败。

  3. Nonconvexity(非凸性). 目标函数的非凸性导致很难在优化过程中保证Hessian的正定性。而目标函数的随机性又使得标准的line search无法有效的应用。

Apollo算法

Time and Memory Efficiency(时空复杂度)。为了降低Apollo算法的时空复杂度,我们仿效之前的工作,用对角矩阵来近似Hessian,亦即约束每一步  为对角矩阵。为了满足这一约束,我们需要对公式(5)中的secant equation进行放松。一个常用的方法是weak secant equation[4,5]:

但是对于参数为度巨大的深度神经网络来说,weak secant equation的约束过于微弱。为了得到一个折中的办法,我们利用神经网络参数的性质,将参数分离成不同的参数模块: 。例如,一个多层神经网络的参数可以分离成每一层不用功能的参数。这样对于每一个参数都会产生一个weak secant equation,增强了约束能力。

经过简单的推到,  的更新公式为:

Stochastic Variance. 为了降低优化过程中由于随机噪音导致的不稳定,我们除了应用Adam中的Exponential Moving Average (EMV)之外,还提出了一个重要的方法:Stepsize Bias Correction。简单来说,我们希望矩阵  的更新可以不受步长的影响。具体的做法是对每一步的gradient  进行修正: 。这样公式(7)就演变为:

其中  。对于Stepsize Bias Correction的具体讨论请参考原文。实际应用中,我们发现Stepsize Bias Correction对于Apollo算法的收敛稳定性起到至关重要的作用。

Nonconvexity(非凸性). 非凸性是阻碍拟牛顿法应用到深度学习优化的最主要困难之一。如下图所示,对于一个非凸点的曲率是负的,因此直接应用拟牛顿法会导致参数更新方向错误。

Apollo对于这个问题的解决方案很简单直接,用  的修正绝对值(rectified absolute value)来代替

其中  是一个超参数。现在的问题是我们是否需要增加一个需要调试的超惨  ?幸运的是,我们发现  和  是两个耦合在一起的超参数,而实际中我们可以固定一个而只调试另一个。具体请参考论文中的Theorem 1.

 的取值选择。 在最初的版本中,我们设定  。但是我们发现这样使得  的取值会比较大,不太符合大家对学习率(learning rate)的直观印象。因此我们在最新的版本中设定  。具体讨论参考论文。

Apollo算法的收敛性

我们仿效之前的工作,对Apollo在凸函数和非凸函数两种情况下的收敛进行了理论分析。具体请参考论文中的Theorem 2 和 Theorem 3

实验

实验部分,我们做了在三个常见的任务上面对比了Apollo和其他优化算法的效果,包括Image Classification, Language Modeling 以及Neural Machine Translation。涉及的神经网络模型包括ResNet,LSTM和Transformer。每个实验,我们都用5个不同的random seed,并报告实验结果的平均值。具体的实验配置,请阅读论文。

Image Classification

Language Modeling

Neural Machine Translation (WMT-14 English-German)

结语

这篇文章从去年9月开始已经在一年内被多次拒稿,实在让我感慨优化领域的水之深。扪心自问,这篇论文我们算是尽心尽力做到能做的最好,也自认无论从算法还是实验结果都有创新的地方。据我们的有限所知,Apollo是目前第一个能在实际中应用的深度神经网络的优化算法,并能在多个任务和网络结构上取得比肩甚至超过SGD和Adam的效果。然而,仍有审稿人因为各种原因拒稿。其中最多的拒稿原因是Apollo中提出的一些方法,例如stepsize bias correction和rectified absolute value没有明确的理论证明。说一句有些偏激的话,现在深度学习中有哪个实际中有效的方法有严格的理论证明?甚至有一个审稿人的一条意见是,我们的收敛证明是基于Adam,而在他/她看来,Adam的理论证明是达不到发表的标准的。我想说的是,在当下论文井喷的时代,做自己心中觉得真正有用的研究才是一个研究员最该坚持的事。

引用

  • [1] Charles George Broyden. The convergence of a class of double-rank minimization algorithms. IMA Journal of Applied Mathematics, 6(1):76–90, 1970.

  • [2] William C Davidon. Variable metric method for minimization. SIAM Journal on Optimization, 1(1):1–17, 1991.

  • [3] Xiao Wang, Shiqian Ma, Donald Goldfarb, and Wei Liu. Stochastic quasi-newton methods for nonconvex stochastic optimization. SIAM Journal on Optimization, 27(2):927–956, 2017.

  • [4] John E Dennis, Jr and Henry Wolkowicz. Sizing and least-change secant methods. SIAM Journal on Numerical Analysis, 30(5):1291–1314, 1993.

  • [5] JL Nazareth. If quasi-newton then why not quasi-cauchy. SIAG/Opt Views-and-news, 6: 11–14, 1995.

  • [6] Sashank J Reddi, Satyen Kale, and Sanjiv Kumar. On the convergence of adam and beyond. In International Conference on Learning Representations, 2018.

  • [7] X Chen, M Hong, S Liu, and R Sun. On the convergence of a class of adam-type algorithms for non-convex optimization. In 7th International Conference on Learning Representations, ICLR 2019, 2019.

本文亮点总结

1.拟牛顿法在深度学习优化问题中存在三个常见问题:

(1)Time and Memory Efficiency(时空复杂度)

(2)Stochastic Variance

(3)Nonconvexity(非凸性)

2.Apollo对于Hessian的对角近似的时间和空间复杂度与自适应一阶优化方法一样。为了处理目标函数的非凸性,我们用Hessian的修正绝对值(recified absolute value)来代替原始的Hessian,保证它是正定的。

-------------------

END

--------------------

我是王博Kings,985AI博士,华为云专家、CSDN博客专家(人工智能领域优质作者)。单个AI开源项目现在已经获得了2100+标星。现在在做AI相关内容,欢迎一起交流学习、生活各方面的问题,一起加油进步!

我们微信交流群涵盖以下方向(但并不局限于以下内容):人工智能,计算机视觉,自然语言处理,目标检测,语义分割,自动驾驶,GAN,强化学习,SLAM,人脸检测,最新算法,最新论文,OpenCV,TensorFlow,PyTorch,开源框架,学习方法...

这是我的私人微信,位置有限,一起进步!

王博的公众号,欢迎关注,干货多多

手推笔记:

思维导图  |  “模型评估与选择”  |  “线性模型”  |  “决策树”  |  “神经网络”  |  支持向量机(上)  |  支持向量机(下)  |  贝叶斯分类(上)  |  贝叶斯分类(下)  |  集成学习(上)  |  集成学习(下)  |  聚类  |  降维与度量学习  |  稀疏学习  |  计算学习理论  |  半监督学习  |  概率图模型  |  规则学习

增长见识:

博士毕业去高校难度大吗?  |  研读论文有哪些经验之谈?  |  聊聊跳槽这件事儿  |  聊聊互联网工资收入的组成  |  机器学习硕士、博士如何自救?  |  聊聊Top2计算机博士2021年就业选择  |  非科班出身怎么转行计算机?  |  有哪些相见恨晚的科研经验?  |  经验 | 计算机专业科班出身如何提高自己编程能力?  |  博士如何高效率阅读文献  |  有哪些越早知道越好的人生经验?  |

其他学习笔记:

PyTorch张量Tensor  |  卷积神经网络CNN的架构  |  深度学习语义分割  |  深入理解Transformer  |  Scaled-YOLOv4!  |  PyTorch安装及入门  |  PyTorch神经网络箱  |  Numpy基础  |  10篇图像分类  |  CVPR 2020目标检测  |  神经网络的可视化解释  |  YOLOv4全文解读与翻译总结  |

点分享

点收藏

点点赞

点在看

厉害了!牛顿法深度学习优化器,效果比肩SGD和Adam相关推荐

  1. 【深度学习】新的深度学习优化器探索(协同优化)

    [深度学习]新的深度学习优化器探索(协同优化) 文章目录 1 RAdam VS Adam 2 自适应优化 3 LookAhead3.1 "侵入式"优化器3.2 LookAhead ...

  2. 基于语言模型的少样本学习 / 深度学习优化器基准测试 | 本周值得读

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考.在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果.如果你也希望让自己的科研成果被更多人看到, ...

  3. 使用什么优化器_新的深度学习优化器Ranger:RAdam + LookAhead强强结合

    [导读]给大家介绍一个新的深度学习优化器,Ranger,同时具备RAdam和LookAhead的优点,一行代码提升你的模型能力. Ranger 优化器结合了两个非常新的发展(RAdam + Looka ...

  4. 深度学习优化器演化史

    <深度学习优化器演化史>   不同深度学习的优化器有时候对于训练模型来说可能会有很大的差异,有时候选对了优化器就能够有事半功倍的效果,那么如果选择各种优化器呢,本文来简单剖析一下深度学习优 ...

  5. 深度学习优化器中的变形金刚:Ranger21

    论文题目:RANGER21: A SYNERGISTIC DEEP LEARNING OPTIMIZER 论文链接:https://arxiv.org/pdf/2106.13731.pdf 1 Ran ...

  6. adam优化_认识 AdaMod: 一个新的有记忆的深度学习优化器

    Meet AdaMod: a new deep learning optimizer with memory by Less Wright https://medium.com/@lessw/meet ...

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

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

  8. USC提出拟牛顿法深度学习优化器Apollo,效果比肩SGD和Adam

    ©作者 | Xuezhe Ma 单位 | USC助理教授 研究方向 |NLP.机器学习 摘要 本文介绍了 Apollo,一种针对非凸随机优化的拟牛顿方法.它通过对角矩阵逼近 Hessian,动态地将损 ...

  9. adam算法效果差原因_深度学习优化器-Adam两宗罪

    在上篇文章中,我们用一个框架来回顾了主流的深度学习优化算法.可以看到,一代又一代的研究者们为了我们能炼(xun)好(hao)金(mo)丹(xing)可谓是煞费苦心.从理论上看,一代更比一代完善,Ada ...

最新文章

  1. 更改setting文件的mirror_setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联*...
  2. 中国移动雄安研究院 2020校园招聘笔试JAVA方向(一)
  3. 3.MySQL索引(一)介绍索引
  4. python findcontours_基于Python的opencv学习练习(十二) findContours()轮廓与绘制drawContours()...
  5. iris数据_Python数据分析02-Iris-直方图与KDE
  6. GPIO应用开发方法【ZT】
  7. 离京2小时,快手百亿入云,一切为了「看见」
  8. 原理剖析(第 009 篇)ReentrantReadWriteLock工作原理分析
  9. 本地自旋锁与信号量/多服务台自旋队列-spin wait风格的信号量
  10. 8、Python-函数
  11. gaster字体转换器_gaster语言翻译器
  12. 火狐安装网页视频下载插件(Video DownloadHelper)
  13. 离线检查未安装的Windows更新
  14. 程序员是做什么的?未来计算机变得智能,就不需要程序员了吗?
  15. cryengine3 C++添加结点,制作插件
  16. 2017安防摄像头发展趋势分析
  17. JavaScript实现随机彩票双色球
  18. java游戏房间匹配_一种游戏房间匹配方法与流程
  19. 第3章 软件测试方法--基于直觉和经验的方法
  20. IT风云15年的那些人、那些事(一)

热门文章

  1. 使用java连接ftp服务器_Java如何连接到FTP服务器?
  2. linq to sql 行转列_SQL进阶:SQL高级编程语法实例
  3. sql server存阿拉伯语变成问号_【server@geoserver】WFS只读(readonly)解决办法
  4. list 查找_五千字长文带你学习 二分查找算法
  5. C语言中负数补码的方法,c语言里求负数补码的总结不足与优点.docx
  6. matlab安装第三方库,Matlab调用cpp+第三方库
  7. Java基础题笔记(数组)4
  8. java 拟合曲线_如何通过指数曲线拟合数据
  9. python threading timer 退出_解决Python中定时任务线程无法自动退出的问题
  10. des加密出的字符串有特殊字符吗_纯干货分享丨内网渗透很难学吗?