卜文銳
(陜西國防工業(yè)職業(yè)技術學院 陜西省西安市 710300)
神經(jīng)網(wǎng)絡在人工智能的發(fā)展當中起到了重要作用,它通常包含著較為復雜的結構和數(shù)量龐大的參數(shù),其優(yōu)化過程的主要目的就是有針對性地更新各類參數(shù),使得為解決問題而設定的損失函數(shù)取得令人滿意的最小值。一般而言,在許多實用性較強的領域中,神經(jīng)網(wǎng)絡的優(yōu)化過程是一個較為復雜的問題,其主要原因是在將實際問題抽象為數(shù)學模型的過程中,需要引入相當數(shù)量的各類參數(shù),神經(jīng)網(wǎng)絡需要處理的參數(shù)無論是較大的數(shù)量還是復雜的結構都讓最優(yōu)解的求解較為困難。
在神經(jīng)網(wǎng)絡優(yōu)化算法當中,非常經(jīng)典的方法是選取網(wǎng)絡參數(shù)的梯度作為最小化損失函數(shù)的突破口,在很大程度上借鑒了工程數(shù)學研究中關于最速下降方法的研究成果,具體算法稱為隨機梯度下降法,簡稱SGD。相比于盲目地在參數(shù)空間中搜索,SGD 方法已經(jīng)具有巨大的優(yōu)勢了。但是,根據(jù)需要求解的具體問題,也有著比SGD 更好的優(yōu)化算法。
1.2.1 SGD
SGD 方法的表達式如式(1)所示,W 是神經(jīng)網(wǎng)絡的權重,?L/?W 是損失函數(shù)對W 的偏導數(shù),η 為學習率(一般取0.01 或0.001)。

SGD 方法的局限性從式(1)中也可以看出,那就是梯度的方向并不一定總是指向最小值的方向。因此,在出現(xiàn)此類情況的問題中,SGD 方法的搜索效率將會大打折扣。
1.2.2 Momentum
Momentum 的表達式如式(2)和式(3)所示,W 是神經(jīng)網(wǎng)絡的權重,?L/?W 是損失函數(shù)對W 的偏導數(shù),η 為學習率,v 為速度。

Momentum 方法對應的物理模型非常類似非光滑、非真空環(huán)境下,在平面上滾動的球體,式(2)中的第一項代表了球體運動時受到的各種阻力。
1.2.3 AdaGrad
在神經(jīng)網(wǎng)絡的學習中,學習率(數(shù)學式中記為η)的設定對于網(wǎng)絡參數(shù)的優(yōu)化具有重要意義。其設定過小,相當于在搜索過程中步長過小,優(yōu)化效率較低;其設定過大,相當于在搜索過程中選定了較大的步長,可能長時間在最小值附近擺動而無法收斂。在解決工程問題的過程中,學習率衰減的方法被廣泛采用:在搜索開始距離最小值較遠時,采用較大的搜索步長;當搜索逐漸進行,接近最小值附近時,調(diào)小搜索步長。在此基礎之上,AdaGrad 方法拓展了該方法的細節(jié),針對各個參數(shù)在神經(jīng)網(wǎng)路模型中的不同用途,專門為其設定衰減率,相當于更加細化的學習率衰減方法。

圖1:四類算法最優(yōu)化結果對比
用數(shù)學式表示AdaGrad 的更新方法如式(4)和式(5)所示,W 是神經(jīng)網(wǎng)絡的權重,?L/?W 是損失函數(shù)對W 的偏導數(shù),η 為學習率。其中參數(shù)h 的設置就是為了抑制某些參數(shù)因搜索步長過大而無法收斂,具體而言:從式(4)可以看出,如果某個參數(shù)的梯度變化較大,則其h 值也會發(fā)生較大改變:而式(5)中h 值存在于分母上,就確保權重W 值只發(fā)生較小的改變,也就確保了搜索步長有針對性地衰減。

1.2.4 Adam
在優(yōu)化算法的發(fā)展過程中,各類算法相互借鑒,不斷優(yōu)化的案例十分豐富,也往往有著意想不到的效果。Adam 方法就是結合了Momentum 方法和AdaGrad 方法的特點,并進行了一些獨特算法特征的引入,在2015年正式進入最優(yōu)化方法的行列。
MNIST 是機器學習領域最有名的數(shù)據(jù)集之一,從各類AI 訓練的典型實驗到許多知名期刊發(fā)表的論文都能見到其被廣泛使用。實際上,在閱讀圖像識別或機器學習的各類資料時,它是非常典型的研究對象,包含可以用于學習和推理的訓練圖像6 萬張,測試圖像1 萬張。神經(jīng)網(wǎng)絡的訓練過程與其它AI 的訓練類似,也即將訓練集上的訓練結果用于測試集上的圖像進行分類,而分類的效率和準確率通常是度量神經(jīng)網(wǎng)路模型好壞的基本參數(shù)。

圖2:不同迭代次數(shù)下四種算法損失函數(shù)對比
MNIST 數(shù)據(jù)集是由28×28 像素的圖像組成,每個像素點根據(jù)其灰度的差異在0-255 之間取值,并以此保存為一個數(shù)組。在訓練過程中,每個數(shù)據(jù)所對應的分類標簽(0-9 總共10 個分類)會被輸入神經(jīng)網(wǎng)絡作為參考;而在測試過程中,數(shù)據(jù)的標簽將不提供給神經(jīng)網(wǎng)絡。
3.1.1 四類算法對比
以求解式(6)所示的函數(shù)最小值作為四類算法對比研究的目標,在工程優(yōu)化問題當中此類函數(shù)也經(jīng)常被作為研究對象,根據(jù)其等高線圖對比最優(yōu)化算法的好壞。

針對該函數(shù)的特征,不同類型算法在最優(yōu)化參數(shù)的過程中往往會表現(xiàn)出各不相同的特征。
3.1.2 MNIST 數(shù)據(jù)集實驗參數(shù)
在MNIST 數(shù)據(jù)集上,我們比較前述SGD、Momentum、AdaGrad 和Adam 這四種算法的優(yōu)化效果,并確認不同的方法在學習進展方面的差異。我們采用一個5 層神經(jīng)網(wǎng)絡,其中每層設置100 個神經(jīng)元,激活函數(shù)采用ReLU 函數(shù),迭代次數(shù)分別設定為1000、2000、3000 和4000。
3.2.1 四類算法對比實驗
SGD、Momentum、AdaGrad 和Adam 算法在式(6)所示最優(yōu)化問題上的結果如圖1 所示。SGD 方法主要體現(xiàn)了Z 字形搜索方式,而其它三種方法的搜索則有較顯著的非線性特征。從結果來看,AdaGrad 方法的結果最優(yōu)。但是,在最優(yōu)化問題中,結果會根據(jù)需要解決的問題而有較大的變化;并且,根據(jù)超參數(shù)(學習率等)設定的差異,結果也會發(fā)生變化。所以,在神經(jīng)網(wǎng)絡解決實際問題的過程中,網(wǎng)絡結構的設定和各類參數(shù)的設置往往決定著最終優(yōu)化算法的結果。
3.2.2 MNIST 數(shù)據(jù)集最優(yōu)化算法對比
從圖2 的結果中可知,與SGD 算法相比,其它3 種算法學習效率較高,而且速度較為接近,細致分析不同迭代次數(shù)的學習效果圖可以看出,AdaGrad 算法的學習效率總體略高于其它算法。和求解函數(shù)最小值問題時類似,我們只能確定,在當前設定的實驗參數(shù)條件下,另3 種方法學習效率比SGD 算法更高,在多數(shù)情況下最終識別手寫數(shù)字的精度也更好。
神經(jīng)網(wǎng)絡參數(shù)的優(yōu)化是人工智能研究當中非常重要的問題,基于不同的算法設計理念,四種常用方法均有著各自的特色。在求解函數(shù)最小值問題的過程當中,AdaGrad 算法在SGD、Momentum、AdaGrad 和Adam 算法中具有較好的結果;在學習手寫數(shù)字識別領域典型的MNIST 數(shù)據(jù)集時,我們設定的迭代次數(shù)在1000、2000、3000 和4000 的5 層神經(jīng)網(wǎng)絡(每層設置100 個神經(jīng)元,激活函數(shù)采用ReLU 函數(shù))結果體現(xiàn)出與SGD 算法相比,另3 種方法學習效率更高,同時AdaGrad 算法的學習效率總體略高于其它算法。