李立鵬,師菲蓬,田文博,陳 雷
(天津商業(yè)大學(xué) 信息工程學(xué)院,天津 300134)
我國是全球植物多樣性最豐富的國家之一[1],總數(shù)居世界第三位。除了常見的農(nóng)林植物與盆栽外,還有很多野生植物,是重要的自然資源和環(huán)境要素,對于維持生態(tài)和發(fā)展經(jīng)濟(jì)具有重要作用[2]。近年來,由于野生植物種類的多樣性以及人們對其認(rèn)識的匱乏,很多野生植物被過度采摘。尤其是一些國家級重點保護(hù)野生植物,如百山祖冷杉、銀杉等,處于極度瀕危的狀態(tài),其生存與發(fā)展急需得到保護(hù)。因此,探求一種準(zhǔn)確且高效的野生植物識別方法刻不容緩。
由于野生植物種類間的相似性,傳統(tǒng)的植物識別主要依賴人工采集大量樣本,耗時耗力且識別率低,植物識別面臨巨大挑戰(zhàn)。近年來,人工智能行業(yè)飛速發(fā)展,深度學(xué)習(xí)方法已廣泛應(yīng)用于日常生活的各個領(lǐng)域[3-4]。以深度學(xué)習(xí)為基礎(chǔ),溫長吉[5]、曹香瀅[6]、于慧伶[7]等研究人員將卷積神經(jīng)網(wǎng)絡(luò)的思想與植物圖像識別問題相結(jié)合,探索出了一系列高效準(zhǔn)確的識別算法,應(yīng)用于不同種類植物圖像的分類問題。目前,以深度學(xué)習(xí)為核心技術(shù)的野生植物分類方法較少,分類效率和識別精度方面還有很大的提升空間。
本文以遷移學(xué)習(xí)方法為基礎(chǔ),利用已在大型ImageNet數(shù)據(jù)集中提前訓(xùn)練好的ResNet101網(wǎng)絡(luò)模型,對經(jīng)過數(shù)據(jù)增強后的野生植物圖像進(jìn)行識別和分類。同時,使用Dropout正則化和批量正則化等技術(shù)對原始模型進(jìn)行微調(diào),降低模型過擬合。最后,采用SGDM優(yōu)化器優(yōu)化模型的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù),加速模型的收斂。
作為一種典型的深度神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)共享和稀疏連接策略在處理圖像識別問題上有獨特的優(yōu)勢,在減少網(wǎng)絡(luò)層參數(shù)的同時提高了神經(jīng)網(wǎng)絡(luò)的泛化能力,增加了圖像的識別率。
自LeNet-5網(wǎng)絡(luò)被成功用于手寫數(shù)字識別問題起[8],由卷積層和池化層交替連接的卷積神經(jīng)網(wǎng)絡(luò)模型基本骨架正式確立。隨后AlexNet網(wǎng)絡(luò)模型的創(chuàng)立[9],使卷積神經(jīng)網(wǎng)絡(luò)逐漸成為眾多學(xué)科領(lǐng)域的研究熱點之一。近年來,使用卷積神經(jīng)網(wǎng)絡(luò)來處理與分析數(shù)據(jù)已成為流行趨勢,眾多經(jīng)典的網(wǎng)絡(luò)模型如VGGNet,ResNet,DenseNet及GooleLeNet等相繼被提出,并在計算機視覺和自然語言處理等方面得到了廣泛應(yīng)用[10-12]。
在卷積神經(jīng)網(wǎng)絡(luò)發(fā)展與研究的進(jìn)程中,由于分類問題日益增多,識別難度逐漸加大,人們對卷積神經(jīng)網(wǎng)絡(luò)層的深度要求日漸增高。2015年誕生的殘差網(wǎng)絡(luò)——ResNet[13],利用殘差模塊進(jìn)行訓(xùn)練,建立了輸入與輸出之間的有效連接,使神經(jīng)網(wǎng)絡(luò)在深度拓寬的同時還能保持其特征表達(dá)的能力,巧妙地解決了由層數(shù)加深引發(fā)的梯度消失或梯度爆炸問題。引入殘差模塊是卷積神經(jīng)網(wǎng)絡(luò)發(fā)展進(jìn)程中至關(guān)重要的一環(huán),該模塊結(jié)構(gòu)如圖1所示。
殘差結(jié)構(gòu)以跨層鏈接的方式,構(gòu)成了身份映射(Identity)和殘差映射(Covn)2種映射路徑。通過在普通模塊連接過程中添加x恒等映射的方法,使得該網(wǎng)絡(luò)在緩解梯度消失問題的同時,有效地控制網(wǎng)絡(luò)層參數(shù)和計算復(fù)雜度不變。殘差結(jié)構(gòu)單元可表示為:
xj+1=xj+F(xj,Wj),
(1)
式中,xj,xj+1分別代表該層網(wǎng)絡(luò)的輸入和輸出信息;Wj表示該層待學(xué)習(xí)的參數(shù)。將式(1)進(jìn)行遞歸運算,可得任意深層單元J的特征表示:
(2)
為了更好地說明殘差網(wǎng)絡(luò)模塊的內(nèi)涵,引入反向傳播的概念。令網(wǎng)絡(luò)損失函數(shù)為E,由反向傳播的鏈?zhǔn)角髮?dǎo)法則可推出:
(3)
ResNet101是以VGG網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ),在其上基于短路機制添加殘差學(xué)習(xí)模塊而產(chǎn)生的。該網(wǎng)絡(luò)多達(dá)101層,殘差塊由大小分別為1×1,3×3和1×1的3個卷積層依次相串并與輸入合并構(gòu)成,各層后均加入Rule激活函數(shù),其殘差學(xué)習(xí)模塊如圖2所示。
圖2 3層式的殘差學(xué)習(xí)模塊Fig.2 Three-layer residual learning module
ResNet101網(wǎng)絡(luò)構(gòu)造如圖3所示。
圖3 ResNet101網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 ResNet101 network structure
從第1組卷積塊起到第5組均為殘差模塊,將大小為224 pixel×224 pixel的圖像數(shù)據(jù)輸送后,經(jīng)殘差網(wǎng)絡(luò)提取特征進(jìn)行學(xué)習(xí)訓(xùn)練,最終縮減為7 pixel×7 pixel的尺寸。經(jīng)過殘差網(wǎng)絡(luò)訓(xùn)練后,將圖像輸入平均池化層取平均,最終由全連接層的Softmax函數(shù)進(jìn)行圖像類別的劃分。
遷移學(xué)習(xí)[14]是為了解決小數(shù)據(jù)量樣本集在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練過程中,容易出現(xiàn)過擬合問題而提出的一種非常高效的學(xué)習(xí)方法。通過將在大型網(wǎng)絡(luò)(如ImageNet[15]等)中預(yù)訓(xùn)練好的特征參數(shù)保存后,應(yīng)用到全新的任務(wù)中,通過特征模型權(quán)重在不同分類數(shù)據(jù)之間的可移植性,提高了小數(shù)據(jù)分類問題的效率與準(zhǔn)確性。
對卷積模型而言,遷移學(xué)習(xí)就是要提取提前訓(xùn)練好的卷積基(包括一系列卷積層和池化層)的特征參數(shù),在新模型中凍結(jié)卷積基,輸出時設(shè)置一個新的分類器,針對特定圖像進(jìn)行分類。
基于遷移學(xué)習(xí)在小樣本數(shù)據(jù)集上的優(yōu)勢,本文以ResNet101網(wǎng)絡(luò)為基礎(chǔ)架構(gòu),設(shè)置新樣本參數(shù)為已在ImageNet數(shù)據(jù)集上訓(xùn)練好的參數(shù),采用遷移學(xué)習(xí)的方法對小型野生植物圖像數(shù)據(jù)集進(jìn)行訓(xùn)練。
2.2.1 模型微調(diào)
基于ResNet101網(wǎng)絡(luò)遷移學(xué)習(xí),提出的改進(jìn)后的網(wǎng)絡(luò)模型結(jié)構(gòu)如圖4所示。
圖4 改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Improved network structure
主要改進(jìn)內(nèi)容如下:
(1) 首先對遷移模型進(jìn)行微調(diào),刪除最后的平均池化層和分類層,凍結(jié)其前312層(即凍結(jié)圖3所示conv1~conv4_x層),對其后卷積層(conv5_x層)進(jìn)行參數(shù)重訓(xùn)練,使網(wǎng)絡(luò)在借鑒大型數(shù)據(jù)集參數(shù)的同時保持其與本文所用數(shù)據(jù)集的相關(guān)性,并將該模型作為骨干網(wǎng)絡(luò)。
(2) 設(shè)置全局平均池化層(Global Average Pooling)[16]于ResNet101骨干網(wǎng)絡(luò)之后,使網(wǎng)絡(luò)參數(shù)減少,避免過擬合的發(fā)生。其后添加2層全連接層,將神經(jīng)元個數(shù)均設(shè)置為128,激活函數(shù)選擇Rule。
(3) 在激活函數(shù)后增加Dropout正則化[17]處理,將舍棄概率值設(shè)置為0.5,即在訓(xùn)練網(wǎng)絡(luò)時,隨即丟棄一半的參數(shù),以降低參數(shù)的改變對輸出結(jié)果的影響,如圖5所示。
(4) 搭建BN層,以Batch Normalization技術(shù)[18]批量標(biāo)準(zhǔn)化處理不規(guī)范的數(shù)據(jù),歸一化網(wǎng)絡(luò)輸出,降低模型過擬合,使模型收斂速度加快,進(jìn)一步提高模型的性能。BN層算法如式(4)和式(5),分別表示對數(shù)據(jù)進(jìn)行規(guī)則化和尺度變換與平移。
(4)
(5)
(5) 添加輸出神經(jīng)元個數(shù)為62的分類層Softmax,使輸出符合本文數(shù)據(jù)集的要求。
(a) 標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)
2.2.2 模型優(yōu)化
(1) 優(yōu)化器選擇SGDM動量梯度下降[19],初始學(xué)習(xí)率設(shè)為0.001。在隨機梯度下降法的基礎(chǔ)上引入一階動量Momentum,并將參數(shù)β設(shè)為0.9。采用SGD with Momentum的方式,使更新梯度由式(6)轉(zhuǎn)化為式(7),利用2次訓(xùn)練間梯度的動量變化,使其梯度變化不止由當(dāng)前時刻梯度決定,還與歷史積累有關(guān)。以SGDM為優(yōu)化器,加快模型的收斂速度,緩解了由單純梯度下降法帶來的收斂速度較慢且易于陷入局部鞍點等問題。
mt0=gt0,
(6)
mt=βmt-1+(1-β)gt,
(7)
式中,mt,mt-1分別表示當(dāng)前時刻與前一時刻的梯度更新;gt為目標(biāo)函數(shù)的梯度,其具體表示方式如下:
(8)
(2) 損失函數(shù)選擇交叉熵?fù)p失函數(shù),將得到的輸出進(jìn)行0~1區(qū)間映射,隨后放入傳統(tǒng)的交叉熵函數(shù)中,加快了誤差變化的速度。
將數(shù)據(jù)集劃分后,圖片的一部分在經(jīng)過預(yù)處理后用于新模型的訓(xùn)練,另一部分用于對學(xué)習(xí)到的特征進(jìn)行評定。改進(jìn)后網(wǎng)絡(luò)在植物圖像上的基本分類流程如圖6所示。
圖6 改進(jìn)后網(wǎng)絡(luò)在植物圖像識別中的流程Fig.6 Improved network process in plant image recognition
本文采用的數(shù)據(jù)集是來自kaggle的野生植物圖像數(shù)據(jù)集,包含苜蓿、蘆筍、藍(lán)馬鞭草、車前草等植物在內(nèi)的62種常見的野生植物類別,采集了6 558張植物圖像。實驗以4∶1的比例將所含圖像劃分為訓(xùn)練集(80%)和測試集(20%)兩部分,訓(xùn)練集數(shù)量為5 246張,測試集數(shù)量為1 312張。其中,部分種類植物圖像如圖7所示。
(a) 紫花苜蓿
實驗原始數(shù)據(jù)還需要在訓(xùn)練開始前進(jìn)行預(yù)處理操作。由于每個類別訓(xùn)練集植物圖像數(shù)量約85張,數(shù)據(jù)集相對較小,模型泛化能力差,直接送入網(wǎng)絡(luò)運行易過擬合,嚴(yán)重影響圖像識別的準(zhǔn)確率。因此,首先采用平移、翻轉(zhuǎn)、剪切變換等數(shù)據(jù)增強方法對訓(xùn)練集樣本進(jìn)行擴(kuò)張并隨機打亂順序,其中一張圖片隨機變換后的擴(kuò)充圖像如圖8所示。
(a) 野生植物圖片原圖
接著,采用數(shù)據(jù)規(guī)范化操作使整個樣本集統(tǒng)一,整理其圖像尺寸為224 pixel×224 pixel。
本實驗在硬件上使用Intel(R) Core(TM) i5-10210U CPU處理器,運行內(nèi)存為8 GB,加速顯卡為NVIDIA GeForce MX250 GPU。軟件環(huán)境為Windows 10 64 bit操作系統(tǒng),基于Python腳本語言,Tensorflow2.4.0深度學(xué)習(xí)框架和jupyter notebook開發(fā)平臺。以驗證集精度作為模型評估指標(biāo)。
分別對各種熱門網(wǎng)絡(luò)進(jìn)行遷移學(xué)習(xí)后,綜合選出精度與收斂速度綜合評分較高的ResNet101網(wǎng)絡(luò)模型進(jìn)行微調(diào)訓(xùn)練。
3.3.1 數(shù)據(jù)擴(kuò)充策略對實驗結(jié)果的影響
為驗證數(shù)據(jù)擴(kuò)充策略對小樣本數(shù)據(jù)集的影響,現(xiàn)以對比實驗的方式,在保證網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化方式相同的情況下,分別在原始數(shù)據(jù)集和經(jīng)過平移、翻轉(zhuǎn)、剪切變換等數(shù)據(jù)增強方法擴(kuò)充的數(shù)據(jù)集上進(jìn)行訓(xùn)練,并記錄測試精度如圖9所示。
圖9 數(shù)據(jù)增強前后準(zhǔn)確率對比Fig.9 Comparison of accuracy before and after data enhancement
圖中a,b分別表示添加了數(shù)據(jù)擴(kuò)充方法后和未添加前的測試精度。
由圖9可以看出,對數(shù)據(jù)增強操作后的訓(xùn)練集進(jìn)行網(wǎng)絡(luò)學(xué)習(xí),可在一定程度上緩解模型過擬合的問題,使模型獲得更高的測試精度,相比原始數(shù)據(jù)集提高了約3個百分點,說明數(shù)據(jù)擴(kuò)充策略能有效地提升小數(shù)據(jù)量樣本集的識別準(zhǔn)確率。
3.3.2 改進(jìn)策略對實驗結(jié)果的影響
(1) ResNet101網(wǎng)絡(luò)自對比實驗
為驗證本文所提出的微調(diào)模型在野生植物圖像識別問題上的有效性,分別在遷移學(xué)習(xí)方法的基礎(chǔ)上對原始ResNet101模型、微調(diào)第5組卷積塊后的模型、添加Dropout正則化和批量正則化技術(shù)后的模型進(jìn)行訓(xùn)練,優(yōu)化器選用SGDM,損失函數(shù)為交叉熵?fù)p失函數(shù)。均迭代150次后,以測試準(zhǔn)確率最大值為判斷依據(jù),與本文改進(jìn)模型相比,最終得到的模型精度與損失對比情況如表1所示。
表1 微調(diào)模型訓(xùn)練結(jié)果對比Tab.1 Comparison of fine-tuning model training results
由表1可以看出,2種改進(jìn)方案均對測試集準(zhǔn)確率和損失結(jié)果有影響。較原始ResNet101模型,微調(diào)卷積塊后模型準(zhǔn)確率提高5.8%、加入正則化技術(shù)后提高2.1%,且模型損失均有降低,證明了本文所提優(yōu)化方法可在一定程度上緩解模型過擬合的問題,在植物識別問題上具有可行性。本文最終改進(jìn)模型測試準(zhǔn)確率達(dá)85.6%,較原始模型準(zhǔn)確率提升了6.9%,損失降低了0.7,具有很好的泛化能力,適合用于野生植物圖像的分類。改進(jìn)前后模型訓(xùn)練過程中的準(zhǔn)確率與損失曲線如圖10和圖11所示。
可以看出,原有ResNet101網(wǎng)絡(luò)在訓(xùn)練集上表現(xiàn)較好,識別精度隨迭代次數(shù)的增多穩(wěn)步升高,最終能達(dá)到將近94%的準(zhǔn)確率,但測試集精度卻在達(dá)到78%后不再改變,可見模型產(chǎn)生了過擬合的問題。而改進(jìn)后的網(wǎng)絡(luò)模型在訓(xùn)練約40次后,測試精度能穩(wěn)定在85%,較原始模型泛化能力更優(yōu)。
(a) 改進(jìn)前訓(xùn)練集與測試集準(zhǔn)確率
(a) 改進(jìn)后訓(xùn)練集與測試集準(zhǔn)確率
(2) 與其他網(wǎng)絡(luò)模型的對比試驗
為驗證ResNet101網(wǎng)絡(luò)結(jié)構(gòu)在野生植物數(shù)據(jù)集上的適用性,本文就卷積神經(jīng)網(wǎng)絡(luò)發(fā)展進(jìn)程中熱門網(wǎng)絡(luò)結(jié)構(gòu)——VGGNet與其對比,分別以VGGNet16,VGGNet19和ResNet101網(wǎng)絡(luò)為基礎(chǔ)架構(gòu),采用遷移學(xué)習(xí)的方法對數(shù)據(jù)集進(jìn)行訓(xùn)練。迭代150次后,不同模型的訓(xùn)練結(jié)果如表2所示。
表2 不同模型訓(xùn)練結(jié)果對比Tab.2 Comparison of training results of different models
由表2可以看出,相較于VGGNet網(wǎng)絡(luò),ResNet101網(wǎng)絡(luò)引入殘差結(jié)構(gòu)模塊,在減少網(wǎng)絡(luò)參數(shù)的同時提高了模型的準(zhǔn)確率,表明了殘差結(jié)構(gòu)的有效性。模型的具體測試精度隨迭代次數(shù)的變化情況如圖12所示。
圖12 不同網(wǎng)絡(luò)測試準(zhǔn)確率對比曲線Fig.12 Comparison curves of different network test accuracy
由圖12可以看出,ResNet101網(wǎng)絡(luò)比VGGNet更快收斂且曲線穩(wěn)定后能達(dá)到相對較高的準(zhǔn)確率,由于ResNet網(wǎng)絡(luò)是在VGG網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上基于短路機制發(fā)展起來的,因此更能體現(xiàn)出殘差模塊的獨特優(yōu)勢。與其他基礎(chǔ)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相比,本文所提出的改進(jìn)模型經(jīng)遷移學(xué)習(xí)后對植物圖像的識別準(zhǔn)確率最高,因而更適用于野生植物數(shù)據(jù)集的學(xué)習(xí)。
3.3.3 不同優(yōu)化器及學(xué)習(xí)率對實驗結(jié)果的影響
許多優(yōu)化方法都能解決深度學(xué)習(xí)中模型最優(yōu)解的問題,不同優(yōu)化器的選擇也會使訓(xùn)練出現(xiàn)不同的效果。訓(xùn)練過程中學(xué)習(xí)率選取太小,收斂速度緩慢;而選取過大,會導(dǎo)致曲線震蕩,從而容易跳過最優(yōu)值。為驗證不同優(yōu)化器和學(xué)習(xí)率對野生植物數(shù)據(jù)集識別結(jié)果的影響,分別選用優(yōu)化器SGDM,Adam和RMSprop在改進(jìn)后的模型上進(jìn)行試驗,并設(shè)置初始學(xué)習(xí)率分別為0.01,0.001和0.000 1,得到的測試結(jié)果如表3所示。
表3 不同優(yōu)化器與學(xué)習(xí)率的識別精度對比Tab.3 Comparison of recognition accuracy of different optimizers and learning rates
實驗結(jié)果表明,以SGDM為優(yōu)化器,0.001為學(xué)習(xí)率參數(shù)時,模型能夠快速收斂,測試準(zhǔn)確率最高達(dá)到85.6%,更適合用于本模型的訓(xùn)練。
本文提出了一種以ResNet101網(wǎng)絡(luò)為基礎(chǔ)的野生植物圖像識別方法。首先,針對實驗樣本較少的問題,對經(jīng)過數(shù)據(jù)擴(kuò)充后的樣本圖像進(jìn)行遷移學(xué)習(xí),選取綜合評分較高的ResNet101網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),凍結(jié)其部分層,對剩余各層進(jìn)行重訓(xùn)練;其次,對模型結(jié)構(gòu)參數(shù)進(jìn)行微調(diào),引入正則化技術(shù)提高泛化,并選取SGDM優(yōu)化器加快模型的收斂速度,使其表現(xiàn)出更好的性能。實驗結(jié)果表明,本文所提方法針對62種野生植物圖像的測試精度可達(dá)85.6%,較單一ResNet101網(wǎng)絡(luò)模型遷移學(xué)習(xí)方法提高了約7%的檢測精度,模型泛化能力較好,對于解決野生植物圖像的分類識別問題有一定的可行性。在未來的工作研究中,將擴(kuò)充野生植物數(shù)據(jù)集,把更多的植物種類考慮在內(nèi),設(shè)計更加有效地優(yōu)化方法,進(jìn)一步提高不同網(wǎng)絡(luò)模型在此種識別問題上的性能。