前注:
本讲的内容按照学习路线上Gradient Descent的补充知识
New Optimization
New Optimizers for Deep Learning
What you have known before?
常见Optimization的方法
- SGD(随机梯度下降)
- SGD with momentum
- Adagrad
- RMSProp
- Adam
一些Notation
Momentum:History
送进一个$x_t$,送入$\theta_t$得到,$y_t$,会与送入的label比较a.k.a $\hat{y_t}$
Why Optimization
使损失函数最小(优化问题)
如何sumover所有的dataset?
On-line v.s. Off-line
Off-line : pour all into model at every time step.
On-line: one pair of $(x_t,\hat{y_t})$ at a time step.
SGD
SGDM
把momentum累计
时间上的weighted Sum。
考虑到过去的momentum的影响。
为啥要SGDM呢?
当某一个gradientj接近0的时候,或local minimum的时候,有可能有卡住不动的情况出现。
以为我们前面的移动(左1梯度大)会我们累加过来使我们继续移动,虽然这一点(左2)的gradient很小,
Adagrad
实时调整learning rate。
RMSProp
与adgrad唯一的差别在于分母的算法。
确保$v_t$不会永无止境的变大,而是在时间上有weighted sum,不会因为前几步的步伐太大而停下来。给之前的vt乘上一个系数 就不会出现前几步grad太大,造成的分母太大,更新为0。
因为Adagrad是前面所有的求和,所以$v_t$会永无止境的变大,使步伐越来越小。
Adam
上两个也很难解决local mimum的问题
Adam=SGDM+RMSProp的优势结合。
[参考资料](SGD,SGDM,Adagrad,RMSProp,Adam,AdamW复习笔记 - 木吉子的文章 - 知乎 https://zhuanlan.zhihu.com/p/129702058)
还有没有别的Optimizer?
事实上,是很少再有了。
Optimizer的Real Application
2014年以后,很少有可以超越SGDM/Adam的算法。
视频没有看完,但现阶段对Adam和SGDM的优化暂且与我无瓜。