APP下载

基于自适应动量更新策略的Adams算法

2023-05-30李满园罗飞顾春华罗勇军丁炜超

上海理工大学学报 2023年2期
关键词:优化算法

李满园 罗飞 顾春华 罗勇军 丁炜超

摘要:Adam算法是目前最常用的优化算法之一,但其面临学习率震荡导致模型不收敛问题,其改进算法AMSGrad也存在梯度递减导致的二阶动量失效问题。针对上述问题,提出了基于自适应动量更新策略的Adams算法。首先,通过为一阶动量和二阶动量引入自适应更新参数,并在最后的参数更新期间采用较小的一阶动量更新参数,构建了一种自适应的动量更新策略。其次,基于该更新策略,提出了一种能够快速收敛的Adams算法。最后,通过理论分析证明了Adams算法的收敛性。基于文本分类和图像分类的对比实验表明,相比于Adam和AMSGrad算法,Adams收敛速度更快、训练结果更好,且具有优秀的泛化能力;消融实验证明了Adams算法自适应动量更新策略的有效性。

关键词:优化算法;自适应动量更新策略;一阶动量;二阶动量

中图分类号:TP 301.6

文献标志码:A

近年来,人工神经网络发展迅猛,已经被广泛应用于人脸识别[1]、目标检测[2]、文本翻译[3]、数据预测[4]及医疗[5]等领域。相较于传统的机器学习算法,神经网络能够更好地利用海量的数据[6]。为了达到更好的效果,神经网络需要进行大量的训练,并通过优化算法来不断地减少损失、优化模型。Adam算法[7]是一种简单且高效的自适应学习率优化算法,可以在训练过程中根据历史梯度自适应调整学习率来获取更好的训练结果[8]。Adam算法易于使用,Yi等[9]的实验证明,其仅使用默认参数就可以获得较好的训练结果,而且,它的计算效率高、占用内存小,适合解决大规模数据和多参数优化问题[10]。因为上述优点,Adam算法目前已经成为神经网络训练中使用最多的优化算法之一。但是,在Adam算法中,为了避免学习率过度衰减导致训练提前结束[11],采用固定时间窗口内历史梯度的累积作为二阶动量。在多次迭代过程中,若训练样本间梯度差过大,会出现二阶动量波动引起的学习率震荡,最终导致模型不收敛[12]。此外,Adam算法还存在泛化能力差、可能因过拟合而错过全局最优解[13]等问题。

为了解决上述问题,并进一步提升Adam算法的性能,不少研究者提出了自己的改进方法。Dozat[14]利用NAG( nesterov accelerated gradient)对Adam算法的一阶动量进行更新,从而提升收敛速度。文献[15-16]指出几乎所有深度学习库中,对于包括Adam算法的权重衰减方法的实现都存在错误,并在Adamw算法中进行修正。Reddi等[12]提出AMSGrad算法,通过改进二阶动量的迭代方式来避免学习率的震荡,从而解决模型不收敛问题。Lazy Adam算法[17]是Adam算法的一种常用的变体,通过引入懒惰梯度更新机制实现对稀疏梯度问题的高效处理,更适用于自然语言处理等梯度稀疏任务。Keskar掣[8]提出在训练的后期,从Adam算法切换到SGD( stochastic gradient descent)算法[19]可以使模型获得更好的泛化性能。

在上述对于Adam算法的改进中,AMSGrad算法解决了Adam算法中存在的模型不收敛问题。但是,当训练中多次迭代的梯度保持不变或整体呈递减趋势,AMSGrad算法的二阶动量会无法正常更新而导致自适应学习率失效。针对这一问题,本文分析了自适应学习率失效的原因,并提出基于自适应动量更新策略的Adams算法。本文的主要研究工作为:a.实现二阶动量自适应更新,在解决模型不收敛的同时,避免自适应学习率失效问题;b.实现一阶动量参数在训练过程中的自适应增加,获取更快的收敛速度;c.在最后的参数更新阶段中,采用较小的一阶动量更新参数,使模型完成更加精细的收敛。

1 Adams算法设计

1.1 自适应学习率失效问题

为了避免Adam算法中因为二阶动量波动导致的模型不收敛问题,AMSGrad算法优化了二阶动量的更新公式,优化后的公式为

vt ← max(β2vtt1 +(1 ∞β2)g2t , vtt 1) (1)式中:9t为梯度;vt为梯度的二阶原点矩的有偏估计,即二阶动量;β2为二阶动量的指数移动加权衰减率,即二阶动量更新系数。

由式(1)可知,AMSGrad算法取迭代前后二阶动量的最大值作为新的二阶动量的值。这一策略可以防止二阶动量在整个训练的过程中出现波动,通过避免学习率震荡来解决模型不收敛问题。但是,若训练过程中梯度整体呈下降趋势,二阶动量则会始终保持不变,无法正常更新,导致算法的自适应学习率失效。

1.2 自适应动量更新策略

一方面为了在解决Adam算法不收敛问题时避免出现自适应学习率失效问题,另一方面为了加速模型的收敛,针对一阶动量和二阶动量,提出了自适应动量更新策略。自适应动量更新策略的设计主要考虑以下几个方面的问题:a.通过为二阶动量引入恒大于1的更新参数,令其在整个训练过程中严格单调递增,避免了学习率的震荡导致的模型不收敛问题。同时,参数不能过大,否则会因二阶动量过度累积导致训练提前结束。b.令一阶动量更新参数随着训练进行逐渐变大,并在最后的参数更新阶段将其设置为较小的值。自适应动量更新策略分为二阶动量改进和一阶动量改进这两部分。

首先,综合考虑Adam算法中的模型不收敛问题与AMSGrad算法中的自适应学习率失效问题,为二阶动量引入自适应更新参数μ,其定义为

μ ← 1 + α/vtt 1 (2)式中,a[为算法的预设学习率。

因为,學习率a[恒为正,且二阶动量v。恒为正,所以,μ恒大于1。μ可以使二阶动量在训练中严格单调递增,同时避免学习率震荡和自适应学习率失效两个问题。此外,μ与算法的实际学习率线性正相关,会在训练中自适应减小,因此,不会出现梯度过度累积导致训练提前结束的问题。基于自适应更新参数,μ构建的自适应二阶动量更新方法,如式(3)所示。

vt ← max(β2vtt 1 +(1 ∞β2)g2t, μvtt 1) (3)

其次,Sutskever等[20]的研究表明:一方面,令一阶动量的更新参数β1在训练过程中缓慢地增大,可以使模型收敛更快,从而达到Hessian-Free优化[21]的效果;另一方面,在最后的参数更新阶段采用较小的一阶动量更新参数可以获得更加精细的收敛结果。因此,令β1在每次迭代完成后乘以μ来缓慢增大,以获取更快的收敛速度。同时,采用文献[20]的策略,即在最后1000次参数更新期间将β1设置为0.9,以获取更好的收敛结果,并设置2个消融实验分别证明这两点改进的有效性。应用这一改动后,一阶动量更新公式为

mt ← μtt 1β1mtt 1 +(1 ∞μtt 1β1)gt (4)式中:m t为梯度的一阶原点矩的有偏估计,即一阶动量;β1为一阶动量的指数移动加权衰减率,即一阶动量更新参数。

1.3 Adams算法

算法1简要描述基于自适应动量更新策略的Adams优化算法的执行流程。

在算法1中,第2行计算出当前梯度9t后,第3,4行分别计算9t的一阶原点矩估计mt和二阶原点矩估计vt,即一阶动量和二阶动量。在迭代初期,计算出的mt和vt都是有偏的,因此,分别在第5,6行对其进行偏差修正。迭代后期,对梯度的矩估计逐渐变为无偏估计,修正强度也逐渐降为1。算法1中第7行得到自适应更新参数μ,用于mt和vt的自适应更新。最后,在第8行完成模型参数的更新。此外,在最后1000次参数更新中将β1设置为0.9并未在算法1中详细写出。

2 Adams算法收敛性证明

为了证明Adams算法的收敛性,需要使用算法收敛性评判的标准定义,以及一些收敛性分析的常用假设,在此基础上,对Adams算法的收敛性进行理论分析。

定义1对于任意给定的未知凸代价函数系列f1(θ),f2(θ),…,f7(θ),算法在迭代中给出预测参数模型θt。用任意给定凸代价函数f1对其进行评估,并使用收敛指标R(T)来对算法进行整体性的评估。当T趋于无穷大时,lim (R(T)/T)=0,则认为此算法收敛。R(T)定义为

至此,证得R(T)存在上界。根据定义1可得结论:Adams算法收敛。

3 实验设计与结果分析

3.1 实验环境

基于深度学习框架PyTorch实现了基于白适应动量更新策略的Adams算法,实验环境中的多个主要工具包的具体版本如表1所示。

在reuters, MNIST. fashion MNIST, CIFARIO,CIFARIOO共5个公共数据集上,通过文本分类与图像分类实验,测试Adams算法的性能。其中,reuters是来自路透社的短新闻文本数据集;MNIST是手写数字的灰度图像数据集;fashionMNIST是包含不同种类商品的灰度图像数据集;CIFARIO,CIFARIOO是包含不同种类物品的彩色图像数据集。5个数据集的数据量、训练集与测试集划分、数据特征如表2所示。

3.2 算法对比实验与分析

Adams算法通过自适应动量更新策略解决Adam算法不收敛问题的同时,避免了AMSGrad算法中的白适应学习率失效问题。因此,选取Adam算法和AMSGrad算法进行对比实验。上述提及的算法均为白适應学习率算法,而Wilson等[16]的研究表明,白适应学习率算法得到模型的泛化能力通常不如带动量的SGD算法(SGD with momentum.简称SGD),因此,将SGD算法也作为对比对象。考虑到不同算法在不同学习率、不同数据集的表现可能不同,算法均训练20轮,步长均设置为64,学习率分别设置为0.0001,0.001,0.002,0.003,0.004,0.005,0.01,0.05,0.1,进行多次实验,并选取最佳结果作为实验结果。

Adams算法的目的是帮助神经网络更快地训练出更好的模型。为了比较Adams算法在不同类型的神经网络中的表现,也为了凸显对比实验的对比性,在不同的数据集上,将使用不同的神经网络进行训练。在reuters,MNIST,fashion MNIST这3个相对较为简单的数据集上进行实验时,使用仅包含一个线性层的全连接神经网络( fullyconnected neural network, FCNN)进行训练,避免因为训练过快而导致实验结果失去对比性;在CIFARIO和CIFARIOO这2个相对复杂的数据集上进行实验时,采用包含3个卷积模块的卷积神经网络( convolutional neural networks,CNN),网络结构如图1 所示。本实验中所有的神经网络的输出都通过softmax函数进行归一化处理,并使用交叉熵计算损失来进行参数更新,具体训练结果如表3所示。Relu,softmax为激活函数。

为了更为直观地对比4种算法,图2 以MNIST数据集为例,给出了4种算法的收敛过程,各算法学习率的设置与表3中相同。从图2(a)可以看出,在MNIST数据集上,SGD的收敛速度最慢,另外3种算法的收敛速度相差不大,其中,Adams收敛速度略快。由图2(b)可知,Adams算法在采用自适应动量更新策略后,得到了更为精细的收敛结果,明显优于SGD,Adam,AMSGrad这3种算法。

在所有数据集上的实验结果如表3所示。从表3可以看出,Adams算法在5个不同数据集上的对比实验中均获得了最高的分类准确率。并且在训练了20轮之后,Adams均得到了最低的损失,这也说明其收敛速度更快。此外,Adams算法在FCNN.CNN两类神经网络上都表现出了更好的性能;在文本分类任务(reuters)和图片分类任务(MNIST, fashionMNIST. CIFAR10, CIFAR100)上也都表现出较好的性能,证明了Adams算法具有优秀的泛化能力。

3.3 消融實验与分析

相比于Adam算法,Adams算法在自适应动量更新策略中进行了3点改进,分别为:a.实现二阶动量自适应更新;b.实现一阶动量参数在训练过程中的自适应增加;c.在最后的参数更新阶段采用较小的一阶动量更新参数。为了进一步探究前2点改进各自的作用,本文在Adam算法的基础上分别单独实现这2点改动,并分别记作Adams-a算法、Adams b算法,与Adams算法一起,在MNIST数据集上进行消融实验。MNIST数据集内数据特征简单,如果采用比较复杂的网络进行训练,在数次迭代后4种优化算法都会达到较高的准确率。为了使实验结果更加具有可比性,在消融实验中仍然使用仅包含1个线性层的全连接神经网络,训练轮次为10次。消融实验的具体实验结果如图3所示。

由图3(a)可知,在Adams a算法中实现二阶动量自适应更新后,获得了与Adams算法相近的损失与准确率,但损失下降速度慢;由图3(b)可知,在Adams b算法中实现一阶动量参数的自适应增加后,得到了更快的损失下降速度,但最终模型损失较高,且准确率较低。这些现象的出现,也进一步证明了:a.二阶动量的自适应更新可以使Adams算法获得更好的收敛结果;b.一阶动量更新参数在训练中自适应增加,并在最后1 000次参数更新中设置为0.9,可以使Adams算法获得更快的收敛速度。

为了验证Adams算法中第3点改进的有效性,将仅应用前2点改进的算法记作Adams c算法,并与Adams算法一起在MNIST上进行消融实验。此实验是为了验证最终的收敛结果是否更加精细,因此,采用早停法,当Adams c算法出现训练次数增多而模型表现变差的情况时停止训练。Adams算法训练相同次数。除此之外,实验采用与算法对比实验相同的参数设置,实验结果如表4所示。从表4中数据可知,这一改动可以略微提升模型的性能。

4 结束语

针对Adam算法中因为学习率震荡导致的模型不收敛问题,以及AMSGrad算法中自适应学习率失效的问题,提出了基于自适应动量更新策略的Adams算法。在Adams算法中,一方面通过为二阶动量引入自适应更新参数来避免不收敛问题和自适应学习率失效问题;另一方面使一阶动量在训练中自适应增大来获取更快的收敛速度,并在最后1000次参数更新期间采用较小的一阶动量更新参数来完成更加精细的收敛。

为了对Adams算法进行性能评估,在reuters,MNIST, fashion MNIST. CIFARIO. CIFARIOO共5个数据集上,与SGD,Adam,AMSGrad算法进行对比。对比实验证明,Adams算法相比其他3种优化算法,收敛速度更快、收敛结果更好。为了进一步验证了Adams算法中2点改动的有效性,在MNIST数据集上进行消融实验。消融实验证明,二阶动量的自适应更新可以使算法获得更好的收敛结果;一阶动量更新参数的自适应增大可以使算法获得更快的收敛速度;在最后的参数更新阶段中,采用较小的一阶动量更新参数可以使模型获得更加精细的收敛结果。

参考文献:

[1] WANG M, DENG W H Deep face recognition:asurvey[J]. Neurocomputing, 2021, 429: 215-244.

[2] ZHAO Z Q,ZHENG P,XU S T,et al.Object detectionwith deep leaming:a review[J]. IEEE Transactions onNeural Networks and Learning Systems, 2019, 30(11):3212-3232

[3] SHEN X P,QIN R J.Searching and leaming Englishtranslation long text information based on heterogeneousmultiprocessors and data mining[J]. Microprocessors andMicrosYstems. 2021. 82: 103895.

[4]张兆旭,刘成忠,基于IFOA-GRNN的电力系统短期负荷预测[J]能源研究LJ信息,2020, 36(3): 162-166.

[5]秦晓飞,郑超阳,陈浩胜,等基于U型卷积网络的视网膜血管分割方法[J]光学仪器,2021, 43(2): 24-30.

[6] SEWAK M. SAHAY S K,RATHORE H.Comparison ofdeep leaming and the classical machine leamingalgorithm for the malware detection[C]//19th lEEE/ACISIntemational Conference on Software Engineering,Artificial Intelligence, Networking and Parallel/DistributedComputing. Busan: IEEE. 2018: 293-296

[7] KINGMA D P,BA J.Adam:A method for stochasticoptimization[C]//3rd Intemational Conference on LeamingRepresentations. San Diego: ICLR, 2015: 1-15.

[8] AITCHISON L Bayesian filtering unifies adaptive andnon-adaptive neural network optinuzation methods[C]//Proceedings of the 34th Intemational Conference on NeuralInformation Processing Systems. Vancouver: CurranAssociates Inc.2020: 18173-18182.

[9] YI D,AHN J,JIS.An effective optimization method formachine leaming based on ADAM[J]. Applied Sciences,2020, 10(3): 1073-1093

[10]周揚帆.面向深度学习的随机梯度优化算法研究[D].洛阳:河南科技大学,2020

[11] SINGH B,DE S,ZHANG Y M Z,et al.Layer-specificadaptive learmng rates for deep networks[C]//IEEE 14thIntemational Conference on Machine Leaming andApplications. Miami: IEEE. 2015: 364-368.

[12] REDDI S J,KALE S,KUMAR S.On the convergence ofAdam and beyond[C]//The 6th International Conference onLearning Representations. Vancouver: ICLR, 201 8: 1-23

[13] WILSON A C,ROELOFS R,STERN M, et al.Themarginal value of adaptive gradient methods iIlmachine learning[C]//Proceedings of the 3 1 st InternationalConference on Neural Information Processing Systems.Long Beach: Curran Associates Inc. . 2017: 4151-4161.

[14] DOZAT T. Incorporating nesterov momentum intoAdam[C]//The 4th Intemational Conference on LearningRepresentations. San Juan: Open Review. 2016: 1-4.

[15] ILYA L. FRANK H. Fixing weight decay regularization inAdam[C]//The 6th International Conference on LearningRepresentations. Vancouver: Open Review. 2018: 1-14.

[16] LOSHCHILOV I. HUTTER F. Decoupled weight decayregularization[C]//The 7th Intemational Conference onLearning Representation. New Orleans: ICLR. 2019: 1-4.

[17] QURESHI M N. UMAR M S. SHAHAB S. A transfer-learning-based novel convolution neural network formelanoma classification[J] . Computers, 2022. 1 1(5): 64.

[18] KESKAR N S. SOCHER R. Improving generalizationperfonnance by switching from Adam to SGD[DB/OL].[2017-12-20]. https://arXivpreprintarXiv:1712.07628.

[19] ROBBINS H. MONRO S. A stochastic approximationmethod[J]. The Annals of Mathematical Statistics, 1951.22(3): 400-407.

[20] SUTSKEVER I. MARTENS J. DAHL G. et al. On theimportance of initialization and momentum in deeplearning[C]//Proceedings of the 30th InternationalConference on International Conference on MachineLearning. Atlanta: JMLR. org, 2013: 1139-1147.

[21] MARTENS J. Deep learning via hessian-free optimization[C]//Proceedings of the 27th Intemational Conference onMachine Leaming. Haifa: ICML. 2010: 735-742.

猜你喜欢

优化算法
浅议小学数学口算教学的有效策略
云计算平台联合资源调度优化算法研究
PLC故障检测优化算法
原子干涉磁力仪信号鉴频优化算法设计
故障树计算机辅助分析优化算法研究与应用
混沌优化算法在TSP问题的应用
基于混沌初始化和高斯扰动的烟花算法
再制造闭环供应链研究现状分析
二进制数转十进制优化算法探讨
故障树计算机辅助分析优化算法的实践应用