这是Adama的作者和深度学习三巨头之一的Geoffrey Hinton最近放出的新算法,今天有空来拜读一下,看看大神们是怎么思考问题的。

一,问题是什么?

记得AI界有位大牛曾经说过:科学研究要么是问题驱动,譬如如何解决XXX问题;要么就是方法驱动,譬如:YYY可以用来干什么。在笔者看来,这篇论文属于前者,是要解决具体问题的。什么问题呢?SGD(随机梯度下降)到目前为止表现还算良好,但还不太尽如人意。其中一个点就是收敛速度慢,对超参数和局部鞍点敏感,鲁棒性不好。很多牛人针对此点提出了不同的改进算法。这些改进算法主要分两类 1), adaptive learning rate scheme, 典型代表就有AdaGrad和Adam;2), acclerated schemes, 典型代表有Polyak heavyball, Nesterov动量等。这些算法呢都基于迭代过程中累积的梯度来对学习率和/或相关参数进行动态调整,以加快收敛过程。但是呢,这些改进算法的主要问题就是需要对超参数进行重度调整,这样毕竟不好,调参嘛,这是一个经验活,和中医一样,太依赖于主观经验和个人能力。这几位大神呢就想通过一种办法来把这事量化和标准化,以减少对个人经验的依赖,从而形成一套系统的解决方法;而这方法的落地就是他们提出的Lookahead算法,一种新的优化算法!

二,Lookahead如何工作的?

在这个算法框架中,有两类权重:fast weights和slow weights;更新快的权重和更新慢的权重;有两层循环,内循环中通过传统的优化算法(SGD,Adma等)更新fast weights, 外循环更新slow weights。内循环进行过k次fast weights更新之后,外循环才进行一次slow weights更新,并且slow weights更新的方向是内循环中fast weights经过k次更新后的方向。几位大神表示,这样做可以让方差变小。并且大神们宣称Lookahead对超参数不敏感,所以,它解决了上面提到的其它算法中的手动重度调次优超参数的问题!并且最最最重要的是,收敛变快了并且模型泛化能力更好了,而且是在同类任务中相对低成本的计算平台上得出变快这个结果的!这就比较牛逼了!作者们给出的任务包括:在CIFAR和ImageNet数据集上训练ResNet-50和ResNet-152,在Penn Treebank数据集上训练LSTM,在WMT 2014 English-to-German数据集上训练基于transformer的神经机器翻译模型等。说了半天,该上干货了!

paper compass教学设计(Paper阅读LookaheadOptimizer:)(1)

浅显直白,是笔者见过的最通俗易懂的算法之一。注意每次内循环的参数初值都是外部循环参数的上一迭代出来的值,就这样一个小trick, 就把SGD和ADAM之流比下去了!!!

三,为什么Lookahead能解决问题?

传统的优化算法如SDG等需要仔细调整学习率来防止波动和加快收敛速度。而Lookahead呢?paper中的原话是:

Lookahead, however, benefits from a larger learning rate in the inner loop. When oscillating in the high curvature direction, the fast weights updates make rapid progress along the low curvature direction. The slow weights help smooth out the oscillation through the parameter

interpolation. The combination of fast weights and slow weights improves learning in high curvature directions, reduces variance, and enables Lookahead to converge rapidly in practice.

大意是说:学习过程中,如果梯度在高曲率方向附近波动时,内循环会在低曲率方向快速更新权重;而外循环会通过迭换每k次内循环要用的权重初值(相当于插值)来平滑掉波动。内外结合,使梯度在高曲率方向上进行,从而减小方差,实现快速收敛。下面的截图主要是该算法的收敛性(convergance)证明,方差收敛分析等。

paper compass教学设计(Paper阅读LookaheadOptimizer:)(2)

四,实验数据

paper compass教学设计(Paper阅读LookaheadOptimizer:)(3)

paper compass教学设计(Paper阅读LookaheadOptimizer:)(4)

paper compass教学设计(Paper阅读LookaheadOptimizer:)(5)

paper compass教学设计(Paper阅读LookaheadOptimizer:)(6)

paper:https://arxiv.org/pdf/1907.08610.pdf

,