【2020春】李宏毅机器学习(New Optimizers for Deep Learning)
https://www.bilibili.com/video/av94519857?p=8
https://www.bilibili.com/video/av94519857?p=9
-----总结-----
一次能够拿到所有训练数据,就是offline learning。
每次梯度反方向
Momentum(累加历史所有梯度,即使当前梯度为0,也会因为历史梯度的影响,继续移动,防止卡在鞍点)
Adagrad(随着时间累计,分母可能会无止境变大,导致leanring rate*gradient接近0,也就相当于卡住。EMA问题)
RMSProp(通过增加一个系数alpha,解决EMA问题。但是梯度为0的情况还是可能进入鞍点。)
Adam(结合Momentum和RMSProp,既能避免EMA问题,又能避免梯度为0进入鞍点。)
Ada系列集中在2014年左右被提出的。
实际应用
Adam 和 SGDM
训练acc
验证acc
一篇论文
结论:Flat Minimum和Sharp Minimum
- adam:训练更快,但是与测试gap大,不稳定;
- sgdm:更稳定,与测试gap小;
如何提高Adam?
经过1000步很小的gradients之后,遇到一个较大的gradient,但是受movement影响,只能移动很小的一步。也就是大量Non-informative梯度抑制了informative梯度。
从公式可以看出,一次更新的最大移动距离的上届就是(sqrt(1/(1-beta_2)))*eta
这篇文章提出记住历史最大的v_t,就可以避免non-informative gradients的影响了。
另一篇文章
如何提高SGDM?
lr太大或太小,都不如适中的时候好。LR Range Test
Adam需要warm up,否则前期的梯度会很乱。
warmup,前期走小步一点。
Variance大,则走小步;Variance小,则走大步。
通用的方法
再看Momentum
Adam in the future:Nadam
L2 regularization or weight decay?【SGDWM或AdamW(实际应用比较多)】
更多探索,效果更好
耐心教导模型
找我内推: 字节跳动各种岗位
作者:
ZH奶酪(张贺)
邮箱:
cheesezh@qq.com
出处:
http://www.cnblogs.com/CheeseZH/
*
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。