当前位置:   article > 正文

梯度下降算法_Adam-一种随机优化算法

adam梯度下降

9d9e0a9bc7aeea1972ae2b03b8275f3b.png

【前言】: 优化问题一直是机器学习乃至深度学习中的一个非常重要的领域。尤其是深度学习,即使在数据集和模型架构完全相同的情况下,采用不同的优化算法,也很可能导致截然不同的训练效果。

adam是openai提出的一种随机优化方法,目前引用量已经达到4w+,在深度学习算法优化中得到广泛的使用,是一种高效的优化算法。该算法是在梯度下降算法(SGD)的理念上,结合Adagrad和RMSProp算法提出的,计算时基于目标函数的一阶导数,保证了相对较低的计算量。adma的优点如下:参数更新的大小不随着梯度大小的缩放而变化;更新参数时的步长的边界受限于超参的步长的设定;不需要固定的目标函数;支持稀疏梯度;它能够自然的执行一种步长的退火。

ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION​arxiv.org

一. 优化算法的前世今生

1 Gradient Descent(梯度下降算法)

97eef467f5dee6b84c28108a99de2474.png

优化问题中大部分问题都可以转化为求解一个标量的目标函数

的最大值或最小值。当
对其参数
可微时,可采用梯度下降法进行求解。梯度下降法通过向当前位置梯度的负方向移动以实现最小化损失函数。

即最小化损失函数:

梯度更新如下:

优点: 针对凸函数

可以得到全局最优解;

缺点: 1> 收敛速度慢,

2> 要求目标函数是stationary(固定的), 训练数据需要一次性填到内存中,因此需求内 存大,当数据量大时,无法使用GD;

2 Stochastic Gradient Descent(随机梯度下降)

随机梯度下降顾名思义,就是在梯度下降基础上增加了随机性,即目标函数可以是随机的。目标函数可以使用minibatch中的样本计算得到,其中minibatch为在总样本中随机采样的样本。随着采样的不同,目标函数也是随机变化的。这可以有效的解决梯度下降的内存问题。

具体算法流程如下:

366efc9af5de1aa04bfc411dd69ff8c6.png

相对梯度下降算法,增加了采样过程,如标红位置。

优点:1> 通过调节采样数据的大小,易于使用有限的内存;

2> 相对于GD算法,收敛更快;

缺点:1> 训练不稳定;

2> 学习率难以选择;(学习率太小,梯度下降的步伐比较慢,训练的时间长;学习率太大,在凸函数最优解位置会来回震荡,难以收敛。所以一般随着训练不断的降低学习率)

3 SGD with Momentum

SGD是一种非常流行的优化策略,但它可能会收敛很慢。Momentum使用动量的方式加速了学习过程,尤其是遇到:损失函数高曲

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/104126?site
推荐阅读
相关标签
  

闽ICP备14008679号