Adam: a method for stochastic optimization_一种随机优化的方法[Paper]


目录

核心

介绍

Algorithm

Initialization bias correction 初始化偏差纠正

Convergence analysis 收敛性分析

Related Work

Experiment

结论


核心

Adam:一种基于低阶矩的自适应估计的随机目标函数的一阶梯度优化算法。该方法实现简单,计算效率高,内存需求很少,对梯度的对角线重新缩放不变,并且非常适合于在数据和/或参数方面较大的问题。该方法也适用于非平稳目标和具有非常有噪声和/或稀疏梯度的问题。

  • 数据大/参数多/数据大且参数多
  • 非平稳目标
  • 噪声/稀疏梯度/噪声和稀疏梯度

超参数具有直观的解释,通常不需要什么调整。

讨论了Adam灵感来源的相关算法之间的一些联系。分析了算法的理论收敛性,并给出了收敛速度与在线凸优化框架下的regret bound。实证结果表明,Adam在实践中效果良好,优于其他随机优化方法。最后,讨论了基于无限范数的Adam的变形——AdaMax。


介绍

基于随机梯度的优化在许多科学和工程领域具有核心的实践意义。这些领域中的许多问题可以转化为一些标量参数化目标函数的优化,需要对其参数进行最大化或最小化。如果该函数关于它的参数是可微的,则梯度下降是一种相对有效的优化方法,因为计算了关于所有的参数的一阶偏导数与仅仅计算函数的计算复杂度相同。通常,目标函数是随机的。例如,许多目标函数是由在不同的数据子样本上评估的子函数的和组成的;在这种情况下,通过采用梯度步骤可以使优化更有效率个别子函数,即随机梯度下降(SGD)或上升。SGD被证明是一种高效和有效的优化方法,在许多机器学习成功案例中,如深度学习的最新进展。除了数据子采样之外,目标还可能有其他噪声源,如退化正则化。对于所有这些有噪声目标,都需要有效的随机优化技术。本文的重点是研究具有高维参数空间的随机目标的优化。在这些情况下,高阶优化方法是不适合的,本文的讨论将仅限于一阶方法。

本文提出了一种方法,一种有效的只需要一阶梯度的随机优化方法。该方法从梯度的第一和第二矩的估计中计算不同参数的个体自适应学习率;Adam是adaptive moment estimation的缩写,也就是自适应矩估计。

方法结合了最近流行的两种方法的优点:AdaGrad,它适用于稀疏梯度,和RMSProp,它在在线和非平稳设置中很有效。Adam的一些优点是,参数更新的大小是不变的梯度,它的步长近似由步长超参数,它不需要一个平稳的目标,它与稀疏梯度,它自然执行一种形式的步长退火(annealing)。

  • Algorithm,描述了该算法及其更新规则的性质。
  • Initialization bias correction,解释了的初始化偏差校正技术。
  • Convergence analysis,提供了在在线凸规划中亚当的收敛性的理论分析。
  • Realated work,Adam方法在各种模型和数据集上始终优于其他方法
  • Experiment,证明了Adam是一个通用的算法,可以扩展到大规模的高维机器学习问题。

Algorithm

手写笔记,后续电子记录。


Initialization bias correction 初始化偏差纠正

正如前部分所述,Adam利用了初始化偏差校正项。这部分主要推导二阶矩估计的项,与一阶矩估计的推导是完全类似的,因而略写。

在稀疏梯度的情况下,要想对二阶矩进行可靠的估计值,需要通过选择一个小的β2值来平均许多梯度;然而,正是这种小β2的情况,缺乏初始化偏差校正将导致初始步骤大得多。


Convergence analysis 收敛性分析

利用前人中提出的在线学习框架分析Adam的收敛性。由于序列的性质是未知的,使用Regret来评估算法,最后,可以证明Adam的平均Regret程度是收敛。


Related Work

与Adam有直接关系的优化方法是RMSProp和AdaGrad。其他的随机优化方法包括vSGD、AdaDelta以及Natural Newton method from Roux & Fitzgibbon,所有这些都是通过从一阶信息估计曲率来设置步长的。函数和优化器(SFO)是一种基于小批量的准牛顿方法,但(不像Adam)对数据集的小批量分区的数量有线性的内存要求,这在GPU等内存约束系统上通常是不可行的。与自然梯度下降(NGD)一样,Adam采用了适应数据几何形状的预调节器,因为平方梯度是费雪信息矩阵(the Fisher information matrix)对角线的近似;然而,Adam的预调节器(像AdaGrad的)在适应上比普通的NGD更保守,通过对角费雪信息矩阵近似的平方根。

RMSProp:一种与Adam密切相关的最优化方法是RMSProp。有时也会使用一个有动量的版本。带动量的RMSProp和Adam之间有一些重要的区别:带动量的RMSProp使用重新调整的梯度上的动量来生成参数更新,而Adam更新是直接使用梯度的第一和第二矩的运行平均值来估计的。RMSProp也缺乏偏差校正项;在β2值接近1(稀疏梯度的情况下需要)时,这一点最重要,因为在这种情况下,不纠正偏差会导致非常大的步长和发散。

AdaGrad:一种适用于稀疏梯度的算法是AdaGrad。请注意,当去除偏差修正项时,Adam和AdaGrad之间的直接对应关系并不存在;如果没有偏差校正,就像在RMSProp中那样,一个无限小地接近于1的β2会导致无限大的偏差和无限大的参数更新。


Experiment

为了实证评估所提出的方法,研究了不同的流行的机器学习模型,包括逻辑回归、多层全连接神经网络和深度卷积神经网络。使用大型模型和数据集,证明了Adam可以有效地解决实际的深度学习问题。在比较不同的优化算法时使用相同的参数初始化。超参数,如学习率和动量,在一个密集的网格上搜索,并使用最佳的超参数设置报告结果。

Logistic regression

Multilayer neural networks 

Convolutional neural networks

 Effect of bias-correction terms (red line) versus no bias correction terms (green line)


结论

介绍了一种简单且计算效率高的基于梯度的随机目标函数优化算法。旨在针对大型数据集和/或高维参数空间机器学习的问题。该方法结合了最近流行的两种优化方法的优点AdaGrad处理稀疏梯度的能力,和RMSProp处理非平稳目标的能力。该方法实现起来很简单,并且只需要很少的内存。实验证实了对凸问题的收敛速度的分析。总的来说,Adam是鲁棒的,并且非常适合于领域机器学习中广泛的非凸优化问题。

ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION相关推荐

  1. Paper:《Adam: A Method for Stochastic Optimization》的翻译与解读

    Paper:<Adam: A Method for Stochastic Optimization>的翻译与解读 目录 Adam: A Method for Stochastic Opti ...

  2. ADAM A METHOD FOR STOCHASTIC OPTIMIZATION

    ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION 1 INTRODUCTION 基于随机梯度的优化方法在许多科学和工程领域都具有重要的实际意义.这些领域中的许多问题 ...

  3. ADAM : A METHOD FOR STOCHASTIC OPTIMIZATION

    文章目录 概 主要内容 算法 选择合适的参数 一些别的优化算法 AdaMax 理论 代码 Kingma D P, Ba J. Adam: A Method for Stochastic Optimiz ...

  4. Adam算法_Tensorflow实现——论文解析:ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION

    目录 Adam优化器 论文解析:ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION 摘要 背景 算法介绍 偏差修正 收敛性理论证明 相关算法 实验 ADAMAX 结论 ...

  5. 论文解读1——Adam: A Method For Stochastic Optimization

    目录 1.优化算法到底是个啥 2.几种经典的优化算法 2.1 梯度下降(GD) 2.1.1 批量梯度下降(BGD) 2.1.2 随机梯度下降(SGD) 2.1.3 小批量梯度下降(SBGD) 2.2 ...

  6. #Paper Reading# Stochastic Optimization of Sorting Networks via Continuous Relaxations

    论文题目: Stochastic Optimization of Sorting Networks via Continuous Relaxations 论文地址: https://openrevie ...

  7. 鲁棒随机优化(Robust Stochastic Optimization)和RSOME

    鲁棒随机优化(Robust Stochastic Optimization)和RSOME 前言 1. RSO 2. 简单示例 2.1 单产品的报童问题(one-product newsvendor p ...

  8. 《A diagonal quasi-Newton updating method for unconstrained optimization》文献算法实现

    本次写的是<A diagonal quasi-Newton updating method for unconstrained optimization>文献算法实现----最优化实验,使 ...

  9. Problem complexity and method efficiency in optimization

    Problem complexity and method efficiency in optimization,1983, 链接:http://pan.baidu.com/s/1kTn4so3 密码 ...

最新文章

  1. html选择和按钮间距,html - 想要在按钮之间添加间距
  2. 2019 ICPC Asia Yinchuan Regional(9 / 13)
  3. Bootstrap学习笔记01
  4. java内存不足错误_调试Java内存不足错误
  5. MS CRM 2013 Plugin 注册工具登录后空白
  6. 多元函数(multivariate function)分析(方向导数和梯度)
  7. angularjs directive指令 link在渲染完成之后执行
  8. DailyWallpaper v1.02 released
  9. 旅游管理系统(包含旅游最短路径规划算法等,包含系统分析的各种uml图和界面图)
  10. 让Win10中文操作系统默认使用英文输入法,并且Ctrl+Shift切换中英文
  11. QT开发(九)—— Qt实现应用内动态切换语言,使用Qt语言家编译字体包
  12. fudannlp java_中文NLP工具
  13. 新人进群发邮件软件,QQ群潜伏发邮件软件,一进群就收到邮件软件
  14. 使用java实现简单五子棋
  15. win 10 查看mysql密码_win10下mysql重设密码教程
  16. java程序设计高级教程答案_Java高级程序设计实战教程答案
  17. elasticsearch7.x catAPI之shards
  18. CSS 2 emmet语法 复合选择器 元素显示模式
  19. 30题前端工程开发师面试题
  20. zzuli oj 1016:银行利率(java)

热门文章

  1. 开发中的各种时间格式转换(一)
  2. 炸裂!PDF转Word彻底告别收费时代,这个OCR开源项目要逆天!
  3. 浦东人大常委会副主任刘宇青一行莅临零数科技指导工作
  4. 判断人物眼型matlab,怎么判断眼型和脸型?
  5. 业务分析系列主题:做设计时,怎样理解和构建业务场景闭环?
  6. 运维快速入门必备的 Linux 服务器安全简明指南,速收!
  7. html th中加斜杠,css 模拟表格斜线
  8. LINUX 下C实现线程池《转载》
  9. linux进程家族树,linux下用c语言创建进程树
  10. 云脉高效数字化档案管理