文晨銳,楊歆豪,張嘉慧,張 珂
(蘇州大學(xué)機(jī)電工程學(xué)院,江蘇 蘇州 215006)
隨著深度學(xué)習(xí)的發(fā)展,圖像識別等各類任務(wù)已由傳統(tǒng)的手工提取特征轉(zhuǎn)向神經(jīng)網(wǎng)絡(luò)自動(dòng)提取特征,同時(shí)隨著神經(jīng)網(wǎng)絡(luò)架構(gòu)逐漸變深,其參數(shù)量也越來越大,參數(shù)的更新問題是實(shí)現(xiàn)網(wǎng)絡(luò)進(jìn)行圖像識別等任務(wù)的基本問題[1-4]。神經(jīng)網(wǎng)絡(luò)訓(xùn)練的關(guān)鍵在于用優(yōu)化器進(jìn)行參數(shù)更新,根據(jù)調(diào)整學(xué)習(xí)速率策略的不同,將優(yōu)化器分為兩類:①手動(dòng)調(diào)整學(xué)習(xí)速率優(yōu)化器,如隨機(jī)梯度下降法(Stochastic Gradient Descent,SGD)、帶有動(dòng)量的SGD算法(Stochastic Gradient Descent with Momentum,SM)等[5-7]。②自動(dòng)學(xué)習(xí)速率優(yōu)化器,如Adagrad(Adaptive gradient algorithm)、RMSProp(Root Mean Square Prop)、Adam等[8,9]。
盡管自動(dòng)學(xué)習(xí)速率優(yōu)化器在許多深度學(xué)習(xí)任務(wù)中取得了成功,但是有研究[10]表明,手動(dòng)調(diào)整學(xué)習(xí)速率的優(yōu)化器能夠以相同甚至更快的速度獲得更好的結(jié)果。目前深度模型的研究工作,由于自動(dòng)學(xué)習(xí)速率優(yōu)化器的泛化效果較差,通常采用基于動(dòng)量的方法進(jìn)行訓(xùn)練。
深度模型中運(yùn)用廣泛的優(yōu)化器大多基于梯度的優(yōu)化方法。SGD算法的前身是梯度下降法,該方法簡單易理解,但它受到大數(shù)據(jù)集冗余計(jì)算的限制。SGD算法通過對整個(gè)數(shù)據(jù)集的隨機(jī)子集進(jìn)行采樣,解決了梯度下降法因數(shù)據(jù)集過大而訓(xùn)練過慢的問題。然而SGD算法因隨機(jī)梯度導(dǎo)致下降速度較慢,且易在局部最優(yōu)點(diǎn)附近振蕩。SM算法在原有的SGD算法的基礎(chǔ)上加入動(dòng)量項(xiàng),即將先前累積的梯度方向作為當(dāng)前下降方向的重要參考,加快了梯度下降,但SGD算法存在的局部最優(yōu)點(diǎn)振蕩問題并沒有在此得到解決。當(dāng)出現(xiàn)局部最優(yōu)點(diǎn)振蕩,訓(xùn)練過程將花費(fèi)更多的時(shí)間成本和計(jì)算成本,同時(shí)會阻礙SM算法收斂,因此,緩解該問題能夠節(jié)約資源以及實(shí)現(xiàn)更好的收斂。
動(dòng)量項(xiàng)的存在使得過去累積梯度時(shí)刻對當(dāng)前梯度作用,正是如此,當(dāng)出現(xiàn)在局部最優(yōu)點(diǎn)時(shí),過去累積梯度促進(jìn)當(dāng)前梯度繼續(xù)向著原始方向前進(jìn),從而產(chǎn)生局部最優(yōu)點(diǎn)振蕩。本文提出了一種用于深度網(wǎng)絡(luò)訓(xùn)練的優(yōu)化算法——SSM(Separated SM)算法。通過分離動(dòng)量項(xiàng),防止當(dāng)前梯度受過去累積梯度的影響,從而緩解局部最優(yōu)點(diǎn)振蕩問題,這是其它優(yōu)化算法中不曾考慮的方面。本文的主要工作如下:①提出一種用曲率半徑分離動(dòng)量項(xiàng)的一階動(dòng)量算法。②采用不同網(wǎng)絡(luò)模型以及利用不同的數(shù)據(jù)集進(jìn)行訓(xùn)練測試,驗(yàn)證算法的可行性與準(zhǔn)確性。
SM算法[6]通過積累過去梯度的指數(shù)衰減移動(dòng)平均值,調(diào)節(jié)梯度方向,朝著一致的方向移動(dòng),其擬合速度快。更新規(guī)則如下所示
vt+1=αvt-r?Lt
θt+1=θt+vt+1
(1)
其中vt是指歷史梯度積累,α∈(0,1)是衰減移動(dòng)平均值。由Wangpeng An的研究[10]所知,?Lt表示的梯度,可將其理解為誤差et,因此將上式展開后可得到
(2)
式中,α是為了解決在進(jìn)行小批量訓(xùn)練時(shí)隨機(jī)梯度的問題,減少干擾。
將該算法運(yùn)用到一個(gè)正定二次目標(biāo)q(x)=xTAx/2+bTx中進(jìn)行定量分析,A=UTDU,用y=Ux重新參數(shù)化q(x)可得
p(y)≡q(x)=yTDy/2+(Ub)Ty
(3)
式中[p]i(t)=λit2/2+cit,c=Ub,λi>0為A矩陣的特征值。用SMz(α,p,y,v)表示參數(shù)向量,z∈{x,v},可得:
SMz(α,p,y,v)=αv-r?p(y)
(4)
從式(4)可以看出SM算法可同時(shí)作用n個(gè)一維參數(shù)向量,動(dòng)量存在于每項(xiàng)單維參數(shù)問題中,作用于參數(shù)更新過程。
SM算法的動(dòng)量項(xiàng)使得當(dāng)前梯度受過去累積梯度的影響,實(shí)際上從研究中可以得出,SM算法在任何情況下都使用過去累積梯度來影響當(dāng)前梯度,這會導(dǎo)致當(dāng)前梯度方向產(chǎn)生偏差。尤其是當(dāng)梯度在局部最優(yōu)點(diǎn)附近時(shí),過去累積梯度會直接影響當(dāng)前梯度向前探尋,由此,該算法出現(xiàn)在局部最優(yōu)點(diǎn)附近振蕩。
此外,Ilya Sutskever的研究[12]表明,在一個(gè)二維橢圓二次目標(biāo)中,SM算法所采取的優(yōu)化路徑沿高曲率垂直方向表現(xiàn)出較大的振蕩。本文嘗試用SM算法找尋Rosenbrock函數(shù)[13]的最小值,初始點(diǎn)設(shè)置為(1,0),20次迭代結(jié)果如圖1所示。由圖1(b)圖可以看出,SM算法在到達(dá)最小值后仍有明顯的軌跡上升,由左側(cè)的等高線圖可以看出,迭代軌跡明顯遠(yuǎn)離最小值。因此證明動(dòng)量項(xiàng)的存在有時(shí)阻礙了擬合過程。
圖1 SM算法的迭代路徑圖
SM算法引入的動(dòng)量項(xiàng)考慮了過去和現(xiàn)在的梯度,依此更新網(wǎng)絡(luò)參數(shù)。而當(dāng)過去累積梯度超過當(dāng)前梯度太多,則無法修正更新方向,從而出現(xiàn)振蕩現(xiàn)象。因此,需要在適當(dāng)?shù)臅r(shí)機(jī)減弱過去累計(jì)梯度的影響,本文借助曲率適當(dāng)消除動(dòng)量項(xiàng)。
曲率能夠表明參數(shù)在某一時(shí)刻的變化程度,曲率半徑能夠描述曲率的變化,進(jìn)而能夠描述參數(shù)值的變化情況。不同時(shí)刻下的參數(shù)點(diǎn)的曲率各不相同[14]。常用的曲率的數(shù)學(xué)公式為
(5)
當(dāng)曲率半徑小于閾值時(shí),去掉動(dòng)量項(xiàng),以免累積梯度影響當(dāng)前更新方向;當(dāng)曲率半徑大于閾值時(shí),保留動(dòng)量項(xiàng),加速梯度下降。為了實(shí)現(xiàn)對動(dòng)量項(xiàng)的限制,設(shè)置了一個(gè)動(dòng)量開關(guān)項(xiàng),如式(6)所示
η(ρt,λ)=ρt1{ρt>λ}
(6)
η(ρt,λ)是動(dòng)量開關(guān)項(xiàng),ρt為當(dāng)前時(shí)刻的曲率半徑,λ為曲率半徑閾值。
(7)
參數(shù)更新規(guī)則如式(7)所示,式中的α指的是動(dòng)量項(xiàng)系數(shù),設(shè)為0.999,?Lt是t時(shí)刻的梯度。
由于該算法借助曲率半徑限制動(dòng)量項(xiàng),因此需要選擇曲率半徑閾值λ。使用Resnet模型對CIFAR10數(shù)據(jù)集進(jìn)行圖像識別,優(yōu)化階段使用本文的算法,通過對曲率數(shù)據(jù)的觀測,將曲率半徑范圍限制在[10,70]進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如下表1所示。
表1 不同曲率半徑下驗(yàn)證集的準(zhǔn)確率
前兩次迭代的準(zhǔn)確率在閾值為60、70時(shí)最高,從第三次迭代到第七次迭代,λ=20時(shí),準(zhǔn)確率呈現(xiàn)平穩(wěn)小波動(dòng)上升,第八次到第十次迭代,λ=30時(shí),隨著迭代次數(shù)的增加,準(zhǔn)確率逐漸升高,第十次迭代準(zhǔn)確率可達(dá)79.97%。整體數(shù)據(jù)來看,曲率半徑閾值為30時(shí),準(zhǔn)確率呈現(xiàn)出無大幅振蕩的上升趨勢。因此,后續(xù)的迭代閾值設(shè)為30。初始化閾值設(shè)為60,閾值設(shè)定具體見式(8),第四章實(shí)驗(yàn)部分表明,在不同的數(shù)據(jù)集以及不同的深度模型下,實(shí)驗(yàn)效果較好。
(8)
將本文算法運(yùn)用到正定二次目標(biāo)q(x),用SSMz(α,p,y,v)表示參數(shù)向量,可得
SSMz(α,p,y,v)=αηv-r?p(y)
(9)
在高曲率特征方向,曲率半徑較小,ηi為0時(shí),即表示對于第i個(gè)參數(shù)變化到高曲率部分,在高曲率特征方向消除動(dòng)量項(xiàng),可以防止振蕩。
同樣,用本文算法找尋Rosenbrock函數(shù)[13]的最小值,初始點(diǎn)設(shè)置相同,20次迭代結(jié)果如圖2所示。由圖2(b)可以看出,SSM算法在到達(dá)最小值后軌跡同樣出現(xiàn)上升趨勢,但上升趨勢不大。由左側(cè)的等高線圖可以看出,迭代軌跡集中在最小值附近。對比圖1圖2,SSM算法能夠緩解振蕩問題。
為了驗(yàn)證SSM算法的有效性,本文分別在三個(gè)公開數(shù)據(jù)集MNIST、CIFAR10和CIFAR100上進(jìn)行實(shí)驗(yàn)[16,17]。MNIST為數(shù)字手寫體數(shù)據(jù)集,MNIST是數(shù)據(jù)集NIST的子集,包含60000個(gè)訓(xùn)練數(shù)據(jù)和10000個(gè)測試數(shù)據(jù),圖像是固定為28×28大小的灰度圖像。cifar-10數(shù)據(jù)集共有60000張RGB圖像,圖像大小為32×32,圖像標(biāo)簽分為10個(gè)類,每類6000張圖像。在此數(shù)據(jù)集上,分別在Resnet模型和Densenet模型上進(jìn)行實(shí)驗(yàn)[18,19],在兩個(gè)模型上分別對SM算法和SSM算法進(jìn)行對比實(shí)驗(yàn)。
此外,本文算法與SM算法在CIFAR100的數(shù)據(jù)集上進(jìn)行對比,測試不同數(shù)據(jù)集下的算法的準(zhǔn)確性。CIFAR100數(shù)據(jù)集包含100小類,每小類包含600張圖像,分別是500張訓(xùn)練圖像和100張測試圖像。100小類被分組為20個(gè)大類,這是比CIFAR10更精細(xì)分類的數(shù)據(jù)集。實(shí)驗(yàn)所用的計(jì)算機(jī)配置為:Intel Core i5-8300H CPU,8GB RAM,GPU為GeForce GTX 1050Ti。
為了對比本文算法與SM算法的性能,本文首先用MNIST數(shù)據(jù)集訓(xùn)練LeNet,20次迭代的訓(xùn)練批大小為64,學(xué)習(xí)率設(shè)為0.1。經(jīng)實(shí)驗(yàn)所得實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 MNIST數(shù)據(jù)集對比實(shí)驗(yàn)結(jié)果
SM算法早期準(zhǔn)確率在正常范圍內(nèi),由圖3(a)可知,在第六次迭代時(shí),測試集準(zhǔn)確率尚在94.87%,在第七次迭代時(shí)極速衰減至10.28%,圖3(b)中損失也相應(yīng)地極速增大。該現(xiàn)象表明前六次累積梯度影響了第七次迭代的下降方向,使其偏離尋優(yōu)軌跡。
反觀本文算法,前期準(zhǔn)確率就高于SM算法2%,整體曲線保持波動(dòng)不大的水平狀態(tài),準(zhǔn)確率穩(wěn)定在98%上下,由此表明,本文算法相較于SM算法并未因?qū)W習(xí)步長大而大量累積過去梯度,該實(shí)驗(yàn)結(jié)果證明了本文算法的優(yōu)良性能。
本文采用Resnet模型[18]對SM算法和本文的算法進(jìn)行對比驗(yàn)證。實(shí)驗(yàn)初始化學(xué)習(xí)率為0.1,迭代次數(shù)為100時(shí),降至0.01,迭代次數(shù)為200時(shí),降至0.0001。實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 Resnet模型下不同算法的對比實(shí)驗(yàn)結(jié)果
從圖4(a)中可以看出,本文的SSM算法訓(xùn)練集的準(zhǔn)確率整體高于SM算法。學(xué)習(xí)率為0.1的100次迭代過程中,本文算法準(zhǔn)確率高出SM算法準(zhǔn)確率的2%,訓(xùn)練至220次時(shí)最終準(zhǔn)確率持平于99.8%左右。測試集的準(zhǔn)確率如圖4(b)所示,學(xué)習(xí)率為0.1的100次迭代過程中,本文算法的準(zhǔn)確率普遍高于SM算法,平均高出2%,且準(zhǔn)確率曲線波動(dòng)幅度較小。前100次迭代可以看出目標(biāo)函數(shù)已到達(dá)最優(yōu)點(diǎn)附近,當(dāng)學(xué)習(xí)率降至0.01時(shí),參數(shù)更新的步伐變小,準(zhǔn)確率有了顯著提升。從圖中可以看出,第100次迭代到第200次迭代過程中,SM算法出現(xiàn)了明顯的局部最優(yōu)點(diǎn)振蕩問題,而本文的算法明顯改善了該問題,使得準(zhǔn)確率保持在92.5%左右。
Densenet通過通道上的連接實(shí)現(xiàn)特征重復(fù)利用,所需的參數(shù)和計(jì)算成本相較于Resnet更少[19]。本文為驗(yàn)證不同模型下算法的有效性,在CIFAR10數(shù)據(jù)集上使用Densenet模型進(jìn)行訓(xùn)練和驗(yàn)證,初始化學(xué)習(xí)率為0.1,Densenet的深度設(shè)為19,設(shè)定迭代次數(shù)為150,在迭代次數(shù)為100時(shí),學(xué)習(xí)率降為0.01,實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 Densenet模型下不同算法的對比實(shí)驗(yàn)
訓(xùn)練集的準(zhǔn)確率曲線由圖5(a)展現(xiàn),本文的SSM算法150次迭代后最終的準(zhǔn)確率為90.63%,而SM算法的訓(xùn)練集準(zhǔn)確率最高為88.12%。測試集的準(zhǔn)確率如圖5(b)所示,由前100次迭代過程可以看出,由于學(xué)習(xí)率較大,準(zhǔn)確率曲線振蕩明顯,本文算法所呈現(xiàn)的準(zhǔn)確率普遍高于SM算法,但振蕩程度有所改善。當(dāng)學(xué)習(xí)率降至0.01時(shí),本文的SSM算法的測試集準(zhǔn)確率基本穩(wěn)定在87.17%,而SM算法仍振蕩明顯,平均準(zhǔn)確率為84.8%。實(shí)驗(yàn)結(jié)果表明用不同的網(wǎng)絡(luò)模型訓(xùn)練能達(dá)到相同的改善效果,局部最優(yōu)點(diǎn)的振蕩問題均得以改善。
本文在CIFAR100數(shù)據(jù)集進(jìn)行SM算法與SSM算法的對比實(shí)驗(yàn)。運(yùn)用深度為22的Resnet模型對該數(shù)據(jù)集進(jìn)行訓(xùn)練和測試,初始學(xué)習(xí)率為0.1,迭代100次時(shí)降至0.01,實(shí)驗(yàn)結(jié)果如表2所示。
表2 不同算法準(zhǔn)確率與損失的比較
針對CIFAR100數(shù)據(jù)集,實(shí)驗(yàn)將SM算法分別與曲率半徑閾值為30、40、50的SSM算法進(jìn)行實(shí)驗(yàn)對比。實(shí)驗(yàn)分別計(jì)算出不同算法的前100次迭代與后50次迭代的驗(yàn)證集準(zhǔn)確率及訓(xùn)練集準(zhǔn)確率,分別計(jì)算出不同算法的訓(xùn)練集與驗(yàn)證集損失函數(shù)的最小值。從表中可以看出,前100次迭代,SM算法的驗(yàn)證集準(zhǔn)確率平均為46.70%,后50次迭代提升至66.53%,而曲率半徑閾值為40的SSM算法,驗(yàn)證集準(zhǔn)確率高出SM算法1.3%。由此可知,針對不同的數(shù)據(jù)集,本文提出的SSM算法仍能表現(xiàn)出良好的性能。
本文針對優(yōu)化算法中常見的局部最優(yōu)點(diǎn)振蕩問題,提出了一種動(dòng)量項(xiàng)分離的優(yōu)化算法。通過計(jì)算目標(biāo)函數(shù)在每個(gè)時(shí)刻的曲率半徑,根據(jù)閾值確定動(dòng)量項(xiàng)能否存在,從而緩解振蕩。從模型準(zhǔn)確性和擬合速度上得到如下結(jié)論:①準(zhǔn)確性上,在不同模型結(jié)構(gòu)以及數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn)對比,SSM算法相較于SM算法,具有高準(zhǔn)確率、快速穩(wěn)定收斂的特點(diǎn),且能夠適當(dāng)減少迭代次數(shù)。該算法相較于一階動(dòng)量算法,準(zhǔn)確率平均提升了2個(gè)百分點(diǎn)。②擬合速度上,本文的算法由于引入附加的參數(shù),每次迭代相較于SM算法會花費(fèi)多一點(diǎn)時(shí)間,迭代速度會變緩,然而,由于局部最優(yōu)點(diǎn)振蕩變?nèi)?,迭代次?shù)相應(yīng)能夠較少,總的迭代時(shí)間會縮短,提高一定的擬合速度。
綜上所述,本文提出的SSM算法具有較高的準(zhǔn)確率,同時(shí)能夠穩(wěn)定而快速地實(shí)現(xiàn)任務(wù),是實(shí)現(xiàn)參數(shù)更新的一種有效的優(yōu)化算法。