展華偉,唐 艷,付 婧
(西華師范大學(xué) 計(jì)算機(jī)學(xué)院 , 四川 南充 637002)
20世紀(jì)60年代,Hubel和Wiesel在研究貓腦皮層中用于局部敏感和方向選擇的神經(jīng)元時(shí)發(fā)現(xiàn)其獨(dú)特的網(wǎng)絡(luò)結(jié)構(gòu)可以有效地降低反饋神經(jīng)網(wǎng)絡(luò)的復(fù)雜性,繼而提出了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks簡(jiǎn)稱CNN)[1].經(jīng)過十多年的發(fā)展,從早期的LeNet-5[2]到最新的ResNet[3],卷積神經(jīng)網(wǎng)絡(luò)已成為各大學(xué)科領(lǐng)域研究的熱點(diǎn),在語音識(shí)別[4]、人臉識(shí)別[5]、目標(biāo)檢測(cè)[6]、自然語言處理[7]等領(lǐng)域均有所突破.
卷積神經(jīng)網(wǎng)絡(luò)作為一種高效率的識(shí)別方法,可以很方便地進(jìn)行各種類型的特征提取.但是在處理具體任務(wù)或具體項(xiàng)目時(shí),需要根據(jù)不同的需求來進(jìn)行參數(shù)調(diào)整和優(yōu)化,這種人為操作不僅費(fèi)時(shí)費(fèi)力而且很難達(dá)到訓(xùn)練的最優(yōu)效果,許少華等[8]研究了樣本先驗(yàn)知識(shí)對(duì)神經(jīng)網(wǎng)絡(luò)的性能影響,何莉[9]等提出了一種基于人群搜索算法的方法,來調(diào)整神經(jīng)網(wǎng)絡(luò)中的權(quán)重及閾值等系數(shù),趙宏等[10]對(duì)神經(jīng)網(wǎng)絡(luò)中的代價(jià)函數(shù)與激活函數(shù)做了詳細(xì)的研究,并找到了最優(yōu)的組合方式.本文將在此基礎(chǔ)上,廣度探索分析了更多的參數(shù)(尤其是優(yōu)化器),并在準(zhǔn)確率更高和速度更快之間,找到了一種廣泛的結(jié)合方式,使之能夠達(dá)到效率最佳的平衡點(diǎn),從而提升神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練性能.
卷積神經(jīng)網(wǎng)絡(luò)是一種深度前潰神經(jīng)網(wǎng)絡(luò),通過特征提取層的不斷疊加從而得到其基本特征.主要由輸入層、隱層、全連接層和輸出層組成,而隱層是由卷積層和下采樣層交替連接的[2].
其中的f是一個(gè)非線性函數(shù),通常取sigmoid,tanh和ReLU函數(shù).卷積層就是為了提取圖像的特征,而不斷地進(jìn)行卷積操作,但由于提取到的特征維度較高很容易過擬合,所有通常在卷積層后面都會(huì)接一個(gè)池化層來對(duì)圖像進(jìn)行降維.
引入池化層的唯一目的就是減少圖像的大小,是為了提取特征在不同位置和規(guī)模上的變化,同時(shí)聚合不同特征映射的響應(yīng).常用的池化方法有最大池化(max- poopling)、均值池化(average pooling).均值池化是通過均值化局部領(lǐng)域中的像素值,來綜合考慮周圍像素的特征.而最大池化則是用來提取相鄰像素間最重要的特征信息,避免學(xué)習(xí)到一些無用的特征.
在經(jīng)過多次卷積-池化操作后,已經(jīng)提取到了我們所需要的特征圖,接下來就要應(yīng)用全連接層來生成一個(gè)等同于需求數(shù)目的輸出.在全連接層中的每個(gè)神經(jīng)元的激勵(lì)函數(shù)通常采用ReLU函數(shù)[11].
在CNN中需要初始化的參數(shù)主要是權(quán)值和偏置值,傳統(tǒng)的初始化方法是從某個(gè)分布中隨機(jī)的進(jìn)行初始化,更簡(jiǎn)單的是直接初始化為0或1,但這種方法效果很一般.如何定義這些參數(shù)將會(huì)直接影響到整個(gè)模型的收斂速度以及最終的分類效果.
非線性激活函數(shù)的引入主要是為了增強(qiáng)網(wǎng)絡(luò)的表達(dá)能力,使深層神經(jīng)網(wǎng)絡(luò)更加有意義.
目前比較熱門的激活函數(shù)主要是:Sigmoid,tanh,ReLu,Leaky ReLu,Maxout等.神經(jīng)網(wǎng)絡(luò)的求解主要圍繞著代價(jià)函數(shù)的優(yōu)化進(jìn)行,經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù)也稱為損失函數(shù),用來度量輸出值與真實(shí)值之間的擬合程度,結(jié)構(gòu)風(fēng)險(xiǎn)函數(shù)則用來度量模型的復(fù)雜程度.
當(dāng)神經(jīng)網(wǎng)絡(luò)訓(xùn)練一輪之后,就需要對(duì)其進(jìn)行調(diào)整優(yōu)化,也就是目標(biāo)函數(shù)的最優(yōu)化.傳統(tǒng)的優(yōu)化算法是隨機(jī)梯度下降法以及衍生出的NAG[12]等,除此之外還有Momentum,Adagrad,Adadelta,Rmsprop,Adam等適合不同需求的優(yōu)化算法.其中Adam算法可以看作是修正后的Momentum算法[13].
學(xué)習(xí)率為每一次梯度下降的步長(zhǎng),通常設(shè)置為0.1.當(dāng)學(xué)習(xí)率較大時(shí),模型的前期收斂速度加快,但始終達(dá)不到最優(yōu)點(diǎn);當(dāng)學(xué)習(xí)率較小時(shí),收斂的速度變得極慢.所以最優(yōu)的方法是在前期設(shè)置較大學(xué)習(xí)率,使得梯度快速下降,然后將學(xué)習(xí)率減小,使得模型逐漸達(dá)到最優(yōu)點(diǎn),但同時(shí)也要防止出現(xiàn)過擬合問題,可以使用dropout或者正則化來解決.
本次實(shí)驗(yàn)是利用Google平臺(tái)TensorFlow框架構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò),擁有2個(gè)卷積-池化層、2個(gè)全連接層,32個(gè)5*5的卷積核,其中使用到的相關(guān)超參數(shù)和函數(shù)如表1所示.實(shí)驗(yàn)中使用MNIST數(shù)據(jù)集作為實(shí)驗(yàn)的訓(xùn)練和測(cè)試數(shù)據(jù)集.MNIST數(shù)據(jù)集是一個(gè)計(jì)算機(jī)視覺數(shù)據(jù)集,包含70 000張手寫數(shù)字的灰度圖片,其中每張圖片包含28×28個(gè)像素點(diǎn),部分?jǐn)?shù)據(jù)可視化后如圖1所示.
表1 超參數(shù)和函數(shù)
圖1 MNIST數(shù)據(jù)集
另一方面,目前可用的優(yōu)化器有多種,如何進(jìn)行組合來適應(yīng)該模型就成為了關(guān)鍵所在.如果輸入的數(shù)據(jù)很稀少,那么可以使用自適應(yīng)學(xué)習(xí)率方法中的一種來獲得最佳結(jié)果.RMSprop作為Adagrad的延伸,引入了衰減系數(shù),解決了學(xué)習(xí)速率急劇下降的問題.Adam是帶有動(dòng)量系數(shù)的RMSProp,在經(jīng)過偏置矯正后,每一次迭代學(xué)習(xí)率都有個(gè)確定范圍,使得參數(shù)比較平穩(wěn).
表2為各優(yōu)化器在不同迭代次數(shù)下的實(shí)驗(yàn)結(jié)果.本實(shí)驗(yàn)探索了在確定了超參數(shù)和函數(shù)的情況下,不同優(yōu)化器對(duì)模型的性能影響.通過對(duì)比發(fā)現(xiàn),Adam和RMSProp這兩種優(yōu)化器的最終準(zhǔn)確率相近,并優(yōu)于其他優(yōu)化器,其中,Adam在迭代500次時(shí)準(zhǔn)確率就已經(jīng)稍高于RMSProp,說明該優(yōu)化器收斂速度更快、效率更高.
表2 不同優(yōu)化器性能對(duì)比
本文對(duì)卷積神經(jīng)網(wǎng)絡(luò)中的參數(shù)設(shè)置和函數(shù)選擇等方面進(jìn)行了探索及實(shí)驗(yàn),揭示了這些參數(shù)在模型訓(xùn)練過程中的影響.實(shí)驗(yàn)結(jié)果表明,通過預(yù)先設(shè)定好相關(guān)超參數(shù),并且在與RMSProp或者Adam搭配時(shí),能夠更快地達(dá)到收斂時(shí)的準(zhǔn)確率,從而提高卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效率.