史騰飛 尚家秀 吳宗航
摘? 要:針對傳統(tǒng)圖像分類方法準(zhǔn)確率較低的問題,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)和遷移學(xué)習(xí)思想的圖像分類改進方法。利用遷移學(xué)習(xí)的思想改進卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)及網(wǎng)絡(luò)參數(shù),然后利用TensorFlow框架實現(xiàn)該模型并對MNIST數(shù)據(jù)集進行分類,最后將改進卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率與傳統(tǒng)分類方法進行對比分析。實驗結(jié)果表明,改進卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率高達99.37%,分類性能明顯優(yōu)于其他方法。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);遷移學(xué)習(xí);TensorFlow;圖像分類
中圖分類號:TP183? ? 文獻標(biāo)識碼:A? 文章編號: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? 引? 言
近年來,計算機技術(shù)飛速發(fā)展,人工智能和大數(shù)據(jù)領(lǐng)域也隨之有了更深層次的突破,圖像開始在人們的日常生活中扮演著不可或缺的角色。圖像分類技術(shù)本質(zhì)上是對圖像信息進行特征提取,區(qū)分不同類別圖像數(shù)據(jù)的一種圖像處理方法,已被廣泛應(yīng)用于圖像識別、自然語言處理、物理學(xué)和遙感科學(xué)等領(lǐng)域[1]。卷積神經(jīng)網(wǎng)絡(luò)(CNN)有著傳統(tǒng)識別方法所不具備的優(yōu)點,比如能夠自行訓(xùn)練、識別速度更快、需要特征更少以及分類準(zhǔn)確率更高等,其在模式分類領(lǐng)域有著十分廣泛的應(yīng)用,在深度學(xué)習(xí)領(lǐng)域更是有著舉足輕重的地位。
近年來,隨著深度學(xué)習(xí)的不斷發(fā)展,圖像分類領(lǐng)域也經(jīng)歷了復(fù)興。傳統(tǒng)的機器學(xué)習(xí)方法正在逐漸被更新穎、更強大的深度學(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ò)模型更進一步[3]。
本文首先分析卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu),再利用遷移學(xué)習(xí)的思想,取長補短,對其網(wǎng)絡(luò)結(jié)構(gòu)及網(wǎng)絡(luò)參數(shù)進行優(yōu)化改進,最后將所構(gòu)建的改進卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率與傳統(tǒng)分類算法進行對比分析,通過圖像數(shù)據(jù)集MNIST上的實驗,檢驗卷積核個數(shù)、卷積核大小、池化方式及隱藏神經(jīng)元數(shù)目等優(yōu)化因素對卷積神經(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)值共享的特點,在卷積層的計算過程中得到了充分的體現(xiàn),與全連接神經(jīng)網(wǎng)絡(luò)相比,卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)量大大減少。共享的權(quán)值和偏置也被稱作卷積核(Filter)。
卷積層輸出值的計算過程如下:使用式(1)計算卷積,可以得到每個對應(yīng)位置的像素值:
(1)
其中,xi, j表示特征圖像第i行第j列的元素;wm,n表示特征圖像第m行第n列的權(quán)重;ωb表示卷積核的偏置項;ai, j表示特征圖像第i行第j列的元素;f表示激活函數(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ò)計算過程比較復(fù)雜,收斂速度比較緩慢,為了盡可能地提高網(wǎng)絡(luò)性能,本文選擇使用計算更簡單的最大池化層。最大池化的表達式為:
(4)
1.3? 激活函數(shù)
激活函數(shù)用于對卷積層的輸出結(jié)果做非線性映射,從而使神經(jīng)網(wǎng)絡(luò)可以逼近任何非線性函數(shù),提升模型的泛化能力[4]。Sigmoid函數(shù)的輸出范圍為0至1,能夠用在輸出為預(yù)測概率的模型中。Sigmoid函數(shù)的公式為:
(5)
相比于sigmoid函數(shù),ReLU函數(shù)的計算速度更快,且在輸入為正時不存在梯度飽和問題,是目前深度學(xué)習(xí)中較為常用的一種激活函數(shù)。ReLU函數(shù)的公式為:
(6)
1.4? 全連接層
全連接層緊隨于單卷積層塊之后,單卷積層塊的輸出作為全連接層的輸入,首先對所輸入的小批量樣本進行扁平化(Flatten)處理,對數(shù)據(jù)進行分類處理,完成分類任務(wù)。
Softmax函數(shù)是將多分類的結(jié)果以概率的形式表達出來,其公式為:
(7)
其中,分子是指數(shù)函數(shù),根據(jù)指數(shù)函數(shù)的特性,將模型的實數(shù)輸出在零到正無窮上映射;分母將所有結(jié)果相加,進行歸一化處理,將多分類輸出轉(zhuǎn)變?yōu)楦怕瘦敵觥?/p>
2? 基于遷移學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)改進
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主要依賴卷積層和池化層對圖像數(shù)據(jù)進行特征提取,其輸入數(shù)據(jù)是32×32的灰度值圖像。模型訓(xùn)練過程中,使用大小為5×5的卷積核,使用2×2的平均池化層進行降采樣,使用Sigmoid函數(shù)作為激活函數(shù),輸出層由歐式徑向基函數(shù)(RBF)單元組成,輸出最后的分類結(jié)果。
接下來對VGGNet進行介紹。相較于LeNet-5網(wǎng)絡(luò)結(jié)構(gòu),VGGNet使用尺寸更小3×3、數(shù)量更多的卷積核代替大的卷積核,并選用2×2的最大池化層,減少參數(shù)數(shù)量,降低計算復(fù)雜性[5]。在前面兩層全連接層中,在使用激活函數(shù)后使用丟棄率為0.5的Dropout使神經(jīng)元隨機失活,以緩解過擬合現(xiàn)象,提高模型的泛化能力。
最后介紹一下遷移學(xué)習(xí)。遷移學(xué)習(xí)是指一種學(xué)習(xí)對另一種學(xué)習(xí)的影響,專注于存儲已有問題的解決模型,并將其用于其他相關(guān)問題上[6]。本文的網(wǎng)絡(luò)改進部分便是基于此思想,將VGGNet中的一些思想應(yīng)用到LeNet-5結(jié)構(gòu)中,從而對LeNet-5模型的網(wǎng)絡(luò)結(jié)構(gòu)和網(wǎng)絡(luò)參數(shù)進行改進,以此得到分類準(zhǔn)確率更高的模型。
2.2? 改進卷積神經(jīng)網(wǎng)絡(luò)模型構(gòu)建
2.2.1? 前向傳播階段
在卷積層方面,基于VGGNet的思想,減少卷積核的大小,增加卷積核的個數(shù),用兩個3×3的卷積核堆疊代替一個5×5的卷積核,并且在圖像周圍增加padding,減少模型參數(shù),降低計算的復(fù)雜性。在池化層方面,將LeNet-5模型中2×2的平均池化層改為2×2的最大池化層進行減半池化,將前一層的特征縮減一半,并且在每層卷積層之后都使用丟棄率為0.5的Dropout對神經(jīng)元隨機失活,避免過擬合現(xiàn)象的發(fā)生。增加一層全連接層,使用softmax函數(shù)作為最后輸出的分類函數(shù)。在激活函數(shù)方面,選用ReLU激活函數(shù)作為改進神經(jīng)網(wǎng)絡(luò)中的激活函數(shù),相比于sigmoid,ReLU函數(shù)計算起來更加簡單,并且在不同初始化的情況下更容易訓(xùn)練。
2.2.2? 反向傳播階段
在改進的模型中,選用交叉熵函數(shù)作為損失函數(shù),優(yōu)化函數(shù)通過傳統(tǒng)的隨機梯度下降算法SGD替換為自適應(yīng)優(yōu)化函數(shù)Adam,實現(xiàn)對模型誤差和參數(shù)的微調(diào)。Adam能夠自動調(diào)整學(xué)習(xí)率,并且調(diào)整過程中參數(shù)比較穩(wěn)定,實現(xiàn)更簡單,計算更高效。
通過以上過程,得到改進的卷積神經(jīng)網(wǎng)絡(luò)模型,其結(jié)構(gòu)如圖2所示。
該改進卷積神經(jīng)網(wǎng)絡(luò)各層參數(shù)如表1所示。
2.3? 圖像分類流程
本文的改進神經(jīng)網(wǎng)絡(luò)圖像分類流程如圖3所示,分類流程主要分為兩個部分:一是訓(xùn)練部分,首先對訓(xùn)練樣本進行預(yù)處理,對訓(xùn)練樣本進行歸一化,將像素值控制在0~1范圍內(nèi),并將目標(biāo)數(shù)字的標(biāo)簽做成One Hot編碼的形式,然后訓(xùn)練改進神經(jīng)網(wǎng)絡(luò)模型;二是測試部分,主要是通過測試集數(shù)據(jù)檢驗改進神經(jīng)網(wǎng)絡(luò)模型的性能,判斷其是否達到預(yù)期的分類準(zhǔn)確率。
3? 實驗結(jié)果及分析
3.1? 實驗數(shù)據(jù)集
本文使用MNIST數(shù)據(jù)集,訓(xùn)練集一共包含60 000張圖像和標(biāo)簽,測試集一共包含10 000張圖像和標(biāo)簽。其中,圖像以3維、字節(jié)的形式進行存儲,標(biāo)簽以1維、字節(jié)的形式進行存儲。每張圖片是一個28×28像素點0~9的灰質(zhì)手寫數(shù)字圖片,黑底白字,圖像的像素值為0~255。
本文的改進CNN是基于TensorFlow[7]的深度學(xué)習(xí)框架,使用Keras工具包,安裝Numpy等庫,在PyCharm平臺下采用Python語言進行編程,進行模型的搭建和優(yōu)化改進。最后使用TensorBoard對訓(xùn)練過程和實驗結(jié)果進行可視化,以便更直觀地觀察訓(xùn)練過程和實驗結(jié)果。
圖像分類的性能評價指標(biāo)為準(zhǔn)確率,相關(guān)定義如下:
3.2? 實驗結(jié)果分析
利用基于TensorFlow的改進神經(jīng)網(wǎng)絡(luò)模型,對測試集圖像數(shù)據(jù)進行多次測試,取多次程序運行得到的準(zhǔn)確率,然后取其平均值作為最終的準(zhǔn)確率。
由表2所列的測試準(zhǔn)確率可以看出,相比于未改進的LeNet-5網(wǎng)絡(luò),本文構(gòu)建的改進神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率高達99.37%,模型性能有了明顯的提高。
最后利用TensorBoard對訓(xùn)練過程進行可視化,導(dǎo)出損失函數(shù)值和準(zhǔn)確率數(shù)據(jù),并使用Matplotlib繪圖庫繪制圖像,得到訓(xùn)練過程的損失函數(shù)值和準(zhǔn)確率,如圖4所示。
由圖4可以看出,隨著迭代次數(shù)的逐漸增加,損失函數(shù)值逐漸減小,分類準(zhǔn)確率緩慢上升,模型的性能逐漸趨于完善,圖像逐漸趨于平緩,模型的分類準(zhǔn)確率逐漸穩(wěn)定,達到構(gòu)建網(wǎng)絡(luò)的最佳性能。
將本文構(gòu)建的改進卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率與傳統(tǒng)的分類算法進行對比,對比結(jié)果如表3所示。利用SVM、BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)CNN多次對MNIST數(shù)據(jù)集進行分類實驗并求平均值,得到分類精度。
通過分析表3所列數(shù)據(jù),發(fā)現(xiàn)改進卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率高于其他幾種方法,改進卷積神經(jīng)網(wǎng)絡(luò)模型的分類性能明顯優(yōu)于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)模型,分類準(zhǔn)確率更高,能夠有效緩解過擬合現(xiàn)象,模型的泛化能力更強。
4? 結(jié)? 論
本文根據(jù)已有的兩種網(wǎng)絡(luò)結(jié)構(gòu),基于遷移學(xué)習(xí)的思想,取長補短,使用更小、數(shù)量更多的卷積核代替大的卷積核,并改進網(wǎng)絡(luò)結(jié)構(gòu)和相關(guān)參數(shù),最后將構(gòu)建的改進卷積神經(jīng)網(wǎng)絡(luò)模型與傳統(tǒng)的分類方法進行分類準(zhǔn)確率對比。實驗結(jié)果表明,改進卷積神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率高達99.37%,分類性能明顯優(yōu)于其他方法。由此可見,與傳統(tǒng)的分類方法相比,本文改進方法訓(xùn)練過程中的參數(shù)更少,模型的泛化能力得到很大的提升,改進后的網(wǎng)絡(luò)分類準(zhǔn)確率更高,并且訓(xùn)練過程中的過擬合問題也得到了有效緩解。但本文只是對較為簡單的數(shù)據(jù)集進行了分類,該訓(xùn)練模型還存在一些不足,希望在以后的研究中,能夠?qū)Ω鼜?fù)雜的數(shù)據(jù)集進行分類研究,并有效提升模型的分類性能,減少訓(xùn)練時間。
參考文獻:
[1] 胡貌男,邱康,謝本亮.基于改進卷積神經(jīng)網(wǎng)絡(luò)的圖像分類方法 [J].通信技術(shù),2018,51(11):2594-2600.
[2] 張珂,馮曉晗,郭玉榮,等.圖像分類的深度卷積神經(jīng)網(wǎng)絡(luò)模型綜述 [J].中國圖像圖形學(xué)報,2021,26(10):2305-2325.
[3] 周楠.歐陽鑫玉.卷積神經(jīng)網(wǎng)絡(luò)發(fā)展 [J].遼寧科技大學(xué)學(xué)報,2021,44(5):349-356.
[4] 嚴(yán)春滿,王鋮.卷積神經(jīng)網(wǎng)絡(luò)模型發(fā)展及應(yīng)用 [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ò)玉米病害圖像識別 [J].農(nóng)業(yè)機械學(xué)報,2020,51(2):230-236+253.
[7] 費寧,張浩然.TensorFlow架構(gòu)與實現(xiàn)機制的研究 [J].計算機技術(shù)與發(fā)展,2019,29(9):31-34.
作者簡介:史騰飛(1998—),男,漢族,河南駐馬店人,碩士研究生在讀,研究方向:控制科學(xué)與工程、數(shù)據(jù)安全。
收稿日期:2022-11-25