程俊華 曾國輝 魯敦科 黃勃



摘 要:針對深度卷積神經網絡(CNN)中的過擬合問題,提出一種基于Dropout改進CNN的模型預測平均方法。首先,訓練階段在池化層引入Dropout,使得池化層單元值具有稀疏性;然后,在測試階段將訓練時池化層Dropout選擇單元值的概率與池化區域各單元值所占概率相乘作為雙重概率;最后,將提出的雙重概率加權的模型平均方法應用于測試階段,使得訓練階段池化層Dropout的稀疏效果能夠更好地反映到測試階段池化層上,從而使測試錯誤率達到與訓練的較低錯誤率相近的結果。在給定大小的網絡中所提方法在MNIST和CIFAR-10數據集上的測試錯誤率分別為0.31%和11.23%。實驗結果表明:僅考慮池化層對結果的影響,所提方法與Prob.weighted pooling和Stochastic Pooling方法相比具有更低的錯誤率,表明池化層Dropout使得模型更具泛化性,并且池化單元值對于模型泛化具有一定幫助,能夠更有效避免過擬合。
關鍵詞:深度學習;卷積神經網絡;Dropout正則化;過擬合;模型平均
中圖分類號: TP183(人工神經網絡與計算)
文獻標志碼:A
Abstract: In order to effectively solve the overfitting problem in deep Convolutional Neural Network (CNN), a model prediction averaging method based on Dropout improved CNN was proposed. Firstly, Dropout was employed in the pooling layers to sparse the unit values of pooling layers in the training phase. Then, in the testing phase, the probability of selecting unit value according to pooling layer Dropout was multiplied by the probability of each unit value in the pooling area as a double probability. Finally, the proposed double-probability weighted model averaging method was applied to the testing phase, so that the sparse effect of the pooling layer Dropout in the training phase was able to be better reflected on the pooling layer in the testing phase, thus achieving the low testing error as training result. The testing error rates of the proposed method in the given size network on MNIST and CIFAR-10 data sets were 0.31% and 11.23% respectively. The experimental results show that the improved method has lower error rate than Prob. weighted pooling and Stochastic Pooling method with only the impact of pooling layer on the results considered. It can be seen that the pooling layer Dropout makes the model more generalized and the pooling unit value is helpful for model generalization and can effectively avoid overfitting.
Key words: deep learning; Convolution Neural Network (CNN); Dropout regularization; overfitting; model averaging
0 引言
近年來,隨著人工智能的快速發展,深度學習在各領域的應用越來越廣泛[1-4 ]。其中,卷積神經網絡(Convolutional Neural Network, CNN)在機器學習和計算機視覺等領域擁有的出色表現,使得它被應用到更多問題的解決方案中。卷積神經網絡的優勢在于其能夠自動提取特征,從而能夠避免人工提取特征的困難和麻煩,但不可避免地會出現由于數據集較小或者訓練次數過多等原因出現的過度學習現象,又稱“過擬合”。對于分類任務,過擬合問題體現在在訓練集上錯誤率較低,而在測試集上錯誤率卻偏高。過度學習將訓練集某類數據的特殊特征當作該類數據的一般特征進行學習,使得學習的模型在測試集數據上進行測試時,將該類數據的特殊特征當作一般特征進行判斷,不能夠對數據進行準確分類,錯誤率較高。這是監督學習中一個普遍存在且相當棘手的問題,本文致力于對卷積神經網絡的過擬合問題提供解決方法。
目前,很多科研機構和高校對于有效解決過擬合問題均進行了深入研究。Dropout方法最早由Hinton等[5]提出用于解決過擬合問題。在訓練時加入Dropout,一部分激活單元隨機受到抑制,每一次訓練的網絡結構均不同,訓練結果可看作是不同神經元子集的模型的組合,而在測試時保留所有神經元,采用模型平均的方法來對訓練過的所有可能模型求取平均近似值。Dropout剛開始被用于卷積神經網絡的全連接層,全連接層占據卷積神經網絡的大部分參數,對于小型網絡表現較好,但在稍復雜的中大型網絡上,其他層的參數增多,表現不明顯。之后,Srivastava等[6]又嘗試在卷積層使用Dropout,但卷積層本身具有的參數共享和稀疏連接特性減少了參數的數量,從而降低了卷積層過擬合的可能性,因此Dropout在卷積層的優勢并不明顯。隨后,Goodfellow等[7]采用一組線性函數中取最大值作為神經單元激活值的方法,該方法基于Dropout建立了Maxout network。然而文獻[7]并沒有通過Dropout對修正對應模型進行訓練,而是直接將其與Maxout network進行比較,因此,對于是什么因素對取得的顯著成果產生的影響并不清楚。Wan等[8] 將Dropout用于抑制平坦層神經元之間連接權重,提出了DropConnect方法,提升了特征學習的細膩度,從而更有效避免過擬合;但該方法只適用于全連接層,對于其他層具有局限性。Lambert等[9]提出了異方差Dropout,使Dropout方差成為特權信息函數,顯著提高了學習過程的樣本效率,但對于過擬合并沒有顯著影響。Zeiler 等[10] 提出了隨機池化,從池化方法入手來進一步解決過擬合問題。與最大值池化選取池化區域最具代表性特征作為池化激活值不同,隨機池化在池化區域內隨機選取池化激活值,在測試時以池化區域內各單元值概率加權到激活值上進行模型平均,該方法類似于最大值池化Dropout方法,但最大值池化Dropout方法可能訓練的模型數量更多,抑制過擬合效果更好。Wu等[11]在最大值池化中引入Dropout,隨機抑制池化值再利用最大值池化選取池化激活值,在測試階段采用Prob.weighted pooling模型預測平均方法作用于池化層得到模型平均,但Prob.weighted pooling方法僅考慮了池化激活值選擇概率。
受文獻[10-11]研究啟發,本文針對最大值池化Dropout解決過擬合問題給出了一種更優的模型平均方法,訓練時在池化層采用最大值池化Dropout,在測試階段模型平均時,與Prob.weighted pooling方法相比將單元值在池化區域中的概率考慮在內,結合池化激活值選擇概率共同加權到被選擇單元值的激活值上,得到遍歷所有可能模型近似平均的池化結果。相比于隨機池化,訓練模型更具泛化性。實驗結果表明,在同樣網絡結構的卷積神經網絡下,本文提出的方法具有更好的抑制過擬合效果。
1 傳統卷積神經網絡結構
一般的CNN由卷積層、池化層和全連接層組成。卷積層和池化層交替連接用于特征提取,全連接層最后用于對提取特征進行分類。CNN的局部連接和權值共享等特點,使其比一般神經網絡具有更少的參數,具有平移不變性、特征降維以及強大的表征能力等優點,并且由于神經元之間的稀疏連接,使得其具有良好的泛化性。
1.1 卷積層
在卷積層中輸入圖像與相應的卷積核進行卷積操作,用于對圖像進行特征提取,一個二維步長為1、無填充卷積操作過程可如圖1所示。
假設yli為輸入數據在第l層中的第i(i=1,2,…,nl)個feature map,yli與相應的卷積核Wl+1,k卷積得到的卷積矩陣求和加上相對應的偏置bl+1,k,即可得到第l+1層的輸入zl+1,k,經過非線性激活函數處理即可得到數據在第l+1層的第k個輸出矩陣,即yl+1,k。其過程可表述為:
1.2 池化層
在卷積神經網絡中,卷積層之后一般為池化層,池化層對卷積層得到的特征進行下采樣,從而減小計算量,降低網絡復雜度,提高計算效率。通常的池化操作可表示為:
其中:alm, j表示Rlm區域內第j(j=1,2,…,n)個池化單元值,l為第l層;n表示Rlm區域池化單元的數目;pool(·)表示池化操作。通常采用的池化方法為平均池化和最大值池化,平均池化方法在卷積神經網絡剛提出時應用較多;最大值池化因其能夠將最具代表性的特征保留的特點,受到廣泛應用,以2×2池化大小為例,最大值池化過程如圖2所示。
2 改進CNN結構
本文在CNN池化層引入Dropout,在訓練階段池化層引入Dropout,在測試時使用雙重概率加權模型平均來代替采樣,將訓練時池化層Dropout的可能訓練的所有模型進行有效的平均,實現模型預測。
2.1 訓練階段最大值池化Dropout
在池化層引入Dropout后,在進行池化操作之前,首先進行掩模處理,使得池化區域中的部分神經元激活值以一定概率被置為0,在保留下來的神經元中再進行最大值池化操作,其過程可表示為:
cx其中:rlm表示一個二進制掩模,服從Bernoulli分布;lm表示對輸入alm掩模處理后的feature map, lm輸入到最大值池化中得到池化結果,即為最大值池化Dropout方法。該池化方法具有隨機性,以2×2池化為例,如圖3所示。
2.2 測試階段雙重概率加權模型平均
訓練時在池化層引入Dropout,則池化單元值被隨機抑制,但在測試時,整個網絡包括所有池化層的單元值都應該參與網絡運作,因此需要通過模型平均的方式將訓練時池化層引入Dropout的效果體現到測試階段。文獻[11]在測試階段采用的模型平均方法利用式(7)得到池化區域輸出結果:
本文方法與Prob.weighted pooling相比,除了考慮池化值選擇概率外,還將池化區域單元值概率考慮在內,進一步保證了測試階段池化輸出值與訓練階段池化單元值的期望值的一致性。如2.1節所述,本文方法在l層可能訓練的模型數量為(t+1)rs/t。就隨機池化而言,由于其未使用Dropout,每個池化區域只有t種選擇,即其在l層可能訓練的模型數量為trs/t。例如,在第l層,s=32×32,r=96,t=2×2,則隨機池化方法可能訓練的模型數量為4(1/4)×32×32×96,而本文方法最大值池化Dropout可能訓練的模型數量為5(1/4)×32×32×96。雖然基數相差較小,但是本文方法可能訓練的模型數量是隨機池化方法的1.2524576倍,因此本文最大值池化Dropout方法能夠比隨機池化方法提供更多可能訓練的模型,從而能夠學習更廣泛的特征,使模型更具泛化性,避免過擬合。
這種雙重概率加權池化可以理解為模型平均的一種形式,每一個選擇的索引j對應一個不同的模型。在訓練階段,服從多項式分布進行采樣以選擇一個新的索引,為每一個訓練樣本的每個表示產生一個新的模型,可能的模型數量隨傳入到最大值池化層的單元值數量呈指數型增長。在測試階段,使用雙重概率加權池化來代替采樣,可以有效地得到所有這些可能模型的平均值的近似值,而無需實例化它們。
3 實驗參數與數據集
在經過卷積層和全連接層的輸出后需要輸入到激活函數中進行非線性處理使得神經元更具表達性,常用的非線性激活函數有Tanh函數、Sigmoid函數以及Relu函數[9],前兩者為飽和非線性函數,而Relu函數為非飽和非線性函數,在達到相同訓練誤差的情況下,非飽和激活函數要比飽和激活函數快許多倍,同時由于Relu函數的單側抑制作用,使得網絡具有稀疏激活性,減少網絡參數的相互協作,能夠更好地學習數據特征,且能夠避免梯度消失問題,使模型持續收斂,而不會像飽和激活函數那樣導致收斂停滯。本文在卷積層和全連接層均采用Relu函數作為激活函數,網絡最后一個全連接層輸出連接Softmax層,使得網絡輸出分類結果,根據Relu函數的表達式,卷積層和全連接層的激活值可表達為:
網絡訓練使用小批量梯度下降(mini-batch Stochastic Gradient Descent, mini-batch SGD)法,批次大小為100,動量為0.9,學習率設置為0.1。使用均值為0、方差為0.01的正態分布來隨機初始化權重,偏置初始化為0,每當誤差趨于平緩時就將學習率減小,默認保留概率p為0.5。實驗環境為:操作系統Win 10,處理器Intel core i7 CPU @ 3.00GHz,6個內核12線程,RAM 16GB,GPU NVIDIA GTX 1080ti。實驗采用MNIST、CIFAR-10數據集進行驗證。MNIST、CIFAR-10數據集的部分樣本分別如圖4(a)、(b)所示。
4 實驗結果與分析
4.1 MNIST數據集
MNIST數據集是計算機視覺和機器學習領域廣泛使用的基準數據集,可作為方法是否有效的一個衡量標準,其包含60000張訓練和10000張測試樣本,每個樣本為28×28的灰度圖像,包含0~9中的一個數字,在輸入CNN前將樣本歸一化到[0,1]。
在訓練階段池化層引入Dropout,測試階段有與之對應的模型平均方法,本文對文獻[11]中測試階段模型預測平均方法(Prob.weighted pooling)作出改進。將改進后的方法與原方法應用于同一結構CNN模型1×28×28-12C5-2P2-24C5-2P2-1000N-10N,在兩種方法中均使用全連接層Dropout,可消除全連接層對于結果的影響,從而關注方法在池化層的效果。對比改進前后,在測試階段池化層上能夠反映訓練階段池化層Dropout效果的優劣性。圖5所示為使用三種方法在同一結構下訓練迭代300次所得模型的測試錯誤率變化曲線。
在圖5中,使用全連接層Dropout錯誤率曲線作為參考,可以看出:隨著迭代的不斷進行,全連接層Dropout方法在收斂到一定程度時,錯誤率不再下降;本文方法與改進前Prob.weighted pooling曲線能夠收斂并不斷下降,且本文方法的錯誤率基本低于改進前方法的錯誤率,所以本文方法在測試階段池化層上能夠更好地反映出訓練階段池化層引入Dropout后的效果,能更有效避免過擬合問題。
為了比較本文方法與隨機池化方法在抑制過擬合性能上的表現,在CNN模型1×28×28-12C5-2P2-24C5-2P2-1000N-10N上對不同保留概率情況下本文方法與隨機池化方法進行實驗,對于最大值池化Dropout訓練的模型,在測試時僅使用提出的雙重概率加權的模型平均池化方法。圖6所示為使用隨機池化和不同保留概率下本文方法迭代300次的錯誤率變化曲線。
從圖6可以看出,隨機池化的測試錯誤率介于本文方法在p=0.7和p=0.9兩者之間,與本文方法(p=0.5)相差較多,p較大時(p=0.9),本文方法的抑制過擬合性能不如隨機池化,表明保留概率p與本文方法的性能有較大關系。這是因為加權概率受保留概率p的影響,在p較大時相當于大多數神經元都得到保留,Dropout稀疏化效果不明顯,因此不能很好抑制過擬合,錯誤率較高。雖然隨機池化沒有超參數且不受保留概率p的影響,但具有典型值p(p=0.5)的本文方法在抑制過擬合問題上很大程度優于隨機池化。
訓練一個不同結構模型采用不同的方法和不同保留概率p,只在池化層使用Dropout,以比較不同的p值對不同方法的影響,實驗在1×28×28-20C5-2P2-40C5-2P2-1000N-10N的網絡上迭代1000次,圖7給出了測試階段不同池化方法的錯誤率與保留概率p之間的關系。由圖7可以看出,不同的p值下,本文方法表現較好,且在p=0.5時的結果最優;Max pooling方法在較小的p值下,錯誤率比較高,表現較差;Prob.weighted pooling方法和本文方法,在不同p值下的趨勢呈U型,且本文方法錯誤率低于Prob.weighted pooling方法,在p值較大或較小時,Prob.weighted pooling方法和本文方法錯誤率均高于隨機池化(Stochastic Pooling),與圖6內容相對應,再次驗證了圖6所得結論的正確性。隨著p值的增加,不同方法之間的性能差異越來越小,特殊的情況當p=1時,差異將縮減為0。
同樣在1×28×28-20C5-2P2-40C5-2P2-1000N-10N結構上,利用MNIST數據集對使用全連接層Dropout的本文方法與其他方法的錯誤率進行記錄比較。在不使用Dropout時的錯誤率為0.81%,錯誤率最高,因為受過擬合的影響,在全連接層使用Dropout后的錯誤率降為0.56%;文獻[7] 的Maxout+Dropout方法錯誤率約為0.45%,文獻[10]的 Stochastic Pooling方法錯誤率又降到0.47%,文獻[11]結合全連接層Dropout的最大值池化Dropout(Prob.weighted pooling)方法錯誤率降為0.39%;同樣結合全連接層Dropout,而本文的方法錯誤率約為0.31%,相比于其他方法在過擬合問題上表現要好,表明了本文方法具有更好的抑制作用。
4.2? CIFAR-10數據集
CIFAR-10數據集[15]是一個包含10類共60000張自然圖像的數據集,其中,訓練集包含50000個樣本,測試集包含10000個樣本,每個樣本為一個32×32大小的RGB圖像。對數據集中的樣本像素值歸一化在[0,1],并減去每個圖像在數據集上計算的每個通道的平均值作為預處理。
相對于MNIST數據集,CIFAR-10數據集在每個類別中的差異更大,因此使用更深更寬的網絡結構:3×32×32-96C5-3P2-128C3-3P2-256C3-3P2-2000N-2000N-10N,來對復雜的非線性關系進行建模,同樣只在池化層使用Dropout,比較在CIFAR-10數據集上不同方法取不同保留概率p(p=0.3,p=0.5和p=0.7)的影響。在上述CNN網絡結構上訓練迭代1000次,得到不同池化方法錯誤率與保留概率p的關系如圖8所示。由圖8可以看出,本文方法在不同保留概率p下依然表現最好,在p=0.5時依舊最優,并且隨著p的增加不同方法之間的性能差異逐漸縮小。
利用CIFAR-10數據集在同一結構的上述CNN模型下,記錄使用全連接層Dropout的本文方法與其他方法的錯誤率:在不使用Dropout時,錯誤率約為16.50%,在全連接層使用Dropout、文獻[7] 的Maxout+Dropout、文獻[10] 的Stochastic Pooling、文獻[11] 結合全連接層Dropout的最大池化Dropout(Prob.weighted pooling)、結合全連接層Dropout的本文方法錯誤率分別為14.24%、11.68%、15.14%、11.29%、11.23%,可以看出本文方法在較大型數據集上依然具有不錯的抑制過擬合表現。
5 結語
本文利用Dropout,提出了一種雙重概率加權池化的模型預測平均方法,用于解決CNN中的過擬合問題。通過將池化區域內各單元值概率引入到Prob.weighted pooling方法,并探索合適的保留概率p使算法具有更強的泛化性,能夠有效抑制過擬合,從而能夠將測試階段的錯誤率向訓練階段靠攏,使得錯誤率更低。可見選擇池化激活值時,考慮池化值對整個池化區域的影響有助于降低網絡的錯誤率。通過對本文改進的方法與同樣解決過擬合問題的方法進行實驗對比,結果表明本文所提方法相較于其他已有解決過擬合方法的錯誤率更低,且保留概率為0.5時效果較好,能夠有效降低錯誤率,抑制過擬合,應用于圖像分類任務可使識別率得到提升。但是在引入Dropout機制后的一個普遍現象是收斂速度變慢,考慮到不同目標函數優化器的收斂速度不同,下一步研究可在本文方法中加入不同目標優化函數,使得模型訓練測試時收斂速度更快。
參考文獻 (References)
[1] BISHOP C. Pattern Recognition and Machine Learning[M]. Berlin: Springer, 2006: 560-571.
[2] SCHMIDHUBER J. Deep learning in neural networks: an overview[J]. Neural Networks, 2015, 61: 85-117.
[3] LECUN Y, BENGIO Y, HINTON G. Deep learning [J]. Nature, 2015, 521: 436-444.
[4] 周飛燕,金林鵬,董軍.卷積神經網絡研究綜述[J].計算機學報,2017,40(6):1229-1251.(ZHOU F Y, JIN L P, DONG J. Review of convolutional neural network [J]. Chinese Journal of Computers, 2017, 40(6): 1229-1251.)
[5] HINTON G E, SRIVASTAVA N, KRIZHEVSKY A, et al. Improving neural networks by preventing co-adaptation of feature detector [J]. arXiv Preprint, 2012, 2012: arXiv.1207.0580.
Computer Science, 2012, 3(4): 212-223.
[6] 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.
[7] GOOGFELLOW I, WARDE-FARLEY D, MIRZA M, et al. Maxout networks [C]// Proceedings of the 30th International Conference on Machine Learning. Atlanta, Georgia: JMLR W&CP, 2013: 1319-1327.
[8] WAN L, ZEILER M D, ZHANG S,et al. Regularization of neural networks using dropconnect [C]// Proceeding of the 30th International Conference on Machine Learning. Atlanta, Georgia: JMLR W&CP, 2013: 1058-1066.
[9] LAMBERT J, SENER O, SAVARESE S. Deep learning under privileged information using heteroscedastic dropout [EB/OL]. [2018-08-29]. https://arxiv.org/pdf/1805.11614.pdf.
[10] ZEILER M D, FERGUS R. Stochastic pooling for regularization of deep convolutional neural networks [EB/OL]. [2018-09-17]. https://arxiv.org/pdf/1301.3557.pdf.
[11] WU H, GU X. Towards dropout training for convolutional neural networks [J]. Neural Networks, 2015, 71: 1-10.
[12] LIN M, CHEN Q, YAN S. Network in network [J/OL]. arXiv Preprint, [2018-09-17]. https://arxiv.org/pdf/1312.4400.pdf.
[13] 趙慧珍,劉付顯,李龍躍,等.基于混合maxout單元的卷積神經網絡性能優化[J].通信學報,2017,38(7):105-114.(ZHAO H Z, LIU F X, LI L Y, et al. Improving deep convolutional neural networks with mixed maxout units [J]. Journal on Communications, 2017, 38(7): 105-114.)
[14] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks [C]// Proceedings of the 25th International Conference on Neural Information Processing Systems. New York: Curran Associates Inc., 2012: 1097-1105.
[15] KRIZHEVSKY A. Learning multiple layers of features from tiny images [D]. Toronto: University of Toronto, 2009: 16-22.
[16] AL-SAFFAR A A M, TAO H, TALAB M A. Review of deep convolution neural network in image classification [C]// Proceedings of the 2017 International Conference on Radar, Antenna, Microwave, Electronics, and Telecommunications. Piscataway, NJ: IEEE, 2017: 26-31.
[17] XIE L, WANG J, LIN W, et al. Towards reversal-invariant image representation [J]. International Journal of Computer Vision, 2017, 123 (2): 226-250.
[18] GOODFELLOW I, BENGIO Y, COURVILLE A, et al. Deep Learning [M]. Cambridge, MA: MIT Press, 2016: 11-12.
[19] FENG Y, ZENG S, YANG Y, et al. Study on the optimization of CNN based on image identification [C]// Proceedings of the 17th International Symposium on Distributed Computing and Applications for Business Engineering and Science. Piscataway, NJ: IEEE, 2018: 123-126.