史騰飛 尚家秀 吳宗航
摘? 要:針對(duì)傳統(tǒng)圖像分類方法準(zhǔn)確率較低的問題,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)和遷移學(xué)習(xí)思想的圖像分類改進(jìn)方法。利用遷移學(xué)習(xí)的思想改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)及網(wǎng)絡(luò)參數(shù),然后利用TensorFlow框架實(shí)現(xiàn)該模型并對(duì)MNIST數(shù)據(jù)集進(jìn)行分類,最后將改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率與傳統(tǒng)分類方法進(jìn)行對(duì)比分析。實(shí)驗(yàn)結(jié)果表明,改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率高達(dá)99.37%,分類性能明顯優(yōu)于其他方法。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);遷移學(xué)習(xí);TensorFlow;圖像分類
中圖分類號(hào):TP183? ? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2023)05-0109-04
Research on Improved Image Classification Method Based on Convolution Neural Network
SHI Tengfei, SHANG Jiaxiu, WU Zonghang
(School of Electrical Engineering, North China University of Water Resources and Electric Power, Zhengzhou? 450045, China)
Abstract: Aiming at the low accuracy of traditional image classification methods, an improved image classification method based on convolution neural network and transfer learning ideas is proposed. Use the idea of transfer learning to improve the network structure and network parameters of the convolution neural network, and then use TensorFlow framework to implement the model and classify the MNIST dataset. Finally, compare the classification accuracy of the improved convolution neural network model with the traditional classification methods. The experimental results show that the classification accuracy of the improved convolution neural network model is up to 99.37%, and the classification performance is significantly better than other methods.
Keywords: convolution neural network; transfer learning; TensorFlow; image classification
0? 引? 言
近年來,計(jì)算機(jī)技術(shù)飛速發(fā)展,人工智能和大數(shù)據(jù)領(lǐng)域也隨之有了更深層次的突破,圖像開始在人們的日常生活中扮演著不可或缺的角色。圖像分類技術(shù)本質(zhì)上是對(duì)圖像信息進(jìn)行特征提取,區(qū)分不同類別圖像數(shù)據(jù)的一種圖像處理方法,已被廣泛應(yīng)用于圖像識(shí)別、自然語言處理、物理學(xué)和遙感科學(xué)等領(lǐng)域[1]。卷積神經(jīng)網(wǎng)絡(luò)(CNN)有著傳統(tǒng)識(shí)別方法所不具備的優(yōu)點(diǎn),比如能夠自行訓(xùn)練、識(shí)別速度更快、需要特征更少以及分類準(zhǔn)確率更高等,其在模式分類領(lǐng)域有著十分廣泛的應(yīng)用,在深度學(xué)習(xí)領(lǐng)域更是有著舉足輕重的地位。
近年來,隨著深度學(xué)習(xí)的不斷發(fā)展,圖像分類領(lǐng)域也經(jīng)歷了復(fù)興。傳統(tǒng)的機(jī)器學(xué)習(xí)方法正在逐漸被更新穎、更強(qiáng)大的深度學(xué)習(xí)算法所取代。1998年,LeCun發(fā)明了LeNet-5網(wǎng)絡(luò)。2006年,Hinton提出深度信念網(wǎng)絡(luò)(DBN)的概念,深度學(xué)習(xí)開始在該領(lǐng)域煥發(fā)光彩。Krizhevsky等人于2012年提出了AlexNet,AlexNet使用Drop-Out來減少過擬合[2]。此后,有研究人員在卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)上做出創(chuàng)新,提出了堆疊結(jié)構(gòu)模型,例如ZFNet、VGGNet等。殘差注意力網(wǎng)絡(luò)(Residual Attention Network)和MobileNet等網(wǎng)絡(luò)模型也被相繼提出,其網(wǎng)絡(luò)性能比之前的網(wǎng)絡(luò)模型更進(jìn)一步[3]。
本文首先分析卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu),再利用遷移學(xué)習(xí)的思想,取長補(bǔ)短,對(duì)其網(wǎng)絡(luò)結(jié)構(gòu)及網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化改進(jìn),最后將所構(gòu)建的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率與傳統(tǒng)分類算法進(jìn)行對(duì)比分析,通過圖像數(shù)據(jù)集MNIST上的實(shí)驗(yàn),檢驗(yàn)卷積核個(gè)數(shù)、卷積核大小、池化方式及隱藏神經(jīng)元數(shù)目等優(yōu)化因素對(duì)卷積神經(jīng)網(wǎng)絡(luò)分類準(zhǔn)確率的影響。
1? 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
LeNet-5是最早的卷積神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
如圖1所示,卷積神經(jīng)網(wǎng)絡(luò)主要由卷積層、池化層、激活函數(shù)和全連接層組成。
1.1? 卷積層
卷積層(Convolution Layer, CONV)又稱特征提取層,用于提取圖像的特征,是卷積神經(jīng)網(wǎng)絡(luò)的核心部分。卷積神經(jīng)網(wǎng)絡(luò)局部連接和權(quán)值共享的特點(diǎn),在卷積層的計(jì)算過程中得到了充分的體現(xiàn),與全連接神經(jīng)網(wǎng)絡(luò)相比,卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)量大大減少。共享的權(quán)值和偏置也被稱作卷積核(Filter)。
卷積層輸出值的計(jì)算過程如下:使用式(1)計(jì)算卷積,可以得到每個(gè)對(duì)應(yīng)位置的像素值:
(1)
其中,xi, j表示特征圖像第i行第j列的元素;wm,n表示特征圖像第m行第n列的權(quán)重;ωb表示卷積核的偏置項(xiàng);ai, j表示特征圖像第i行第j列的元素;f表示激活函數(shù)。
事實(shí)上,最后所得特征圖的寬度和高度滿足下面的關(guān)系:
(2)
(3)
其中,W2和W1分別表示卷積后和卷積前特征圖像的寬度;F表示卷積核的寬度;P表示Zero Padding數(shù)量;S表示步幅大??;H2和H1分別表示卷積后和卷積前特征圖像的高度。
1.2? 池化層
池化層(Pooling Layer)又稱下采樣層,用于數(shù)據(jù)壓縮,降低數(shù)據(jù)維度,能夠有效減少模型的參數(shù)數(shù)量,減輕訓(xùn)練過程中的過擬合現(xiàn)象。
我們一般使用最大池化層(Max-pooling)和平均池化層(Mean-pooling)等。由于卷積神經(jīng)網(wǎng)絡(luò)計(jì)算過程比較復(fù)雜,收斂速度比較緩慢,為了盡可能地提高網(wǎng)絡(luò)性能,本文選擇使用計(jì)算更簡(jiǎn)單的最大池化層。最大池化的表達(dá)式為:
(4)
1.3? 激活函數(shù)
激活函數(shù)用于對(duì)卷積層的輸出結(jié)果做非線性映射,從而使神經(jīng)網(wǎng)絡(luò)可以逼近任何非線性函數(shù),提升模型的泛化能力[4]。Sigmoid函數(shù)的輸出范圍為0至1,能夠用在輸出為預(yù)測(cè)概率的模型中。Sigmoid函數(shù)的公式為:
(5)
相比于sigmoid函數(shù),ReLU函數(shù)的計(jì)算速度更快,且在輸入為正時(shí)不存在梯度飽和問題,是目前深度學(xué)習(xí)中較為常用的一種激活函數(shù)。ReLU函數(shù)的公式為:
(6)
1.4? 全連接層
全連接層緊隨于單卷積層塊之后,單卷積層塊的輸出作為全連接層的輸入,首先對(duì)所輸入的小批量樣本進(jìn)行扁平化(Flatten)處理,對(duì)數(shù)據(jù)進(jìn)行分類處理,完成分類任務(wù)。
Softmax函數(shù)是將多分類的結(jié)果以概率的形式表達(dá)出來,其公式為:
(7)
其中,分子是指數(shù)函數(shù),根據(jù)指數(shù)函數(shù)的特性,將模型的實(shí)數(shù)輸出在零到正無窮上映射;分母將所有結(jié)果相加,進(jìn)行歸一化處理,將多分類輸出轉(zhuǎn)變?yōu)楦怕瘦敵觥?/p>
2? 基于遷移學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)改進(jìn)
2.1? 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)及遷移學(xué)習(xí)思想概述
首先介紹LeNet-5和VGGNet卷積神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu)。LeNet-5主要依賴卷積層和池化層對(duì)圖像數(shù)據(jù)進(jìn)行特征提取,其輸入數(shù)據(jù)是32×32的灰度值圖像。模型訓(xùn)練過程中,使用大小為5×5的卷積核,使用2×2的平均池化層進(jìn)行降采樣,使用Sigmoid函數(shù)作為激活函數(shù),輸出層由歐式徑向基函數(shù)(RBF)單元組成,輸出最后的分類結(jié)果。
接下來對(duì)VGGNet進(jìn)行介紹。相較于LeNet-5網(wǎng)絡(luò)結(jié)構(gòu),VGGNet使用尺寸更小3×3、數(shù)量更多的卷積核代替大的卷積核,并選用2×2的最大池化層,減少參數(shù)數(shù)量,降低計(jì)算復(fù)雜性[5]。在前面兩層全連接層中,在使用激活函數(shù)后使用丟棄率為0.5的Dropout使神經(jīng)元隨機(jī)失活,以緩解過擬合現(xiàn)象,提高模型的泛化能力。
最后介紹一下遷移學(xué)習(xí)。遷移學(xué)習(xí)是指一種學(xué)習(xí)對(duì)另一種學(xué)習(xí)的影響,專注于存儲(chǔ)已有問題的解決模型,并將其用于其他相關(guān)問題上[6]。本文的網(wǎng)絡(luò)改進(jìn)部分便是基于此思想,將VGGNet中的一些思想應(yīng)用到LeNet-5結(jié)構(gòu)中,從而對(duì)LeNet-5模型的網(wǎng)絡(luò)結(jié)構(gòu)和網(wǎng)絡(luò)參數(shù)進(jìn)行改進(jìn),以此得到分類準(zhǔn)確率更高的模型。
2.2? 改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型構(gòu)建
2.2.1? 前向傳播階段
在卷積層方面,基于VGGNet的思想,減少卷積核的大小,增加卷積核的個(gè)數(shù),用兩個(gè)3×3的卷積核堆疊代替一個(gè)5×5的卷積核,并且在圖像周圍增加padding,減少模型參數(shù),降低計(jì)算的復(fù)雜性。在池化層方面,將LeNet-5模型中2×2的平均池化層改為2×2的最大池化層進(jìn)行減半池化,將前一層的特征縮減一半,并且在每層卷積層之后都使用丟棄率為0.5的Dropout對(duì)神經(jīng)元隨機(jī)失活,避免過擬合現(xiàn)象的發(fā)生。增加一層全連接層,使用softmax函數(shù)作為最后輸出的分類函數(shù)。在激活函數(shù)方面,選用ReLU激活函數(shù)作為改進(jìn)神經(jīng)網(wǎng)絡(luò)中的激活函數(shù),相比于sigmoid,ReLU函數(shù)計(jì)算起來更加簡(jiǎn)單,并且在不同初始化的情況下更容易訓(xùn)練。
2.2.2? 反向傳播階段
在改進(jìn)的模型中,選用交叉熵函數(shù)作為損失函數(shù),優(yōu)化函數(shù)通過傳統(tǒng)的隨機(jī)梯度下降算法SGD替換為自適應(yīng)優(yōu)化函數(shù)Adam,實(shí)現(xiàn)對(duì)模型誤差和參數(shù)的微調(diào)。Adam能夠自動(dòng)調(diào)整學(xué)習(xí)率,并且調(diào)整過程中參數(shù)比較穩(wěn)定,實(shí)現(xiàn)更簡(jiǎn)單,計(jì)算更高效。
通過以上過程,得到改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)模型,其結(jié)構(gòu)如圖2所示。
該改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)各層參數(shù)如表1所示。
2.3? 圖像分類流程
本文的改進(jìn)神經(jīng)網(wǎng)絡(luò)圖像分類流程如圖3所示,分類流程主要分為兩個(gè)部分:一是訓(xùn)練部分,首先對(duì)訓(xùn)練樣本進(jìn)行預(yù)處理,對(duì)訓(xùn)練樣本進(jìn)行歸一化,將像素值控制在0~1范圍內(nèi),并將目標(biāo)數(shù)字的標(biāo)簽做成One Hot編碼的形式,然后訓(xùn)練改進(jìn)神經(jīng)網(wǎng)絡(luò)模型;二是測(cè)試部分,主要是通過測(cè)試集數(shù)據(jù)檢驗(yàn)改進(jìn)神經(jīng)網(wǎng)絡(luò)模型的性能,判斷其是否達(dá)到預(yù)期的分類準(zhǔn)確率。
3? 實(shí)驗(yàn)結(jié)果及分析
3.1? 實(shí)驗(yàn)數(shù)據(jù)集
本文使用MNIST數(shù)據(jù)集,訓(xùn)練集一共包含60 000張圖像和標(biāo)簽,測(cè)試集一共包含10 000張圖像和標(biāo)簽。其中,圖像以3維、字節(jié)的形式進(jìn)行存儲(chǔ),標(biāo)簽以1維、字節(jié)的形式進(jìn)行存儲(chǔ)。每張圖片是一個(gè)28×28像素點(diǎn)0~9的灰質(zhì)手寫數(shù)字圖片,黑底白字,圖像的像素值為0~255。
本文的改進(jìn)CNN是基于TensorFlow[7]的深度學(xué)習(xí)框架,使用Keras工具包,安裝Numpy等庫,在PyCharm平臺(tái)下采用Python語言進(jìn)行編程,進(jìn)行模型的搭建和優(yōu)化改進(jìn)。最后使用TensorBoard對(duì)訓(xùn)練過程和實(shí)驗(yàn)結(jié)果進(jìn)行可視化,以便更直觀地觀察訓(xùn)練過程和實(shí)驗(yàn)結(jié)果。
圖像分類的性能評(píng)價(jià)指標(biāo)為準(zhǔn)確率,相關(guān)定義如下:
3.2? 實(shí)驗(yàn)結(jié)果分析
利用基于TensorFlow的改進(jìn)神經(jīng)網(wǎng)絡(luò)模型,對(duì)測(cè)試集圖像數(shù)據(jù)進(jìn)行多次測(cè)試,取多次程序運(yùn)行得到的準(zhǔn)確率,然后取其平均值作為最終的準(zhǔn)確率。
由表2所列的測(cè)試準(zhǔn)確率可以看出,相比于未改進(jìn)的LeNet-5網(wǎng)絡(luò),本文構(gòu)建的改進(jìn)神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率高達(dá)99.37%,模型性能有了明顯的提高。
最后利用TensorBoard對(duì)訓(xùn)練過程進(jìn)行可視化,導(dǎo)出損失函數(shù)值和準(zhǔn)確率數(shù)據(jù),并使用Matplotlib繪圖庫繪制圖像,得到訓(xùn)練過程的損失函數(shù)值和準(zhǔn)確率,如圖4所示。
由圖4可以看出,隨著迭代次數(shù)的逐漸增加,損失函數(shù)值逐漸減小,分類準(zhǔn)確率緩慢上升,模型的性能逐漸趨于完善,圖像逐漸趨于平緩,模型的分類準(zhǔn)確率逐漸穩(wěn)定,達(dá)到構(gòu)建網(wǎng)絡(luò)的最佳性能。
將本文構(gòu)建的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率與傳統(tǒng)的分類算法進(jìn)行對(duì)比,對(duì)比結(jié)果如表3所示。利用SVM、BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)CNN多次對(duì)MNIST數(shù)據(jù)集進(jìn)行分類實(shí)驗(yàn)并求平均值,得到分類精度。
通過分析表3所列數(shù)據(jù),發(fā)現(xiàn)改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率高于其他幾種方法,改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型的分類性能明顯優(yōu)于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)模型,分類準(zhǔn)確率更高,能夠有效緩解過擬合現(xiàn)象,模型的泛化能力更強(qiáng)。
4? 結(jié)? 論
本文根據(jù)已有的兩種網(wǎng)絡(luò)結(jié)構(gòu),基于遷移學(xué)習(xí)的思想,取長補(bǔ)短,使用更小、數(shù)量更多的卷積核代替大的卷積核,并改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)和相關(guān)參數(shù),最后將構(gòu)建的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型與傳統(tǒng)的分類方法進(jìn)行分類準(zhǔn)確率對(duì)比。實(shí)驗(yàn)結(jié)果表明,改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率高達(dá)99.37%,分類性能明顯優(yōu)于其他方法。由此可見,與傳統(tǒng)的分類方法相比,本文改進(jìn)方法訓(xùn)練過程中的參數(shù)更少,模型的泛化能力得到很大的提升,改進(jìn)后的網(wǎng)絡(luò)分類準(zhǔn)確率更高,并且訓(xùn)練過程中的過擬合問題也得到了有效緩解。但本文只是對(duì)較為簡(jiǎn)單的數(shù)據(jù)集進(jìn)行了分類,該訓(xùn)練模型還存在一些不足,希望在以后的研究中,能夠?qū)Ω鼜?fù)雜的數(shù)據(jù)集進(jìn)行分類研究,并有效提升模型的分類性能,減少訓(xùn)練時(shí)間。
參考文獻(xiàn):
[1] 胡貌男,邱康,謝本亮.基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的圖像分類方法 [J].通信技術(shù),2018,51(11):2594-2600.
[2] 張珂,馮曉晗,郭玉榮,等.圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)模型綜述 [J].中國圖像圖形學(xué)報(bào),2021,26(10):2305-2325.
[3] 周楠.歐陽鑫玉.卷積神經(jīng)網(wǎng)絡(luò)發(fā)展 [J].遼寧科技大學(xué)學(xué)報(bào),2021,44(5):349-356.
[4] 嚴(yán)春滿,王鋮.卷積神經(jīng)網(wǎng)絡(luò)模型發(fā)展及應(yīng)用 [J].計(jì)算機(jī)科學(xué)與探索,2021,15(1):27-46.
[5] SITAULA C,HOSSAIN M B. Attention-based VGG-16 model for COVID-19 chest X-ray image classification [J].Applied Intelligence,2020,51(5):1-14.
[6] 許景輝,邵明燁,王一琛,等.基于遷移學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)玉米病害圖像識(shí)別 [J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2020,51(2):230-236+253.
[7] 費(fèi)寧,張浩然.TensorFlow架構(gòu)與實(shí)現(xiàn)機(jī)制的研究 [J].計(jì)算機(jī)技術(shù)與發(fā)展,2019,29(9):31-34.
作者簡(jiǎn)介:史騰飛(1998—),男,漢族,河南駐馬店人,碩士研究生在讀,研究方向:控制科學(xué)與工程、數(shù)據(jù)安全。
收稿日期:2022-11-25