吳 蔚
(泰山學(xué)院 信息科學(xué)技術(shù)學(xué)院,山東 泰安 271000)
植物葉病是影響植物正常生長的重要因素之一。在現(xiàn)代農(nóng)業(yè)中,及時準確地對農(nóng)作物葉部病害種類進行識別并采取針對性防治措施,對于保證農(nóng)作物的產(chǎn)量和質(zhì)量穩(wěn)定增長具有重要的意義。傳統(tǒng)的植物葉病種類識別主要通過請教專家或者咨詢有經(jīng)驗的農(nóng)民。然而這類知識的獲取存在成本高、時效低、準確率不穩(wěn)定等缺點。因此采用機器的方式對植物病害種類進行自動化識別在現(xiàn)代農(nóng)業(yè)管理中獲得越來越多的青睞。
前幾年主要通過諸如支持向量機(Support Vector Machines,SVM)、K-means、貝葉斯等傳統(tǒng)機器學(xué)習(xí)方法進行葉病分類識別。隨著設(shè)備計算能力的迅速提升和大數(shù)據(jù)技術(shù)的不斷發(fā)展,越來越多的研究者將目光轉(zhuǎn)向深度學(xué)習(xí)領(lǐng)域。例如Ferentinos[1]使用深度卷積神經(jīng)網(wǎng)絡(luò)進行植物葉病的檢測和診斷,可以達到99.53%的識別成功率。模型訓(xùn)練數(shù)據(jù)來源于公開數(shù)據(jù)庫,包含87848張圖片。Waheed[2]使用密集卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進行玉米葉病種類識別,通過手動收集的方式獲取了12332張圖片進行模型訓(xùn)練,最高準確率達到了98.06%。
深度學(xué)習(xí)是機器學(xué)習(xí)領(lǐng)域重要的分支之一,其深層網(wǎng)絡(luò)結(jié)構(gòu)對應(yīng)著龐大的網(wǎng)絡(luò)模型參數(shù),通常需要大量的樣本數(shù)據(jù)進行訓(xùn)練才能獲取較好的效果。如果訓(xùn)練數(shù)據(jù)過少,網(wǎng)絡(luò)模型很容易出現(xiàn)過擬合的現(xiàn)象。然而,很多現(xiàn)實應(yīng)用中數(shù)據(jù)獲取非常困難,有些是因為數(shù)據(jù)獲取的人力、物力成本較高,而有些則是小概率發(fā)生的事件,無法在短時期內(nèi)大量獲取。反觀人類的學(xué)習(xí)方式,并不需要很多數(shù)據(jù)就能夠?qū)崿F(xiàn)較好的學(xué)習(xí)效果。比如教給嬰幼兒認識一種新的動物,常常一張訓(xùn)練圖片就能讓他們學(xué)會識別。為了讓計算機也能像人類一樣學(xué)習(xí),深度學(xué)習(xí)的一個新分支——小樣本學(xué)習(xí),逐漸引發(fā)越來越多研究者的興趣。
使用小樣本學(xué)習(xí)解決分類問題是指模型使用少量訓(xùn)練數(shù)據(jù)就能獲取對于新類別的識別能力,目前主要有三類方法:數(shù)據(jù)增強、遷移學(xué)習(xí)和元學(xué)習(xí)。數(shù)據(jù)增強方法主要通過圖片的翻轉(zhuǎn)、裁剪、尺度變化、色彩抖動等數(shù)據(jù)生成技術(shù)擴充樣本,解決小樣本的問題。比如Hu等人[3]提出了一種條件式深度卷積生成對抗網(wǎng)絡(luò)進行茶葉葉病種類的識別。該方法可以生成與源域數(shù)據(jù)分布一致的訓(xùn)練樣本實現(xiàn)數(shù)據(jù)增強,解決小樣本學(xué)習(xí)的問題。遷移學(xué)習(xí)指在源域和目標域中實現(xiàn)知識的遷移。源域通常包含與目標域數(shù)據(jù)相關(guān)或類似的大量數(shù)據(jù)樣本,通過對源域數(shù)據(jù)進行訓(xùn)練,獲取對目標域數(shù)據(jù)底層特征的識別能力,然后通過目標域數(shù)據(jù)對網(wǎng)絡(luò)模型進行微調(diào),從而獲取對目標域數(shù)據(jù)的識別能力。通常只對模型的最后幾層模型參數(shù)進行微調(diào),而前面層次的參數(shù)保持固定,防止造成過擬合。比如Chen等人[4]使用深度遷移學(xué)習(xí)方法進行植物葉病分類識別,該方法設(shè)計了一種改進的VGGNet網(wǎng)絡(luò)結(jié)構(gòu)INC-VGGN,并使用大型公開數(shù)據(jù)庫ImageNet進行網(wǎng)絡(luò)模型的預(yù)訓(xùn)練,最終達到了91.83%的準確率。元學(xué)習(xí)是一種學(xué)習(xí)如何學(xué)習(xí)的方法,而不是直接學(xué)習(xí)知識本身。當模型具備了學(xué)習(xí)的能力后,即使只有少量的訓(xùn)練樣本也能快速掌握分類的能力。因此元學(xué)習(xí)是一種更接近人類學(xué)習(xí)方式的方法。
本研究提出一種基于小樣本學(xué)習(xí)的植物葉病分類方法,采用元學(xué)習(xí)的方式對植物公開數(shù)據(jù)集中的葉病樣本數(shù)據(jù)進行分類研究。實驗結(jié)果驗證了小樣本學(xué)習(xí)方法在植物葉病分類應(yīng)用中的有效性,值得在農(nóng)業(yè)領(lǐng)域進一步推廣研究。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)是深度學(xué)習(xí)典型的網(wǎng)絡(luò)模型之一,包含卷積運算且具有深層的網(wǎng)絡(luò)結(jié)構(gòu),近幾年在計算機視覺、自然語言處理等領(lǐng)域獲得了突破性進展。傳統(tǒng)機器學(xué)習(xí)主要通過手工方式設(shè)計特征,而基于CNN的網(wǎng)絡(luò)模型則能夠?qū)崿F(xiàn)端到端的特征自動提取。CNN網(wǎng)絡(luò)模型主要由卷積層、池化層和全連接層構(gòu)成。
1.1.1 卷積層
卷積層的功能是通過卷積核對輸入數(shù)據(jù)進行卷積運算,并加上一個偏差值得到特征提取結(jié)果。卷積層的模型參數(shù)由卷積核和偏差值部分構(gòu)成。可以對多個卷積層進行疊加從而設(shè)計出不同復(fù)雜程度的卷積網(wǎng)絡(luò)。第i層卷積網(wǎng)絡(luò)的特征輸出Zi可表示為:Zi=f(Zi-1Wi+b)i,其中Zi-1表示卷積層的特征輸入(Z0表示輸入圖像),Wi表示第i層卷積核的權(quán)重,bi表示第i層卷積核的偏差值,f表示激活函數(shù)。
1.1.2 池化層
經(jīng)過卷積層的特征提取后,輸出的特征輸入到池化層進行特征的選擇和過濾。池化層可以減輕輸出特征對位置的敏感度,因此同一種物體即使所處位置略有差異,也可以被模型很好的識別。常用的池化方法有極大池化和均值池化,分別計算池化窗口內(nèi)的極大值和平均值。第i層池化層的第j塊池化區(qū)域的特征輸出xij可表示為:xij=Poo(lxi-1,)j,其中xi-1,j表示上一層的特征輸出,Pool表示池化函數(shù)。
1.1.3 全連接層
深度網(wǎng)絡(luò)模型的最后幾層通常連接一層或多層全連接層用于圖像分類任務(wù)。特征經(jīng)過全連接層后得到分類預(yù)測結(jié)果,接著使用softmax回歸函數(shù)將結(jié)果值變?yōu)橹禐檎液蜑?的概率分布。全連接層中第i個輸出結(jié)果Pi可表示為:,其中 K 表示最后一個連接層的神經(jīng)元個數(shù),z代表最后一個連接層的輸出向量。
傳統(tǒng)的深度學(xué)習(xí)將所需要的數(shù)據(jù)劃分為訓(xùn)練集、驗證集和測試集。訓(xùn)練集用于對網(wǎng)絡(luò)模型進行調(diào)參;從訓(xùn)練集中可提前選取一小部分樣本數(shù)據(jù)作為驗證集,用于模型訓(xùn)練時對模型的泛化能力進行評估,通常作為模型是否停止訓(xùn)練的依據(jù);測試集用于對模型的泛化能力進行最終測試,但不能用于模型訓(xùn)練階段的調(diào)參。與傳統(tǒng)深度學(xué)習(xí)劃分數(shù)據(jù)集的方式不同,元學(xué)習(xí)將所需數(shù)據(jù)劃分為元訓(xùn)練集和元測試集,以及必要時設(shè)置的元驗證集。元訓(xùn)練集的基本訓(xùn)練單位是任務(wù),其進行模型訓(xùn)練是依靠任務(wù)驅(qū)動而非數(shù)據(jù)驅(qū)動。每個任務(wù)包含支持集和查詢集,前者通常只提供少量的數(shù)據(jù)用于模型調(diào)參,這也是小樣本的由來,后者用于驗證模型在該任務(wù)上的泛化能力。通過大量不同任務(wù)的訓(xùn)練,模型會找到一組敏感參數(shù)能夠快速適應(yīng)新任務(wù)的學(xué)習(xí)。元測試集也包含多個任務(wù),每個任務(wù)被劃分為支持集和查詢集,前者提供少量數(shù)據(jù)讓模型迅速適應(yīng)新的任務(wù),而查詢集則用于測試這種適應(yīng)性的效果。
本研究提出一種基于小樣本學(xué)習(xí)的農(nóng)作物病害種類分類方法,以下分別從數(shù)據(jù)集、特征提取、元學(xué)習(xí)方法幾方面加以介紹。
本研究使用公開數(shù)據(jù)集PlantVillage[5]進行植物病害分類研究。該數(shù)據(jù)集包含54303張植物葉子圖像,其中涵蓋14種植物和26種葉病類型,根據(jù)植物和葉病類型(包含健康類型)的組合形成了38種類別。隨機選取26種類別樣本作為元訓(xùn)練數(shù)據(jù)集,6種類別樣本作為元驗證數(shù)據(jù)集,剩余6種樣本作為元測試數(shù)據(jù)集。不同數(shù)據(jù)集合之間的類別沒有交叉。
本研究使用Inception V3網(wǎng)絡(luò)[6]中全連接層之前的層次進行輸入圖像的特征提取。該模型將傳統(tǒng)網(wǎng)絡(luò)層次中較大的卷積核進行分解,從而減少參數(shù)數(shù)量。比如3×3卷積核被分解為不對稱的3×1和1×3兩種。同時它使用了批量歸一化方法,減輕了深度網(wǎng)絡(luò)層次中梯度消失的問題。該模型使用的Inception模塊組對網(wǎng)絡(luò)層次的深度和寬度進行了均衡設(shè)計,提升了模型進行特征表達的能力。
采用元學(xué)習(xí)方法進行植物葉病分類主要包含以下兩個步驟:
2.3.1 元訓(xùn)練階段
本階段使用元訓(xùn)練數(shù)據(jù)集進行模型訓(xùn)練。如前所述,訓(xùn)練階段采用任務(wù)驅(qū)動方式進行。每個任務(wù)中隨機采樣N個類別的樣本,每個類別包含T個數(shù)據(jù)。所有類別中的前K(K<T)個數(shù)據(jù)構(gòu)成支持集,表示為,其中xi表示輸入的支持集中第i個圖像數(shù)據(jù),yi表示對應(yīng)的分類標簽。此即為小樣本學(xué)習(xí)中的N-way K-shot方法。K值通常較小,比如可取為1,3,10等值。每個類別剩余的T-K個數(shù)據(jù)構(gòu)成查詢集,表示為
每個任務(wù)中的支持集用于使模型建立一種分類模式,而查詢集則用于對這種分類模式的優(yōu)劣進行驗證并調(diào)優(yōu)。本研究使用原型方法[7]用于支持集分類模式的建立。對于一個N-way K-shot任務(wù),其中的類別k對應(yīng)的原型特征ck可表示為:
其中xi表示類別為k的第i個樣本數(shù)據(jù),f?表示參數(shù)為?的函數(shù)映射,通過神經(jīng)網(wǎng)絡(luò)自動學(xué)習(xí)。接著查詢集中的樣本使用同樣的特征提取模塊獲取對應(yīng)的特征,并度量與每個原型特征的距離。本研究使用歐幾里得距離進行度量。給定兩個n維矢量X={x1x2…xn}和Y={y1y2…yn},其歐幾里得距離可表示為:
對于查詢集中某個標簽為k的樣本x,計算出其與每個原型特征之間的歐幾里得距離后,再經(jīng)由softmax函數(shù)便可進一步計算出對該樣本分類預(yù)測的概率分布。其被預(yù)測為類別k的概率可表示為:
元訓(xùn)練階段的目的是讓原型特征能夠盡可能準確地描述對應(yīng)類別的特征屬性,并使得預(yù)測分類結(jié)果為k的概率最大。因此定義模型最終損失函數(shù)如下:
2.3.2 元測試階段
經(jīng)過元訓(xùn)練階段后的網(wǎng)絡(luò)模型便具備了小樣本預(yù)測的能力。元測試數(shù)據(jù)集中的支持集經(jīng)由特征提取模塊獲得對應(yīng)的特征,計算出每個類別的原型;然后對查詢集中的每個樣本進行類別預(yù)測,用于測試模型訓(xùn)練的效果。
為了對本研究算法進行驗證,進行了相關(guān)實驗。所有輸入圖片的分辨率被處理為84×84,并采用小批量隨機梯度下降算法進行模型損失函數(shù)的優(yōu)化。實驗中元訓(xùn)練數(shù)據(jù)集中的支持集根據(jù)設(shè)定的N-way K-shot參數(shù)進行采樣,查詢集與支持集的采樣類別數(shù)N相同,每類樣本數(shù)固定為15。元測試集中固定生成500個任務(wù),每個任務(wù)采樣方式同元訓(xùn)練集,計算所有任務(wù)的分類準確率的平均值,用于評估對應(yīng)參數(shù)設(shè)定下的分類效果。
表1對使用遷移學(xué)習(xí)方法和本研究小樣本學(xué)習(xí)方法的植物葉病分類準確率進行了對比。其中遷移學(xué)習(xí)方法中使用通過ImageNet數(shù)據(jù)集進行預(yù)訓(xùn)練的Inception V3網(wǎng)絡(luò)結(jié)構(gòu)用于分類,本研究小樣本學(xué)習(xí)方法設(shè)定參數(shù)N=5,K=10??梢钥闯觯褂眠w移學(xué)習(xí)方法用于小樣本農(nóng)作物病害分類研究中的準確率較低,只有42.6%,而本研究方法獲得了相對較高的準確率,達到了81.2%。
表1 基于交叉熵損失函數(shù)和焦點損失函數(shù)的分類準確率對比
圖1展示了不同參數(shù)配置的N-way K-shot進行植物葉病分類的準確率對比??梢钥闯霎擪相同時,N=3的分類準確率均高于N=5時。這是因為需要分類的類別數(shù)越多,意味著相對更難的分類任務(wù),準確率也會降低。當N值固定時,隨著K值增大,分類準確率呈現(xiàn)線性增長的趨勢。這可以解釋為描述每個類別的信息越多,計算出的原型特征越能準確的代表對應(yīng)類別,因此越能得到較高的分類準確率。
圖1 不同參數(shù)下的分類準確率
本文基于小樣本學(xué)習(xí)方法進行植物葉病分類研究,通過元學(xué)習(xí)方法構(gòu)建N-way K-shot任務(wù)進行模型的訓(xùn)練,并構(gòu)建每個類別的原型用于度量待預(yù)測樣本所屬類別。通過與傳統(tǒng)深度學(xué)習(xí)的對比驗證了元學(xué)習(xí)方法在處理小樣本應(yīng)用問題上的有效性。同時通過改變小樣本學(xué)習(xí)過程的參數(shù)配置揭示了影響分類準確率的一些關(guān)鍵特性。未來的研究中將繼續(xù)探索小樣本學(xué)習(xí)方法在農(nóng)業(yè)領(lǐng)域的應(yīng)用。