关键问题:Adam能否进垃圾t桶,被其他“东西”替代?
在之前的内容中,提到过Adam和SGDM(SGD+momentum)在众多论文中常常呈以下表现形式。
Adam优化器更快收敛,但是不太稳定,到了后期的性能不如SGDM的性能。
SGDM优化器更加稳定,收敛好,但运行速度较慢。
Adam和SGDM应用于众多领域,部分如下表。
Adam | SGDM |
transformer:翻译 | YOLO:计算机视觉 |
Tacotron:语音生成 | Mask R-CNN |
xxx | ResNet:影像分类 |
所以众多学者就着重于改进二者的性能,于是就诞生了AMS Grad和Ada Bound,但其在设计过程中存在人为经验设定的参数,毕竟我们设计优化器的目的是使其自适应改变,通过经验对部分参数设定的掺杂,可能违背了自适应这一原理。
既然改进性能无从下手,那就将Adam和SGDM进行融合,将Adam的快速训练性能和SGDM的收敛稳定性能结合,创造出一种理论上“完美”的优化器。于是便产生了:
RAdam:SGDM to Adam(在优化过程,先采用SGDM然后采用Adam)
SWATS:Adam to SGDM(在优化过程,先采用Adam然后采用SGDM)
但理论是完美的,实践总是残酷的,经过多方论文验证,从自适应能力和优化性能方面来看,依旧是Adam和SGDM更胜一筹。
不过,研究总是要继续的,随后的时间里,科研人员从其他角度又提出了几种新的优化器。
(1)Lookahead:k step forward, 1 step back。
(2)Nesterov accelerated gradient(NAG):can we look into the future?
等等。
通过以上的学习,还是得出一个结论:Adam该用还是得用,默默的从“垃圾桶”里重拾回来强大的Adam。
最后一个问题:Adam 需不需要 warm-up?答案当然是需要!(具体原因没有深入了解,等学的深入了再反过来看这个问题叭)