滿鳳環(huán), 陳秀宏, 何佳佳
(江南大學 數(shù)字媒體學院, 江蘇 無錫 214122)
近年來,卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network,CNN)在機器學習和計算機視覺等研究領(lǐng)域得到了很大的關(guān)注,但隨之出現(xiàn)過度學習(overfitting)的問題,過度學習可表現(xiàn)在隨著迭代次數(shù)的增加,錯誤率不再下降。對于過度學習問題,學者們提出了若干正則化方法。Hinton G E等人[1]提出了一個隨機的正則化方法—Dropout ,數(shù)據(jù)在訓練時一部分激活單元被抑制,可視為每次是被不同的子模型訓練,而在測試階段則利用預測平均的方法。2014年,Srivastava N等人[2]在全連接層和卷積層使用了Dropout,并得到了很好的效果。Wan L等人[3]提出了一種DropConnect的方法隨機抑制權(quán)重。Goodfellow I等人[4]提出了一種利用Dropout的Maxout network模型,在一組線性函數(shù)中取最大值作為單元的激活值。Zeiler M D和Fergus R[5]提出了隨機池正則化方法。
文獻[6]提出了在池化層運用最大值Dropout方法。而在測試階段采用Probabilistic weighted pooling模型平均,實驗得到了很好的效果,但該方法僅考慮了Dropout抑制的概率p和被保留的概率1-p的影響,并未考慮池化區(qū)域內(nèi)每個單元值對整個區(qū)域的影響。對此,本文提出了一種新的模型平均方法,訓練階段使用最大值Dropout,而在測試階段結(jié)合池化區(qū)域內(nèi)單元值所占的概率和p值求解模型預測的平均值,以同樣結(jié)構(gòu)的CNN進行實驗并取得了更好的效果。
一個標準的CNN[7]由卷積層和池化層交替出現(xiàn)組成,之后是用于分類的全連接層。CNN有著局部感受域和權(quán)值共享等特點,不僅能保持平移不變性、降低特征維數(shù)而且還利于泛化。
計算第l+1層第k個輸出矩陣的過程可表示為
(1)
al+1,k=f(zl+1,k+bl+1,k)
(2)
(3)
1.2.1 訓練階段的最大值池化Dropout
在池化層使用Dropout,訓練階段時的前向傳播用數(shù)學公式可表示為
(4)
(5)
池化含有隨機性。如圖1所示,如果一個池化區(qū)域的激活值有1,3,4,7。未Dropout時,輸出最大值7,Dropout后,區(qū)域內(nèi)每個單元均可能被抑制,如果3和4被保留,池化后的結(jié)果為剩余的最大值4。
圖1 最大值池化Dropout示例
1.2.2 測試階段結(jié)合概率的模型平均
(6)
該文獻在測試階段采用的模型預測平均的方式利用了式(7)得到每個池化區(qū)域池化后的值
(7)
式中i=0為池化區(qū)域全被Dropout的情況,該方式即Probabilistic weighted pooling。
與文獻[6]類似,本文在訓練階段用一個服從多樣式分布的二進制掩模修改輸入特征圖,而在測試階段考慮到池化區(qū)域內(nèi)每個單元值所占概率的影響。訓練階段,假設(shè)第l層的第j個池化區(qū)域,使用最大值池化Dropout方法
(8)
但在測試階段,首先輸入特征圖每個神經(jīng)元的值在整個池化區(qū)域內(nèi)所占的概率pi,即
(9)
本文同時考慮到概率pj,i和保留概率p的影響,提出了一種新的模型平均的方法,首先池化區(qū)域同乘以p再與其所占概率pj,i相乘,之后池化區(qū)域內(nèi)所有值求和即為池化操作后得到的值
(10)
將這個值作為池化區(qū)域內(nèi)的考慮了所有可能模型的平均的一個近似值。
如果在第l層有r個特征圖像,每個特征圖像大小為s,池化大小為t,如果是非重疊的池化方法,池化區(qū)域可劃分為rs/t個,由于Dropout的作用每個池化小塊可以有t+1個選擇,所以,在l層可能訓練的模型數(shù)量總數(shù)C為
(11)
本文的CNN結(jié)構(gòu)卷積層和全連接層采用Relu激活函數(shù)[10],Relu造成了網(wǎng)絡(luò)的稀疏性,并減少了參數(shù)的相互依存關(guān)系。最后一層的輸出連接Softmax分類器。卷積層和全連接層使用的激活函數(shù)可簡單表示為
al+1=max(0,Wl+1al+bl+1)
(12)
式中al為第l+1層的輸入;bl+1為第l+1層相對應(yīng)的偏置;al+1為計算得到的輸出特征圖。
Softmax分類器公式表達為
(13)
本文參考文獻[6]設(shè)置,使用小批量分塊的隨機梯度下降方法訓練模型,每塊大小為100,即每次輸入100張圖像,動量為0.95,學習率為0.1。CNN中所有層的權(quán)值初始化以0為均值,標準差為0.1的高斯分布,偏置全部初始化為0,遵守啟發(fā)式搜索的理論[1]在終止訓練前減小2次學習率到當前學習率的1/10。保留概率p=0.5作為默認值。實驗環(huán)境為:操作系統(tǒng)WIN7,處理器Intel?Xeon?CPU E5—4607 v2@2.60 GHz,2 600 MHz,6個內(nèi)核,12個邏輯,RAM 32 GB,MATLAB R2012a。模擬實驗的原始代碼參考來自Vedaldi A等人[11]的深度學習工具箱。
實驗中,目標函數(shù)是交叉熵代價函數(shù)[12]
(14)
式中N為每個min-batch訓練樣本圖像的總數(shù);y為期望的輸出;o為神經(jīng)元的實際輸出。
關(guān)于權(quán)值W對Q求導,利用隨機梯度下降算法優(yōu)化目標函數(shù),第l層的權(quán)值更新準則為
ΔWl=δl·ol-1
(15)
式中δl為第l層的誤差靈敏度;ol-1為上一層的輸出即第l層的輸入。誤差靈敏度的計算方式分2種情況:當l=L,即最后一層時,利用式(16)計算;當l≤L時,采用式(17)計算
δL=a-y
(16)
δl=δl+1(Wl+1)′·ol·(l-ol)
(17)
式中 ·為2個相同大小的矩陣或者向量對應(yīng)元素相乘。
采用以下形式表示CNN的結(jié)構(gòu):28×28-12C5-2P2-24C5-2P2-1000N-10N表示輸入圖像大小為28×28,第一個卷積層有12個卷積核并且每個卷積核的大小為5×5,第一個池化層的池化區(qū)域大小為2×2且步長為2,之后類似,全連接層有1 000個隱含單元,輸出層為10個單元(一類對應(yīng)一個單元)。
MNIST數(shù)據(jù)集[13]包括60 000張訓練圖像和10 000張測試圖像,每張的大小為28×28,包含0~9中的一個數(shù)字。實驗中未對其進行任何的預處理,僅將像素值規(guī)范到[0,1]范圍內(nèi)。
2.1.1 概率加權(quán)的模型平均
為了說明本文方法的有效性,對比本文方法與文獻[6]方法,使用2個不同的CNN模型進行訓練模擬實驗,分別為28×28-6C5-2P2-12C5-2P2-1000N-10N和28×28-12C5-2P2-24C5-2P2-1000N-10N,2種結(jié)構(gòu)在全連接層默認已使用Dropout,只考慮不同方法在池化層的影響。圖2給出了相同結(jié)構(gòu)下使用不同方法迭代300次得到的錯誤率變化曲線。將全連接層使用Dropout的錯誤率曲線作為對比的基準線。由圖可以看出:隨著迭代次數(shù)的增加,全連接層使用Dropout的方法雖然很快收斂但之后幾乎不再下降,本文方法的錯誤率大部分低于文獻[6]Probabilistic weighted pooling法,較好地克服了過度擬合的問題。
圖2 相同結(jié)構(gòu)下不同方法迭代300次的錯誤率
2.1.2 保留概率p的取值對CNN影響
為了了解p值對本文方法的影響,實驗中取不同的p(p=0.3,0.5和0.7)值分別在28×28-20C5-2P2-40C5-2P2-1000N-10N上訓練,各自迭代1 000次,得到的錯誤率e與p之間的關(guān)系如圖3,相比于其他方法,本文方法即使是不同的p值,也得到了更好的結(jié)果。并且可以看到p值取0.5時效果較好。
圖3 錯誤率e與p之間的關(guān)系
采用與文獻[6]同樣的CNNs結(jié)構(gòu)28×28-20C5-2P2-40C5-2P2-1000N-10N,表1列出了該方法和其他方法的錯誤率,對于MNIST數(shù)據(jù)庫,不使用Dropout的最好結(jié)果為0.81 %,出現(xiàn)過度擬合現(xiàn)象使得錯誤率不再下降,在全連接使用錯誤率約為0.56 %,而本文的方法約為0.32 %,均好于其他方法的結(jié)果,證明了可以更好地防止過度擬合的問題。
表1 MNIST上不同方法同一CNN的錯誤 %
CMU-PIE數(shù)據(jù)庫包含68位志愿者的多姿態(tài)、光照和表情的面部圖像。本文選取了其中5種姿勢分別為上、下、左、右和正面的合集,統(tǒng)一剪切為32×32,在進入CNN之前進行了簡單的預處理,灰度化后并將像素值規(guī)范到[0,1]范圍內(nèi)。圖4所示為圖像的部分樣例,分別迭代50次的實驗結(jié)果全連接Dropout、文獻[6]、本文方法、文獻[5]錯誤率分別為8.25 %,4.15 %,3.45 %,4.70 %。本文方法錯誤率約為3.45 %,比文獻[6]的方法降低了0.70 %,說明本文方法在其他數(shù)據(jù)庫上也能更好地防止過度學習。
圖4 CMU-PIE數(shù)據(jù)集部分示例
基于Dropout的作用,本文提出了新的模型預測平均值的方法,訓練階段使用最大值池化Dropout法對輸入特征圖池化,而在測試階段結(jié)合保留概率和單元值概率加權(quán)求模型平均,并且得到了更好的識別率,并防止過度擬合的問題。但用時與文獻[6]Prob weighted pooling方法相近。未來的研究工作是在本文CNN的基礎(chǔ)上改變其激活方法等,使其不僅能防止過度擬合的問題還能更快收斂。
參考文獻:
[1] Hinton G E,Srivastava N,Krizhevsky A,et al.Improving neural networks by preventing co-adaptation of feature detectors[J].Computer Science,2012,3(4):212-223.
[2] Srivastava N,Hinton G,Krizhevsky A,et al.Dropout:A simple way to prevent neural networks from overfitting[J].The Journal of Machine Learning Research,2014,15(1):1929-1958.
[3] Wan L,Zeiler M,Zhang S,et al.Regularization of neural networks using dropconnect[C]∥Proceedings of the 30th International Conference on Machine Learning,Atlanta,USA,JMLR Workshop and Conference Proceedings,2013:1058-1066.
[4] Goodfellow I,Warde-farley D,Mirza M,et al.Maxout networks[C]∥ Proceedings of the 30th International Conference on Machine Learning,Atlanta,USA,JMLR Workshop and Conference Proceedings,2013:1319-1327.
[5] Zeiler M D,Fergus R.Stochastic pooling for regularization of deep convolutional neural networks[J/OL].arXiv preprint,(2013—01—16)[2016—06—17].https:∥arxiv.org/abs/1301.3557.
[6] Wu H,Gu X.Towards dropout training for convolutional neural networks[J].Neural Networks:The Official Journal of the International Neural Network Society,2015,71:1-10.
[7] Bouvrie J.Notes on convolutional neural networks[R].Cambridge:MIT CBCL,2006:38-44.
[8] 洪 磊,龔雪飛,孫壽通,等.Adaboost集成BP神經(jīng)網(wǎng)絡(luò)在傳感器陣列檢測系統(tǒng)中的應(yīng)用[J].傳感器與微系統(tǒng),2015,34(4):148-150.
[9] 康國煉,楊遂軍,葉樹亮.改進BP算法在熱流傳感器溫度補償中的應(yīng)用[J].傳感器與微系統(tǒng),2016,35(2):154-156.
[10] Nair V,Hinton G E.Rectified linear units improve restricted Boltzmann machines[C]∥Proceedings of the 27th International Conference on Machine Learning,Haifa,Israel,JMLR Procee-dings,2010:807-814.
[13] Niu X X,Suen C Y.A novel hybrid CNN-SVM classifier for recognizing handwritten digits[J].Pattern Recognition,2012,45(4):1318-1325.
[11] Vedaldi A,Lenc K.Matconvnet:Convolutional neural networks for MATLAB[C]∥Proceedings of the 23rd ACM International Confe-rence on Multimedia,ACM,2015:689-692.
[12] Abdel-Hamid O,Mohamed A,Jiang H,et al.Convolutional neural networks for speech recognition[J].IEEE/ACM Transactions on Audio,Speech,and Language Processing,2014,22(10):1533-1545.