赞
踩
【前言】: 优化问题一直是机器学习乃至深度学习中的一个非常重要的领域。尤其是深度学习,即使在数据集和模型架构完全相同的情况下,采用不同的优化算法,也很可能导致截然不同的训练效果。
adam是openai提出的一种随机优化方法,目前引用量已经达到4w+,在深度学习算法优化中得到广泛的使用,是一种高效的优化算法。该算法是在梯度下降算法(SGD)的理念上,结合Adagrad和RMSProp算法提出的,计算时基于目标函数的一阶导数,保证了相对较低的计算量。adma的优点如下:参数更新的大小不随着梯度大小的缩放而变化;更新参数时的步长的边界受限于超参的步长的设定;不需要固定的目标函数;支持稀疏梯度;它能够自然的执行一种步长的退火。
ADAM: A METHOD FOR STOCHASTIC OPTIMIZATIONarxiv.org1 Gradient Descent(梯度下降算法)
优化问题中大部分问题都可以转化为求解一个标量的目标函数
即最小化损失函数:
梯度更新如下:
优点: 针对凸函数
缺点: 1> 收敛速度慢,
2> 要求目标函数是stationary(固定的), 训练数据需要一次性填到内存中,因此需求内 存大,当数据量大时,无法使用GD;
2 Stochastic Gradient Descent(随机梯度下降)
随机梯度下降顾名思义,就是在梯度下降基础上增加了随机性,即目标函数可以是随机的。目标函数可以使用minibatch中的样本计算得到,其中minibatch为在总样本中随机采样的样本。随着采样的不同,目标函数也是随机变化的。这可以有效的解决梯度下降的内存问题。
具体算法流程如下:
相对梯度下降算法,增加了采样过程,如标红位置。
优点:1> 通过调节采样数据的大小,易于使用有限的内存;
2> 相对于GD算法,收敛更快;
缺点:1> 训练不稳定;
2> 学习率难以选择;(学习率太小,梯度下降的步伐比较慢,训练的时间长;学习率太大,在凸函数最优解位置会来回震荡,难以收敛。所以一般随着训练不断的降低学习率)
3 SGD with Momentum
SGD是一种非常流行的优化策略,但它可能会收敛很慢。Momentum使用动量的方式加速了学习过程,尤其是遇到:损失函数高曲
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。