在线数据流校验(引入Powerball与动量技术)
本文介绍的是 IJCAI-2020论文《pbSGD: Powered Stochastic Gradient Descent Methods for Accelerated Non-Convex Optimization》,该论文由华中科技大学、滑铁卢大学和加州大学伯克利分校合作完成。
作者 | 孙伟高
编辑 | 丛 末
论文地址: https://www.ijcai.org/Proceedings/2020/0451.pdf
开源地址:https://github.com/HAIRLAB/pbSGD
1
前言深度学习的训练由于高维函数空间和随机目标函数的存在,相比于传统优化而言更加困难。随机梯度下降(Stochastic Gradient Descent)作为深度学习领域内第一种被广泛用于优化训练的方法,通过其计算小批量数据的目标损失,并向负梯度方向迭代更新模型参数。目前,基于SGD方法已衍生出许多用于更加高效训练神经网络的优化方法。
在这篇论文中,我们提出了一种新的基于SGD的优化方法(pbSGD)用于训练神经网络。
与目前的主流思路(自适应学习率或者动量法)不同,该论文作者在之前的工作[1]中,通过利用ODE的有限时间稳定性的直观表达,提出了一种新的加速算法收敛的方法。这类称为Powerball的方法,是通过简单的将幂系数 γ∈[0,1)添加到各类基于梯度的优化方法中的梯度上得到的。从本质上讲,Powerball方法可以看作是相对于p-范数的最速下降法,其中 p = 1 1/γ。这里,Powerball函数而不是其他非线性函数的一种直观的解释是:一方面,数学中带有指数(幂)算子的多项式可以用来逼近任意的非线性函数。因此,作者们将幂系数作为变量参数来创建Powerball函数。另一方面,因为幂系数 γ∈[0,1),根据幂函数的作用原理,不难发现,通过引入作用于梯度的幂系数,可以有效地改善梯度消失的现象。
对于离散时间模型(优化算法)在有限时间内收敛性的推导是非常困难的。正是这一点促使[1]中作者提出了优化方法的连续时间模型,并分析了它们在有限时间内的收敛性。此外,[1]中指出了对于给定的优化问题,如何选取最优的γ在理论上是开放的。众所周知,当涉及大规模优化问题时,初始迭代对于给定的计算约束是至关重要的。为此,[1]中也开发了几类Powerball方法的变形,它们在经验上都分别优于标准的优化方法,特别是在初始迭代中。在[1]中的基于多个实际数据集上的实验表明,文中所提出的方法可以使(随机)梯度下降法和L-BFGS方法的收敛速度提高10倍。
具体而言,基于[1]中作者提出的在梯度下降法中应用Powerball函数的基本思想,本文将其推广到了SGD的情形,得到了一类简单且通用的改善深度神经网络训练效率的方法。在pbSGD中,Powerball函数作用于SGD中的随机梯度项,其作用机制与[1]中一致。该方法在迭代过程中对随机梯度做了简单的幂函数变换改善了SGD方法的性能,通过只引入一个额外的超参数即幂指数项。我们进一步提出了结合动量(momentum)的pbSGD,即pbSGDM,并给出了两种方法的收敛性理论分析。
实验表明,提出的pbSGD和pdSGDM方法,可以实现与其他自适应梯度方法相比更快的收敛速度,以及与SGD方法的相近的泛化效果,同时该方法可以保持[1]中方法的优点,主要包括在初始迭代时的训练加速、算法性能对超参数的鲁棒性,以及有效地改善梯度消失问题。
2
研究背景随机优化是深度学习研究中非常重要的一环。基于SGD方法,近些年提出了许多其他能有效训练深度神经网络的优化方法,例如结合动量的SGD方法(SGD with Momentum,SGDM)、RMSProp和Adam等。自适应算法(比如AdaGrad、RMSProp、Adam)通常在前期可以获得较好的收敛性能,然而最近研究表明自适应算法在优化中容易收敛到局部极小值,在测试集上泛化性能较差。因此许多计算机视觉与自然语言处理方面的研究仍然采用SGD用于训练网络。另一方面,相比于自适应方法SGD在收敛速度方面有所欠缺。因此,如何使得SGD可以在非凸条件下有效逃离鞍点并取得更好的收敛效果成为了热点研究领域。
针对SGD的设计思路目前主要有两种:动量法和自适应学习率。SGDM从物理角度出发引入了一个动量项,并在实际应用中取得了比SGD更快的收敛效果,动量可以看作是指数滑动平均的一个特例。自适应算法通常采用自适应学习率的思路,通过积累历史的二阶与一阶梯度信息来动态修改学习率,最早应用于AdaGrad方法中,Adam结合了AdaGrad与RMSProp算法成为目前最为常用的优化器之一。
与目前的主流思路(自适应学习率或者动量法)不同,我们提出了一种新方法,采用Powerball函数对梯度项作非线性变换来改善SGD在非凸情况下的表现,即pbSGD方法。本文的主要贡献如下所示:
-
我们基于SGD提出了一种简单易用的优化方法pbSGD,给出结合了动量的pbSGD变体即pbSGDM。
-
我们在多种数据集与任务上进行了详尽的实验对比,实验结果表明本文提出的方法能在训练前期取得比自适应算法更好的收敛速度,同时在测试集上与SGD和SGDM的泛化效果相近。
-
我们提供了在非凸条件下pbSGD和pbSGDM的收敛速度的理论分析。
3
算法介绍我们这里给出所提两种算法的思路和推导,其中pbSGD把Powerball优化方法和传统的随机梯度下降法相结合,pbSGDM是pbSGD引入动量项以后的延伸。
1、pbSGD训练一个含有n个自由参数的DNN网络,可以被建模为一个无约束的优化问题:
这里f是一个有下界的函数,SGD已经被证明是高维优化问题的一个有效且高效的求解方法。它通过迭代地更新参数向量对f进行了优化,这个更新是朝着随机梯度g的反方向进行的。这里的随机梯度是通过训练数据集的第t个小批次计算而来。SGD的参数更新策略如下所示:
现在,我们介绍一个新颖的非线性函数:
并称之为Powerball函数。这里sign是指符号函数,如果z是一个向量,则Powerball函数要作用到z的每一个元素上。这里的参数gamma是Powerball函数引入的一个新参数,用以调整Powerball函数作用的机制和强度。
这里,我们把Powerball函数作用到SGD的随机梯度项上,如下所示:
便得到了新的pbSGD优化算法。
2、pbSGDM动量技术是从物理过程中获取的灵感,已将其成功地应用于SGDM,并在大多数情况下可以获得神经网络的更佳训练结果。我们这里同样提出pbSGD的动量加速形式,即pbSGDM,其参数更新规则为:
本文提出的两个算法,其伪代码可总结为如下形式:
4
实验对比在三个公开数据集CIFAR-10、CIFAR-100和ImageNet上,我们分别使用了几种不同的模型来比较算法的收敛速度和泛化效果,其中CIFAR-10用于训练模型ResNet-50和DenseNet-121、CIFAR-100用于训练ResNet-29和WideResNet、ImageNet用于训练ResNet-50。另外我们构建了一个13层的全连接神经网络来验证pbSGD缓解梯度消失的能力。
1、收敛和泛化对比实验
我们在三个数据集上完成了七个不同的对比实验,对比用的优化器有SGDM、pbSGD、pbSGDM、AdaGrad、RMSProp和Adam,我们在1.0~1e-4的范围内通过网格搜索找到最佳的学习率,每个学习率完成五次求平均值以避免随机误差,其他的超参数保持默认值,实验中参数的设置与其他论文保持一致。下图展示了最佳学习率的情况下,各优化器在不同实验下的训练曲线,其中箭头标注出的是测试集上最佳的准确率,实验结果如下所示:
从实验结果中我们可以看出加入Powerball函数得到的pbSGD算法在没有积累历史梯度信息的情况下,在前期收敛上比自适应算法(AdaGrad、RMSProp和Adam)更加迅速,在CIFAR-10和CIFAR-100测试集上的表现与SGD相比相差无几,pbSGDM和pbSGD表现相近。在ImageNet数据集上pbSGD仍然展现出了较好的收敛速度,但是我们注意到泛化性能与SGD差距加大,我们猜测是自适应算法和pbSGD改变了梯度分布,在较大数据集上导致了不好的结果。
2、梯度消失Powerball函数的引入重新缩放了梯度向量,因此在深度神经网络中还可以缓解梯度消失的问题。我们设计了一个13层的全连接网络,激活函数选择为ReLU,分别使用SGD和pbSGD来训练,学习率仍然采用网格搜索选取。通过实验我们发现SGD无法训练该网络结构,而pbSGD在缩放梯度向量后可以正常训练模型。
3、鲁棒性改善
在实验中我们发现,超参数gamma的引入不仅可以加速收敛,同时可以改善对测试集准确率和收敛性的鲁棒性。(gamma=1.0时pbSGD变为了SGD算法)
1)改善学习率对准确率的鲁棒性
超参数gamma可以在设置学习率较小时规范测试集表现,例如在学习率eta=1e-3、gamma=0.6时,pbSGD的测试集准确率为90.06%,而SGD准确率为79.87%。
2)改善学习率对收敛的鲁棒性
超参数gamma同样可以改善学习率对收敛的鲁棒性,在学习率设置的不太合适时pbSGD仍然能取得较好的收敛表现。
4、与学习率策略相结合
pbSGD只对梯度项做了改变,因此可以与其他优化方法很好的结合起来去进一步提升整体的性能。我们选择了restart的学习率策略用于对比实验,从结果中可以看出结合了学习率策略的pbSGD取得了更好的结果。
5、对batch size的鲁棒性
增加batch size可以加大每次迭代时的计算量从而加速训练过程,然而因为改变了梯度的分布特点,也会导致泛化性能的变差。我们采用不同的大小进行对比实验来探讨pbSGD对batch size的鲁棒性。从实验中我们可以看出,batch size的增加使得SGD的泛化性能迅速降低,而对pbSGD的影响相对较小,Powerball函数的引入提升了SGD对于batch size的鲁棒性。
5
总结本文中我们提出了一种简单易行但切实有效的方法用于改进SGD和SGDM方法的性能,实验结果证明该方法可以有效地加速训练中模型前期的收敛、改善超参数选择的鲁棒性,并且缓解梯度消失的问题。另外,该方法可以很好的与其他方法相互补,比如学习率策略,用于进一步改进优化器的性能。
参考文献:
[1] Y. Yuan, M.Li, J. Liu and C. Tomlin, "On the Powerball Method: Variants of DescentMethods for Accelerated Optimization," in IEEE Control Systems Letters,vol. 3, no. 3, pp. 601-606, 2019.
招 聘
AI 科技评论希望能够招聘 科技编辑/记者
办公地点:北京/深圳
职务:以跟踪学术热点、人物专访为主
工作内容:
1、关注学术领域热点事件,并及时跟踪报道;
2、采访人工智能领域学者或研发人员;
3、参加各种人工智能学术会议,并做会议内容报道。
要求:
1、热爱人工智能学术研究内容,擅长与学者或企业工程人员打交道;
2、有一定的理工科背景,对人工智能技术有所了解者更佳;
3、英语能力强(工作内容涉及大量英文资料);
4、学习能力强,对人工智能前沿技术有一定的了解,并能够逐渐形成自己的观点。
感兴趣者,可将简历发送到邮箱:jiangbaoshang@yanxishe.com
点
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com