我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
已经有人记了笔记(很用心,强烈推荐):
https://github.com/Sakura-gh/ML-notes
本节对应笔记:在 Sakura-gh/ML-notes 仓库中无。
簡仲明
同学讲授,目的为介绍 Adam
等优化器,不会讲解证明,力求大家会用就好。(x, y)
,off-line 是在拥有所有 (x, y)
后,进行学习。SGD
,SGDM(SGD with Momentum)
(上节课有提及);Adagrad
(上节课介绍过),可以理解为对于 Momentum
的改进,防止在大梯度时走过大,小梯度时走过小。RMSProp
进行了
操作,防止在某一幅度摆动过于夸张。Adam
,可以理解为 SGDM + RMSProp
。BERT
由 ADAM 训练,Transformer
由 ADAM 训练,Tacotron
由 ADAM 训练;YOLO
由 SGDM 训练,Mask R-CNN
由 SGDM 训练,ResNet
由 SGDM 训练;Big-GAN
由 ADAM 训练, MAML
由 ADAM 训练。SGDM
或者 Adam
?因为这二者抢到了两个极端的位置,见[小细节](#Adam vs SGDM)。AMSGrad(2018)
。但是 AMSGrad only handles large learning rates
。AdaBound(2019)
解决。但是该方法也有些“粗暴”。Cyclical LR(2017)
,其学习率呈周期性变化;而 SGDR(2017)
是呈曲线三角函数型的变化;One-cycle LR(2017)
是一个周期变化。warmup
的优势,以及 RAdam
。(见[小细节](#Does Adam need warm-up?))Lookahead(2019)
,为优化器做了一个“包裹”:k step foward, 1 step back, universal wrapper for all optimizers
。Nesterov accelerated gradient, NAG(1983)
,并不是为深度学习提出(为了数学优化),思路为首先预测未来的区域好坏(超前部署),从而决定是否下降。涉及到一些数学证明。Nadam(2016)
实际上就是将 NAG
用到 Adam
上。L2 regularization
的故事。见[小细节](#Do you really know your optimizer?)。提出了 weight decay
比 L2
的效果好,以及 SGDWM
, AdamW
。NLP中使用 AdamW
比较多,AdamW
比之前提出的各种新算法在工程上意义都大。Suffling
,Dropout
, Gradient noise(2015)
。The more exploration, the better!Warm-up
, Curriculum learning(2009)
, Fine-tuning
。(从简单的开始)Teach your model patiently!Normalization
, Regularization
。有没有可能将其结合?SWATS
横轴是分布,纵轴是代数。可以看到,有了 warmup
分布会有所改善。
warmup
的意义在于,在不确定方向好不好时,不要暴走。
还有一种 RAdam(2020)
,使用 R 帮助决定 Adam
的步长。
RAdam | SWATS | |
---|---|---|
Inspiration | Distortion of gradient at the beginning of training results in inaccurate adaptive learning rate | non-convergence and generalization gap of Adam, slow training of SGDM |
How? | Apply warm-up learning rate to reduce the influence of inaccurate adaptive learning rate | Combine their advantages by applying Adam first, then SGDM |
Switch | SGDM to RAdam | Adam to SGDM |
Why switch | The approximation of the variance of is invalid at the beginning of training | To pursue better convergence |
Switch point | When the approximation becomes valid | Some human-defined criteria |
如上图,对于 SGDM:
这其实没有标准答案。
Loshchilov 在 2017 写了篇文章:
weight decay
;SGDWM
与 AdamW
,额外减去一个
weitgh decay。
SGDM:
Adam:
给一些建议。
SGDM:
有没有 Universal Optimizer ? No Way.