謝璐陽(yáng) 夏兆君 朱少華 張代慶 趙奉奎
摘 ?要:近年來深度學(xué)習(xí)在很多領(lǐng)域發(fā)揮著重要作用,但是在訓(xùn)練過程中存在模型過擬合的問題。針對(duì)該問題,本文對(duì)Kaggle競(jìng)賽中典型的貓狗識(shí)別任務(wù)建立了卷積神經(jīng)網(wǎng)絡(luò),并分析研究了多種抑制過擬合的方法,包括添加L2正則項(xiàng)、dropout處理、數(shù)據(jù)增強(qiáng)及多種方法綜合使用的綜合法,分別分析不同方法在訓(xùn)練集和驗(yàn)證集上的訓(xùn)練精度和損失,發(fā)現(xiàn)數(shù)據(jù)增強(qiáng)法優(yōu)于其他兩種方法,且綜合法能夠消除過擬合。研究結(jié)果對(duì)卷積神經(jīng)網(wǎng)絡(luò)的配置具有重要的參考價(jià)值。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);過擬合;圖像識(shí)別;深度學(xué)習(xí)
中圖分類號(hào):TP311 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract:Deep learning is playing important roles in various fields.However,it suffers overfitting in the training process.Dog and cat recognition is a classical task in Kaggle competition.Based on this problem,a convolutional neural network is created to analyze the effects of different methods for correcting overfitting problems.Those methods include L2 regularization,dropout,data augmentation and comprehensive method.Accuracy and loss of the model from training and validation sets are used to analyze the performance of those measures.Results show that the method of data augmentation performs better than L2 regularization and dropout,and the best method is the comprehensive method which eliminates overfitting in this case.The result is of great significance for configuring Convolutional Neural Networks.
Keywords:Convolutional Neural Networks;overfitting;image recognition;deep learning
1 ? 引言(Introduction)
近年來深度學(xué)習(xí)在自然語(yǔ)言處理、醫(yī)學(xué)診斷和自動(dòng)駕駛等各方面發(fā)揮著重要的作用。然而,深度學(xué)習(xí)還面臨著數(shù)據(jù)過擬合的問題[1]。解決過擬合問題的最優(yōu)方法是增加訓(xùn)練樣本數(shù),然而很多情況下所得的訓(xùn)練數(shù)據(jù)非常有限。在無法獲取更多訓(xùn)練數(shù)據(jù)的情況下,防止神經(jīng)網(wǎng)絡(luò)過擬合的常用方法有添加網(wǎng)絡(luò)容量、添加權(quán)重正則化[2]、dropout處理[3]、數(shù)據(jù)增強(qiáng)[4]等。這些算法也不能完全解決過擬合問題,一方面,不同的方法抑制過擬合的效果不同,另一方面,同樣的方法設(shè)置不同的參數(shù)時(shí),對(duì)過擬合的抑制效果也不相同,因此,需要對(duì)這些方法進(jìn)行深入的研究。
本論文構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像進(jìn)行識(shí)別分類,用不同的方法抑制模型的過擬合,并對(duì)此進(jìn)行分析研究。
2 ? 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks)
2.1 ? 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)是一種多層神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)在很多領(lǐng)域,尤其是圖像處理領(lǐng)域發(fā)揮著重要的作用[5]。卷積神經(jīng)網(wǎng)絡(luò)主要由三部分構(gòu)成[6],第一部分為輸入層;第二部分是若干卷積層和下采樣層,通過卷積層和下采樣層的交替,構(gòu)成深層的網(wǎng)絡(luò)結(jié)構(gòu);第三部分為全連接層,將圖像劃分到指定的類別中。
2.2 ? 卷積層
2.3 ? 池化層
卷積層后面通常為池化層,用一個(gè)特征來表達(dá)一個(gè)局部特征,對(duì)輸入進(jìn)行下采用,減小輸入的尺寸。常用最大池化,利用局部特征的最大值表達(dá)這個(gè)區(qū)域的特征。
2.4 ? 全連接層
在卷積神經(jīng)網(wǎng)絡(luò)中,卷積層和池化層交替出現(xiàn),得到特征的高層抽象,再將這些高層抽象輸入到全連接層進(jìn)行映射,最終實(shí)現(xiàn)分類,即全連接層實(shí)現(xiàn)了基于下層神經(jīng)網(wǎng)絡(luò)提取的特征進(jìn)行分類的功能。
3 ? 過擬合問題分析(Overfitting analysis)
貓狗圖像識(shí)別是Kaggle競(jìng)賽中的一項(xiàng)典型任務(wù),本文以Kaggle數(shù)據(jù)集中的貓狗圖像為例,構(gòu)建了四層卷積層兩層全連接層的卷積神經(jīng)網(wǎng)絡(luò),分析不同正則化方法抑制模型過擬合的效果。所設(shè)定的訓(xùn)練集每個(gè)類別均包括1000個(gè)樣本,驗(yàn)證集每個(gè)類別均包括500個(gè)樣本,測(cè)試集每個(gè)類別均包括500個(gè)樣本。
訓(xùn)練集和測(cè)試集的訓(xùn)練精度和損失如圖1所示,由圖可知,訓(xùn)練集的識(shí)別精度高于驗(yàn)證集,損失值小于驗(yàn)證集,訓(xùn)練一開始就已經(jīng)過擬合了。
3.1 ? L2 正則化
相比于復(fù)雜模型,簡(jiǎn)單模型不容易過擬合,參數(shù)范數(shù)懲罰正則化可使模型權(quán)重取較小的值,限制模型復(fù)雜度。具體方法是給目標(biāo)函數(shù)J添加一個(gè)參數(shù)范數(shù)懲罰項(xiàng),常添加L2正則項(xiàng)。正則化后的目標(biāo)函數(shù)如式(2)所示。
3.2 ? Dropout
Dropout處理是在每一步迭代過程中,隨機(jī)的選擇一些輸入層或隱藏層的神經(jīng)元,將其輸入和輸出連接全部設(shè)為0。由于每次迭代時(shí)網(wǎng)絡(luò)結(jié)構(gòu)均不相同,從而可以產(chǎn)生不同的輸出。Dropout處理后訓(xùn)練集和測(cè)試集的訓(xùn)練精度和損失如圖3所示,由圖可知,在經(jīng)過第4次迭代后,訓(xùn)練過程開始過擬合,相比于圖1的模型有了明顯改善,但是不如添加L2正則項(xiàng)的效果。
3.3 ? 數(shù)據(jù)增強(qiáng)
數(shù)據(jù)增強(qiáng)是對(duì)現(xiàn)有訓(xùn)練數(shù)據(jù)進(jìn)行一系列變換,生成更多的訓(xùn)練數(shù)據(jù)。常用的變換方法包括對(duì)圖像隨機(jī)旋轉(zhuǎn)一定的角度,在水平或垂直方向上做一定的平移,或者是隨機(jī)縮放圖像等。
本文利用Keras中ImageDataGenerator做如下數(shù)據(jù)增強(qiáng):
ImageDataGenerator(rescale=1./255,rotation_range=40,width_shift_range=0.2,height_shift_range=0.2,shear_range=0.2,zoom_range=0.2,horizontal_flip=True)
訓(xùn)練集和測(cè)試集的訓(xùn)練精度和損失如圖4所示,由圖可知,使用數(shù)據(jù)增強(qiáng)后,當(dāng)訓(xùn)練迭代60次時(shí)才出現(xiàn)了過擬合,訓(xùn)練結(jié)果相比于圖1,圖2、圖3的模型都有了明顯改善。
3.4 ? 綜合法抑制過擬合
前述幾種方法均能有效抑制過擬合,但還是有過擬合的現(xiàn)象存在。因此,考慮將多種方法綜合應(yīng)用的綜合法抑制過擬合。該模型添加L2正則項(xiàng),在全連接層后進(jìn)行dropout處理,并使用數(shù)據(jù)增強(qiáng),訓(xùn)練集和測(cè)試集的訓(xùn)練精度和損失如圖5所示。由圖可知,在100次迭代過程中,無論是訓(xùn)練精度還是損失,訓(xùn)練數(shù)據(jù)和驗(yàn)證數(shù)據(jù)都保持一致,綜合法消除了模型的過擬合。
4 ? 結(jié)論(Conclusion)
本文以Kaggle競(jìng)賽中典型的貓狗識(shí)別為例,建立卷積神經(jīng)網(wǎng)絡(luò),通過比較多種抑制過擬合方法,發(fā)現(xiàn)添加L2正則項(xiàng)、dropout處理、數(shù)據(jù)增強(qiáng)均能抑制過擬合,其中以數(shù)據(jù)增強(qiáng)效果最好,但單一的方法不能完全消除過擬合,需要采用綜合法才能抑制過擬合。本文結(jié)果對(duì)卷積神經(jīng)網(wǎng)絡(luò)參數(shù)的配置具有重要的借鑒意義。
參考文獻(xiàn)(References)
[1] Yu Shiqi,Jia Sen,Xu Chunyan.Convolutional neural networks for hyperspectral image classification[J].Neurocomputing,2017,219:88-98.
[2] Goldberg Yoav.Neural network methods for natural language processing[J].Synthesis Lectures on Human Language Technologies,2017,10(1):1-309.
[3] Zhang Yu-Dong,Pan Chichun,Sun Junding,et al.Multiple sclerosis identification by convolutional neural network with dropout and parametric ReLU[J].Journal of computational science,2018,28:1-10.
[4] Huang Gao,Liu Zhuang,Van Der Maaten Laurens,et al.Densely connected convolutional networks[J].Proceedings of the IEEE conference on computer vision and pattern recognition,2017:4700-4708.
[5] 常亮,鄧小明,周明全,等.圖像理解中的卷積神經(jīng)網(wǎng)絡(luò)[J].自動(dòng)化學(xué)報(bào),2016,42(9):1300-1312.
[6] 刑珍珍.卷積神經(jīng)網(wǎng)絡(luò)在圖像處理中的應(yīng)用研究[J].軟件工程,2019,22(6):5-7.
[7] Ketkar Nikhil.Deep Learning with Python[M].New York:Springer,2017:119-117.
作者簡(jiǎn)介:
謝璐陽(yáng)(1998-),女,本科生.研究領(lǐng)域:汽車電子.
夏兆君(1998-),男,本科生.研究領(lǐng)域:汽車電子.
朱少華(1998-),男,本科生.研究領(lǐng)域:汽車電子.
張代慶(1997-),男,本科生.研究領(lǐng)域:汽車電子.
趙奉奎(1986-),男,博士,講師.研究領(lǐng)域:智能汽車環(huán)境感知.本文通訊作者.