| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION -> 正文阅读 |
|
[人工智能]ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION |
Adam: a method for stochastic optimization_一种随机优化的方法[Paper] 目录 Initialization bias correction?初始化偏差纠正 核心Adam:一种基于低阶矩的自适应估计的随机目标函数的一阶梯度优化算法。该方法实现简单,计算效率高,内存需求很少,对梯度的对角线重新缩放不变,并且非常适合于在数据和/或参数方面较大的问题。该方法也适用于非平稳目标和具有非常有噪声和/或稀疏梯度的问题。
超参数具有直观的解释,通常不需要什么调整。 讨论了Adam与灵感来源的相关算法之间的一些联系。分析了算法的理论收敛性,并给出了收敛速度与在线凸优化框架下的regret bound。实证结果表明,Adam在实践中效果良好,优于其他随机优化方法。最后,讨论了基于无限范数的Adam的变形——AdaMax。 介绍基于随机梯度的优化在许多科学和工程领域具有核心的实践意义。这些领域中的许多问题可以转化为一些标量参数化目标函数的优化,需要对其参数进行最大化或最小化。如果该函数关于它的参数是可微的,则梯度下降是一种相对有效的优化方法,因为计算了关于所有的参数的一阶偏导数与仅仅计算函数的计算复杂度相同。通常,目标函数是随机的。例如,许多目标函数是由在不同的数据子样本上评估的子函数的和组成的;在这种情况下,通过采用梯度步骤可以使优化更有效率个别子函数,即随机梯度下降(SGD)或上升。SGD被证明是一种高效和有效的优化方法,在许多机器学习成功案例中,如深度学习的最新进展。除了数据子采样之外,目标还可能有其他噪声源,如退化正则化。对于所有这些有噪声目标,都需要有效的随机优化技术。本文的重点是研究具有高维参数空间的随机目标的优化。在这些情况下,高阶优化方法是不适合的,本文的讨论将仅限于一阶方法。 本文提出了一种方法,一种有效的只需要一阶梯度的随机优化方法。该方法从梯度的第一和第二矩的估计中计算不同参数的个体自适应学习率;Adam是adaptive moment estimation的缩写,也就是自适应矩估计。 方法结合了最近流行的两种方法的优点:AdaGrad,它适用于稀疏梯度,和RMSProp,它在在线和非平稳设置中很有效。Adam的一些优点是,参数更新的大小是不变的梯度,它的步长近似由步长超参数,它不需要一个平稳的目标,它与稀疏梯度,它自然执行一种形式的步长退火(annealing)。
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是鲁棒的,并且非常适合于领域机器学习中广泛的非凸优化问题。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 14:35:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |