new optimization

new optimizer for deep learning

1、SGD

2、SGD with momentum

前一步的累积会移动到下一步当中,就算达到鞍点和局部最低点,带有动量的SGD还是会继续前行,下一步的movement等于: -u*梯度+v*动量

3、Adagrad

即在梯度方向乘了一个数,如果过去的梯度很大,就要降低学习率,因为梯度很大,说明在一个很崎岖的路上寻找全局最低,比如上面图的绿色方向,梯度比较大,所以需要用一个比较小的学习率

4、RMSProp

原理和Adagrad很像,同时借用了Momentum的思想;Adagrad的分母是不断累加的,加入一开始就很大,导致后面学习率特别小,而RMSprop在时间上有缓冲,上式中的vt表示的就是EMA (exponential moving  average)of gradient is not monotonically increasing 不会永无止尽的增加。

5、Adam

之前的算法无法解决初始化的梯度就为0 的情况

example:BERT\ Transformer

 

Adam:在训练集上达到很好成绩,SGD+momentum在验证集有很好的成绩

原因:其中一个原因是Adam能够在比较sharp 的地方找到minimum,相反SGDM在flat的地方找到

ADAM因为能够动态地调整学习率,所以收敛速度很快,而SGDM没有这样的效果

 

 

 

SWATS:先使用Adam(比较快),再使用SGDM

问题1:什么时候切换

问题2:学习率怎么改变

 

Adam有个trouble,当训练的开始阶段,梯度会很小而且没有什么信息,这时候梯度就是漫无目的的走,但是当梯度很大的时候,因为有之前的影响,导致movement不会很大,最大也只会是\sqrt{\frac{1}{1-\beta _{2}}}\eta,作者的改进方法是AMSGrad,AMSGrad中的V在现在的V和上一次的V中选最大值,减小了无意义的梯度(Adam梯度小,但是学习率大)影响。

 

AdaBound是对学习率设置边界,有 上界和下界,相比较于AMSGrad,即能处理很大的学习率,又能处理小学习率

ADAM:因为能够动态地调整学习率,所以收敛速度很快,而SGDM没有这样的效果,因此可以从SGDM进行调整

 

LR range:不断调整学习率来寻找最好的学习率

不断地调大调小学习率,另外两种方法:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值