本博客暂略公式推导
一个好的优化器,应该能够容易的逃离saddle(鞍点),在遇到flat minima时留下;反之,一个坏的优化器,难以逃离saddle,却不乐于呆在flat minima(注意不是逃离flat minima,因为如果一个空间可以被称为flat minima,该空间则至少是次优解,甚至是最优解,从理论的角度讲,没有必要“逃离”)
FLAT MINIMA图示:
那么,本文的主角,Adai做了什么?Adai通过解偶Grad以及Momentum,让模型能够更快的逃离saddle points,更倾向选择flat minima而不是sharp minima.
那么为什么要让模型倾向于选择flat而不是sharp呢?直观的讲,对于两个不同的样本集合,模型寻找到同一个flat的几率是要大于sharp的几率的,这意味着模型的泛化性更好,倾向于选择sharp的模型更加不稳定;不过也有人认为通过参数化可以将flat转为sharp(flat minima vs sharp minima),而不影响模型的泛化能力,此处不再作讨论。
总的来说,本文介绍的Adai,做了几件事:
研究的背景以及问题陈述:
梯度下降的公式:
计算梯度:
根据历史梯度计算一阶和二阶动量 ,
更新模型参数
随机梯度下降:
近似 SGD 动力学的朗之万方程(以布朗运动为原型推导的公式):
参考A Diffusion Theory For Deep Learning Dynamics: Stochastic Gradient Descent Exponentially Favors Flat Minima,而福克-普朗克方程描述了由朗之万方程控制的概率密度,
下式中
为单位矩阵,
为梯度噪声协方差矩阵,
为梯度噪声 :
其中
注意到,
the dynamical time t in the continuoustime dynamics is equal to the product of the number of iterations T and the learning rate η
即动态时间 t 等于迭代次数 T 和学习率的乘积:,则在驻点c可以有
其中
为训练样本的数量,为第
次训练的损失函数
驻点示意图:
示意图:
上图的实验结果证明,不论是对于预训练过的还是随机初始化的模型,
都与batch_size成反比,
与成正比。
而在本文当中,作者给出了
的实验证明:
从上图可以看到,
确实是正确的。
那么就可以引来假设一:
Assumption 1. The loss function around the critical point c can be approximately written as
由上述讨论,可以有定理一:
Theorem 1 if:
注意,
这意味着当
接近0时,SGD难以逃离saddle
这也是为什么现今的SGD一般都要加一个momentum,而不是单纯的随机梯度下降。
有一个物理学上很容易想象的例子,对于一个重球,他总是偏向于按照惯性下降至最低点,而SGD的朴素随机梯度下降则不太符合现实生活中的重球下落,那如果给SGD加一个表示“质量”的“惯性”呢?
于是有了仿照动力学的method:
The Heavy Ball Method :
由heavy ball method,有定理二:
Theorem 2: if:
then:
通过对比定理1,2的
,可以发现SGD逃出鞍点仅仅是因为扩散效应,而Momentum的作用在于提供一个额外的惯性。
作者之后又给出了两个假设:
Assumption 2 (Quasi-Equilibrium Approximation). The system is in quasi-equilibrium near minima. Assumption 3 (Low Temperature Approximation). The system is under low temperature (small gradient noise).
即模型在minima处是准平衡的,且模型的梯度是低噪的。
那么有定理三:
Theorem 3 if:
tjhen: 逃出最低谷a的平均时间为:
即就平均逃逸时间而言,Momentum不影响flat minima的选择
作者针对Adam提出了看法一和看法二:
Proposition 1 对于adam,有: if:
then:
Proposition 2 对于adam,有
以及:
从上述的proposition 1可以看出,对于Adam,对比定理二,因为Momentum和diffusion在saddle附近都是近似于 Hessian 独立和各向同性(不怎么受batch控制)的,所以Adam很容易逃出saddle;而从propositon 2可以看出,对比定理三,Adam的方向受hessian的控制更小,更容易走向sharp minima.
作者需要解决的问题是什么?
如下,由于SGD以及Adam缺点的存在,作者试图提出一个优于两者的优化器Adai:
Adai的算法:
Clip用于生成一个规定大小的随机数组,同时限制数组中数据的上下界。
对于Adai escapes saddle points,作者提出第三个看法:
Proposition 3 if:
then: 通过鞍点过程中的总动量漂移为:
其中,
是在 c 处 Hessian 的迹范数
通过对比定理二、看法一以及Adai的算法不难发现:Adai允许了Momentum起到更大的作用;这种作用是否一定能更好的让模型逃离saddle呢?作者仅给出了实验结果:
在三轮实验中,adai/adaiw的standart deviations是最小的,这意味着adai能够更容易的找到一个minima而不是困在saddle处。
对于Adai escapes minima,作者给出第四个看法:
Proposition 4
对比定理三,不难发现,Adai 具有与 SGD Momentum 类似的收敛保证
紧接着,作者推导了Adai的一些量化数据,即定理四:
接下来是测试Adai性能的一些实验,这里出于节省时间考虑,直接机翻了:
图三:相比 Momentum 和 Adam,Adai 可以始终比 SGD 更好地泛化,同时分别保持类似的快速或更快收敛
图四:通过在 ImageNet 上训练 ResNet50,可以发现Adai 的泛化能力明显优于 SGD 和 Adam
图五:Adai 不仅具有更好的最优测试性能,而且与带有 Momentum 和 Adam 的 SGD 相比,测试误差范围更广。这意味着 Adai 对学习率和权重衰减的选择更加稳健
图六:与 Momentum 和 Adai 相比,Adam 对最小锐度的依赖要小得多
图七:Adai 给出的 Hessian 的最高特征值明显小于 SGD 和 Adam。由于大特征值和迹是最小值锐度的常用度量,验证了 Adai 很好地学习了平面最小值
如上,adai选择flat minima的优越性不仅有实验证明,而且有数学公式的推导;但对于adai的escae saddle则没有一个严谨的数学推导,仅仅有实验数据,我认为这算是一个weak conclusion
本文的appendix实在太长,以后有空再看(逃)