Adam 优化器,从AdaGrad,RMSprop,Momentum的思想娓娓道来。

Adam优化器结合了RMSprop和Momentum的优势,解决了AdaGrad学习率收缩过快的问题。通过指数衰减平均值处理历史梯度,避免震荡并自适应学习率,尤其适合非平稳目标函数。
摘要由CSDN通过智能技术生成

Adam 在批量随机梯度的基础上,充分吸收了RMSprop + Momentum思想,其中RMSprop 是在AdaGrad的基础上改进的,AdaGrad累积历史梯度平方,当历史梯度变化比较频繁时(即某一维度的梯度呈正或负方向频次比较多),那么更新的步长比较小;当历史梯度比较稀疏时(即某一维度的梯度为0频次比较多),那么更新的步长比较大。
AdaGrad公式如下所示:

g t g_{t} gt是批量随机平均梯度,是在SGD基础上加入了批量平均梯度的思想,这里不再赘述。

AdaGrad其优点:在数据分布稀疏的场景,能更好利用稀疏梯度的信息,比标准的SGD算法更有效地收敛。其缺点也显而易见,随之时间步地增加,分母项越来越大,最终导致学习率收缩到太小无法进行有效更新,虽然达到了模拟退火的目的,但是难免会太快了。RMSprop 既吸收部分累积的历史梯度平方,又吸收了部分当前梯度平方,这两种吸收的比例和为1,体现了平均梯度的思想。由于累积平方梯度只吸收部分当前累积平方梯度和当前平方梯度,所以RMSprop的累积平方梯度会小于AdaGrad的累积平方梯度,大大延迟的模拟退火时间。
RMSprop公式如下:
在这里插入图片描述
在这里插入图片描述
RMSprop的参数更新公式与AdaGrad很相似,只是AdaGrad采用了累积平方梯度,而RMSprop则丢失部分历史累积平方梯度,能够克服AdaGrad梯度急剧减小的问题,在很多应用中都展示出优秀的学习率自适应能力。尤其在不稳定(Non-Stationary)的目标函数下,比基本的SGD、Momentum、AdaGrad表现更良好。
Momentum的思想是累积历史步长(也可以说是历史梯度,因为步长和梯度是呈正比的,其比例系数就是固定的学习率,所以步长也是矢量,个人觉得步长用位移来代替会更合适),当频繁出现正负交替的梯度时,它们会抵消,故累积历史步长会变小,从而达到抑制震荡的效果。Momentum公式如下:
在这里插入图片描述
在这里插入图片描述
γ \gamma γ动量系数,默认为0.9, η \eta η学习率,默认为0.001, v t v_{t} v

这些优化器都是用于机器学习模型训练过程中的参数更新算法,它们并非分布式学习方法本身,而是帮助单台计算机提升学习效率的工具。 1. **随机梯度下降(SGD)**:这是一种基本的优化算法,每次迭代只考虑样本的一个随机梯度,适合大数据集,但它可能会在平坦区域徘徊或震荡。 2. **动量(Momentum)**:引入了一个"记忆"机制,即结合当前梯度和过去移动的方向,使得搜索方向更加稳定,有助于跳出局部极小值。 3. **Nesterov加速梯度(Nesterov Accelerated Gradient, NAG)**:在动量的基础上提前一步计算,预计未来的位置,进一步加速梯度下降的过程。 4. **AdaGrad**:自适应学习率算法,对每一个参数都维护一个单独的学习率,对于稀疏数据特别有效,但长期而言,学习率可能会过早变得非常小。 5. **RMSprop (Root Mean Square Propagation)**:在AdaGrad基础上改进,采用指数移动平均来调整学习率,更好地平衡全局和局部的梯度影响。 6. **Adam**:一种结合了动量和RMSprop优化器,它使用了动量项和学习率衰减,能够适应不同的权重更新,尤其在深度学习中广泛应用。 以上优化器都不是分布式学习方法,因为它们主要针对的是单个设备上模型的训练。然而,有些变体如Mini-batch SGD是在分布式环境下常用的一种策略,将数据分成小批次进行并行计算。而真正的分布式学习方法,如Spark、Hadoop等,会涉及到多台计算机间的协同工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值