杜 鵬,李 超,石劍平,姜 麟
(昆明理工大學(xué)理學(xué)院,云南 昆明 650500)
近期機器學(xué)習(xí)中監(jiān)督學(xué)習(xí)的許多突破都是通過深度神經(jīng)網(wǎng)絡(luò)的應(yīng)用實現(xiàn)的,神經(jīng)網(wǎng)絡(luò)的深度是獲得這些成功最重要的因素之一。在經(jīng)典圖像分類數(shù)據(jù)集ImageNet上,2012年,Krizhevsky等人[1]使用深度卷積神經(jīng)網(wǎng)絡(luò)—AlexNet將1 000分類的正確率提升至84%,AlexNet取得的突破是前所未有的。在接下來的幾年里,主流的網(wǎng)絡(luò)結(jié)構(gòu)突破方向大致是加深網(wǎng)絡(luò)。Simonyan等人[2]在2014年使用更深層次的網(wǎng)絡(luò)架構(gòu)將分類正確率提升至95%。然而簡單地增加網(wǎng)絡(luò)層數(shù)并不意味著能提高網(wǎng)絡(luò)的學(xué)習(xí)效果,訓(xùn)練更深層次的網(wǎng)絡(luò)始終是一個巨大的難題。2015年,Srivastava等人[3]提出Highway Networks,借鑒解決循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(Recurrent Nerual Network)中的問題而被提出的長短期記憶LSTM(Long Short-Term Memory)結(jié)構(gòu),在深度神經(jīng)網(wǎng)絡(luò)中使用門函數(shù)來控制信息在層與層之間的流動,形成一種捷徑連接方式,解決了梯度信息回流受阻,網(wǎng)絡(luò)訓(xùn)練困難的問題。之后He等人[4]提出殘差網(wǎng)絡(luò)ResNet(Residual Nerual Network),利用殘差學(xué)習(xí)機制來解決深度神經(jīng)網(wǎng)絡(luò)的可訓(xùn)練問題,模型增加一個恒等映射,并通過捷徑連接,將殘差構(gòu)件的輸出與輸入逐個相加。2017年,Lu等人[5]從微分方程數(shù)值解的角度出發(fā),提出線性多步結(jié)構(gòu)LM-architecture(Linear Multi-step architecture),以ResNet為基礎(chǔ)模型,構(gòu)造效率更高的深度神經(jīng)網(wǎng)絡(luò)模型LM-ResNet。
尋找合適的捷徑連接方式指導(dǎo)深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計,并輔以對應(yīng)的網(wǎng)絡(luò)權(quán)重初始化條件以及訓(xùn)練參數(shù)設(shè)置,可以解決網(wǎng)絡(luò)的可訓(xùn)練性問題以及模型的效率提升問題。本文將微分方程數(shù)值解法—阿當(dāng)姆斯Adams法思想,遷移到網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計中,提出一種基于阿當(dāng)姆斯法的捷徑連接(shortcut connection)方式。對類殘差學(xué)習(xí)機制的網(wǎng)絡(luò)保留殘差學(xué)習(xí)機制,解決梯度消失問題,并將之前相鄰殘差構(gòu)件的輸入與當(dāng)前殘差構(gòu)件的輸入進行加權(quán)求和,使得相鄰層之間對于特征的提取更緊密,在網(wǎng)絡(luò)訓(xùn)練后期梯度值更新幅度較小時,能繼續(xù)完成對權(quán)值的更新,以達到更高的學(xué)習(xí)精度,使網(wǎng)絡(luò)變得更有效。特別地,本文以ResNet為基礎(chǔ)模型,對于不同的層數(shù),在Cifar10數(shù)據(jù)集上進行驗證,并將基于Adams法的捷徑連接方式的ResNet模型Adams-ResNet與源模型ResNet、LM-ResNet進行對比,Adams-ResNet有更好的結(jié)果。
多層神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)與微分動力系統(tǒng)數(shù)值解的研究很早就被聯(lián)系在了一起,將微分動力系統(tǒng)成熟的數(shù)值解法遷移到神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)上是可行的[6]。
類殘差網(wǎng)絡(luò)模型通過組成一個序列來構(gòu)造復(fù)雜的變換將輸入轉(zhuǎn)換到隱藏層:
ht+1=ht+f(ht,θt)
(1)
其中,ht∈RD為時刻t的輸出,D表示輸出的維度,t∈{0,1,…,T},T表示最終時刻,對應(yīng)網(wǎng)絡(luò)輸出層,θt為時刻t的網(wǎng)絡(luò)層權(quán)重。這些迭代可以視為連續(xù)變換的歐拉離散形式[5,7,8]。
當(dāng)層數(shù)足夠多步長足夠小,在此基礎(chǔ)上取極限情況,Chen等人[9]用神經(jīng)網(wǎng)絡(luò)對應(yīng)的常微分方程ODE(Original Differential Equation)來參數(shù)化連續(xù)動力系統(tǒng)中的隱藏單元:
(2)
從輸入層h0出發(fā),可以定義hT的輸出。這與微分方程在時刻T的初值求解問題是一致的。
Lu等人[5]從理論上證明了一些類殘差學(xué)習(xí)機制的神經(jīng)網(wǎng)絡(luò)與微分方程數(shù)值解法之間的聯(lián)系,例如2016年Larsson等人[10]提出的FractalNet,以及Zhang等人[11]提出的PolyNet,這些深度神經(jīng)網(wǎng)絡(luò)都有關(guān)聯(lián)的ODE和與之對應(yīng)的數(shù)值解形式,如表1所示。
Table 1 ODEs and corresponding numerical solutions associated residual-like network 表1 一些類殘差網(wǎng)絡(luò)關(guān)聯(lián)的ODE與數(shù)值解方法
對于類殘差網(wǎng)絡(luò)關(guān)聯(lián)ODE的初值求解問題,考慮形式如式(1)所示的阿當(dāng)姆斯法:
(3)
hn+2=hn+1+knfn+(1-kn)fn+1
(4)
其中,kn∈R為對應(yīng)隱藏層中的可訓(xùn)練參數(shù)。特別地當(dāng)取m=1時,即為微分?jǐn)?shù)值解法中的歐拉法?;诖?本文在類殘差網(wǎng)絡(luò)的殘差單元之間構(gòu)造了Adams法的捷徑連接。這種捷徑連接方式依賴于源模型的殘差單元結(jié)構(gòu),因此本文更關(guān)注比源模型更優(yōu)的結(jié)果。圖1所示為采用了不同捷徑連接方式的ResNet與Adams-ResNet結(jié)構(gòu)。
Figure 1 Structures of ResNet and Adams-ResNet using different shortcut connection圖1 不同捷徑連接方式的ResNet與Adams-ResNet結(jié)構(gòu)
Figure 2 Examples of 10 types of image in Cifar10圖2 Cifar10中10類圖像示例
Cifar10數(shù)據(jù)集有10個分類,共60 000幅彩色圖像,圖像像素大小為32×32,每類圖像6 000幅,其中5 000幅為訓(xùn)練集,剩余1 000幅為驗證集。原數(shù)據(jù)集中50 000幅訓(xùn)練圖像被隨機劃分為5個批次,每個批次10 000幅,本文實際訓(xùn)練時每重新訓(xùn)練一次都會將50 000幅圖像混合再重新隨機打亂,避免每次訓(xùn)練時同批次的圖像皆為某幾類圖像,造成網(wǎng)絡(luò)后期權(quán)值更新出現(xiàn)振蕩。圖2所示為Cifar10中10類圖像中隨機抽取的10幅圖像。
本文直接在50 000幅圖像的訓(xùn)練集上進行實驗,并使用10 000幅圖像的驗證集進行評估。同樣地,本文關(guān)注的是深度神經(jīng)網(wǎng)絡(luò)可訓(xùn)練性本身,并不是獲取在該數(shù)據(jù)集上最優(yōu)的結(jié)果。因此,本文使用與He等人[4]相同的簡單殘差構(gòu)件單元來驗證實驗,即使用一個2層的卷積網(wǎng)絡(luò)構(gòu)成一個殘差構(gòu)件單元,整個網(wǎng)絡(luò)結(jié)構(gòu)以一個單層的3×3卷積層開始,緊隨著3個不同通道數(shù)的殘差構(gòu)件、全局平均池化層和1個全連接層分類層。每個殘差構(gòu)件的殘差單元有一個可訓(xùn)練參數(shù)kn,并且在模型訓(xùn)練時令其初始值服從[1,1.1]上的均勻分布。其余的權(quán)重初始值和批歸一化處理BN(Batch Normalization)層初始參數(shù),本文分別采用與文獻[12,13]中相同的參數(shù)設(shè)置,并且同樣舍棄了隨機失活dropout層,權(quán)重衰減率和沖量分別設(shè)置為0.000 1與0.9。在Cifar10上訓(xùn)練時,使用隨機梯度下降SGD(Stochastic Gradient Descent)優(yōu)化器訓(xùn)練240次,批次大小為128。為了使網(wǎng)絡(luò)在前期快速收斂,實驗中前40次訓(xùn)練采用0.01的學(xué)習(xí)率進行熱身,41~160次的訓(xùn)練學(xué)習(xí)率采用0.1,161~180次訓(xùn)練期間學(xué)習(xí)率降為0.01,余下的每次訓(xùn)練選取衰減率0.01更新學(xué)習(xí)率直至訓(xùn)練結(jié)束。
本文對Cifar10數(shù)據(jù)集中的圖像做了簡單的數(shù)據(jù)增強[14]。在訓(xùn)練時對每幅圖像進行零填充,將像素大小擴充到36×36,再隨機裁剪出一幅32×32的圖像進行隨機水平翻轉(zhuǎn),并利用圖像3個通道像素值的均值與方差對其進行歸一化處理。這種預(yù)處理操作,在每一次訓(xùn)練時都是隨機的,避免模型在每次訓(xùn)練時同批次都為相同的輸入圖像,這樣可以增強模型的泛化能力。在驗證時,本文使用原始的圖像直接進行相同的歸一化之后作為網(wǎng)絡(luò)輸入。
如圖3和圖4所示,模型在學(xué)習(xí)過程中目標(biāo)函數(shù)損失處于比較平穩(wěn)的下降過程,合理的沖量和學(xué)習(xí)率適配網(wǎng)絡(luò)結(jié)構(gòu)也使得模型在后期微調(diào)參數(shù)時避免出現(xiàn)振蕩,模型隨著訓(xùn)練次數(shù)的增加學(xué)習(xí)能力增強,這也一定程度上說明了模型的可訓(xùn)練性。
Figure 3 Loss changes of Adams-ResNet56 during training圖3 Adams-ResNet56在訓(xùn)練過程中的損失變化
Figure 4 Loss changes of each layer of the network during fine-tuning in later training圖4 各層網(wǎng)絡(luò)在訓(xùn)練后期微調(diào)時損失變化
本文比較了20,32,44和56層的Adams- ResNet、ResNet[4]和LM-ResNet[5]在Cifar10上的性能,比較結(jié)果如表2所示,其中Params表示參數(shù)量??v向比較,采用微分方程數(shù)值解法思想設(shè)計的LM-ResNet與Adams-ResNet在每一種層數(shù)的網(wǎng)絡(luò)結(jié)構(gòu)上都是優(yōu)于源模型的。第2節(jié)中建立了類殘差學(xué)習(xí)機制的網(wǎng)絡(luò)與微分方程的關(guān)聯(lián),在理論上微分方程數(shù)值解法——Adams法在這種類殘差學(xué)習(xí)機制的網(wǎng)絡(luò)上應(yīng)是收斂的,本節(jié)在后面將通過對網(wǎng)絡(luò)層中殘差單元的kn值與式(5)中Adams法的相容性條件進行比較,進一步分析其收斂性。橫向比較LM-ResNet與Adams-ResNet在Cifar10上的性能表現(xiàn),Adams-ResNet在沒有增加參數(shù)的前提下達到了更高的識別正確率。尤其在20層與32層的網(wǎng)絡(luò)結(jié)構(gòu)性能表現(xiàn)上,Adams-ResNet的識別正確率相比ResNet分別提升了1.2%和0.66%,而LM-ResNet的識別正確率相比ResNet僅提升了0.42%和0.33%,基于Adams法的捷徑連接方式在網(wǎng)絡(luò)后期具有更高的學(xué)習(xí)精度。
Table 2 Performance comparison of Adams-ResNet with ResNet and LM-ResNet on Cifar10表 2 Adams-ResNet與ResNet、LM-ResNet在Cifar10上的性能對比
圖5所示為Adams-ResNet在Cifar10上訓(xùn)練后期識別正確率的變化情況。在第160次訓(xùn)練之后使用較小的學(xué)習(xí)率對網(wǎng)絡(luò)的可學(xué)習(xí)參數(shù)進行微調(diào),Adams-ResNet表現(xiàn)出了良好的穩(wěn)定性,在學(xué)習(xí)后期取得了優(yōu)于源網(wǎng)絡(luò)的學(xué)習(xí)精度。本文提出的捷徑連接方式提升了類殘差學(xué)習(xí)機制神經(jīng)網(wǎng)絡(luò)在深度上的可訓(xùn)練性。
Figure 5 Error changes of in later training of Adams-ResNet on Cifar10 圖5 Adams-ResNet在Cifar10上訓(xùn)練后期錯誤率變化
對于深度神經(jīng)網(wǎng)絡(luò),受到實際應(yīng)用中算力的影響,模型的復(fù)雜度也是一個重要的考慮因素。這就要求在深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計中,不僅要追求模型的學(xué)習(xí)精度,也要考慮模型的大小及其計算量,以得到更有效的深度神經(jīng)網(wǎng)絡(luò)模型。表3和圖6所示為基于Adams法的捷徑連接方式應(yīng)用到ResNet上時,模型的性能表現(xiàn)與參數(shù)量的關(guān)系,表3中Ratio-to-Adams-ResNet表示在基本相同的正確率下改進前后的模型參數(shù)量的比值。Adams-ResNet在Cifar10數(shù)據(jù)集上在達到更高的識別正確率的前提下,參數(shù)量更少。取得最高識別正確率的Adams-ResNet56僅使用了源模型一半的參數(shù)量,將模型的深度由110層降至56層,且未降低模型的學(xué)習(xí)精度,有效地壓縮了模型,避免模型出現(xiàn)參數(shù)冗余。基于Adams法的捷徑連接方式能使類殘差學(xué)習(xí)機制深度神經(jīng)網(wǎng)絡(luò)變得更有效。
Table 3 Parameters of Adams-ResNetand its performance on Cifar10表3 Adams-ResNet參數(shù)量及在Cifar10上的性能表現(xiàn)
Figure 6 Performance of models on Cifar10圖6 模型在Cifar10上性能表現(xiàn)
圖7所示為在Adams-ResNet中隱藏層中殘差單元的可訓(xùn)練參數(shù)kn值,橫坐標(biāo)為類殘差單元的索引值。從折線的變化趨勢來看,不同層數(shù)的Adams-ResNet的隱藏層中kn的總體變化情況是基本一致的。這是由于示例網(wǎng)絡(luò)在對數(shù)據(jù)集進行從基礎(chǔ)紋理特征到抽象特征提取的過程中,類似特征出現(xiàn)在了各網(wǎng)絡(luò)不同的階段,而Adams法在學(xué)習(xí)過程中對這些特征比較敏感,這種敏感并不會隨著網(wǎng)絡(luò)層數(shù)的減少而丟失,這造成了Adams法應(yīng)用在層數(shù)較少的深度神經(jīng)網(wǎng)絡(luò)上時,有效性提高得更明顯;從kn的取值來看,除去臨近輸出層的少數(shù)隱藏層,絕大多數(shù)的值都分布在[-1,0]。在文獻[15]中證明了二步的顯式阿當(dāng)姆斯法與式(2)中的微分方程是相容的,則滿足:
(5)
此時,β0=-0.5.這與Adams-ResNet中的取值區(qū)間是一致的。這同樣也是雖然本文僅在ResNet上驗證,但認(rèn)為基于Adams法的捷徑連接方式推廣到其它類殘差網(wǎng)絡(luò)上仍能有效地壓縮模型,抑制深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練后期出現(xiàn)的振蕩現(xiàn)象,提升網(wǎng)絡(luò)的可訓(xùn)練性的原因。
本文針對深度神經(jīng)網(wǎng)絡(luò)現(xiàn)在廣泛存在并仍待解決的可訓(xùn)練性問題,尋找一種合適的捷徑連接方式來設(shè)計類殘差學(xué)習(xí)機制神經(jīng)網(wǎng)絡(luò),從微分方程數(shù)值解法—Adams法本身具有的性質(zhì)出發(fā),構(gòu)造殘差單元之間的捷徑連接方式,使得源模型在訓(xùn)練后期具備更強的學(xué)習(xí)能力的同時,壓縮模型的規(guī)模,這對于今后設(shè)計更有效的深度神經(jīng)網(wǎng)絡(luò)有一定的啟發(fā)性。本文以經(jīng)典的ResNet為例設(shè)計了Adams-ResNet,尋找了與所提基于阿當(dāng)姆斯捷徑連接方式適配的實驗參數(shù)設(shè)置,在Cifar10上表現(xiàn)出了比源模型更優(yōu)的性能。然而該種捷徑連接方式依賴于源模型的結(jié)構(gòu)來構(gòu)造更有效的深度神經(jīng)網(wǎng)絡(luò),更關(guān)注對源模型大小的壓縮,提高模型的效率,如果想要獲得在各類圖像識別任務(wù)上最先進的結(jié)果,仍需尋找合適的源模型結(jié)構(gòu),這同樣也是如今深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計的一大難題。