添加时间:2024-03-11 12:42:22
目录
目录
3. Nesterov Accelerated Gradient Descent (NAG)
优化器优化的是学习率,他发生在反向运算中。学习率衰减,是每次迭代衰减的方法,在前向运算中。
.在这里SGD和mini-batch是同一个意思,抽取m个小批量(独立同分布)样本,通过计算他们的平均梯度均值。
缺点:
(1) leraning rate 选择太小,收敛速度会很慢,如果太大,则loss function会在极小值附近不停的震荡,甚至片偏离。
(2) 容易被困在鞍点。
?
动量可以理解为冲量,梯度在某一位置来回徘徊,不再下降或者下降缓慢可以考虑用冲量。
要是当前时刻的梯度与历史时刻梯度方向相似,这种趋势在当前时刻则会加强;要是不同,则当前时刻的梯度方式减弱。
他是对冲量的改进,给定的目标函数f(x),初始起点x0,起始动量v0
while condition != 停止目标
? ? ?
?
?
自适应学习率,前期用较大的学习率加快收敛,梯度快速下降。对已经下降很多的变量,减缓学习率,对没怎么下降的,则用较大的学习率。公式如下
公式编辑器编辑不出来。。
用第i个变量xi在第i次迭代时的值,表示函数在t次迭代时,对第i个变量的梯度值。根据历史学习率的积累总量来决定当前学习率减小的程度。
设置全局学习率之后,每次通过,全局学习率逐参数的除以历史梯度平方和的平方根,使得每个参数的学习率不同。
优点:学习率可以自适应的减小。在稀疏的样本下,下降的方向,涉及的变量可能有很大的差异。非常适用。
缺点:学习率过早、过量的减少。初始学习率需要手动设置。设置太大优化不稳定,设置太小,没到局部最有结果就停止了。
AdaGrad中存在的问题,在这里的到了解决。改进了两个地方:
1、 将累计梯度信息冲全部历史梯度变为当前时间向前的一个窗口期内的积累。计算历史梯度用下面公式。
历史信息乘上一个衰减系数,然后用作为当前梯度的平方的加权系数相加。历史信息公式如下:
2、解决了设置初始值的问题,不用手动指定学习率
好吧。。
我直接放上最后的公式
RMS? root mean square 均方根
鉴于神经网络都是非凸条件下的,RMSProp在非凸条件下结果更好,改变梯度累积为指数衰减的移动平均以丢弃遥远的过去历史。
相比于AdaGrad的历史梯度:?
?
RMSProp增加了一个衰减系数来控制历史信息的获取多少:?
Adam算法可以看作修正后的Momentum+ RMSProp算法, 学习率通常建议为0.001.
?
?
AdaGrad和AdaDelta是两种自适应算法。
RMSProp,Adam,Adamax等算法与AdaDelta有点像。
在高维度和高复杂问题中,带冲量的梯度下降法是最主流的,不过对于收敛效果不好的,自适应很有用,优化后期AdaDelta和RMSProp常出现反复震荡,效果不如带冲量的。
地址:海南省海口市电话:0898-08980898传真:0898-1230-5678
Copyright © 2012-2018 耀世娱乐-耀世注册登录入口 版权所有ICP备案编号:琼ICP备xxxxxxxx号