袁培森 任守綱,2 翟肇裕 徐煥良,2
(1.南京農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院, 南京 210095; 2.國家信息農(nóng)業(yè)工程技術(shù)中心, 南京 210095;3.馬德里理工大學(xué)技術(shù)工程和電信系統(tǒng)高級學(xué)院, 馬德里 28040)
植物表型的研究在植物保護(hù)、育種等領(lǐng)域具有重要的研究價值[1]。形態(tài)學(xué)性狀(表型)最易觀察與測定,并且最有生態(tài)適應(yīng)性,至今仍是形態(tài)學(xué)研究最重要的基本方法。
菊花作為一種重要的花卉,具有種類多、品種形態(tài)變異豐富、分布廣泛等特點(diǎn),這些為菊花品種資源調(diào)查、品種分類與鑒定等帶來了困難[2]。目前世界范圍內(nèi)有20 000~30 000個菊花品種,大量關(guān)于菊花分類的研究見文獻(xiàn)[3-6]。菊花表型性狀和各種遺傳標(biāo)記之間具有強(qiáng)關(guān)聯(lián)性,其研究可為菊花品種分類向更為精確的數(shù)量分類方向發(fā)展奠定基礎(chǔ)。
花卉品種分類是以形態(tài)學(xué)為基礎(chǔ),諸多分類研究也均以形態(tài)學(xué)為基礎(chǔ)[4-7]。菊花的形態(tài)學(xué)分類和管理主要通過觀察和測量表型性狀,該方法直接、簡單,但是面對龐大的菊花品種和數(shù)量,效率不高。
圖1 5種菊花類型示例圖Fig.1 Illustrations of five chrysanthemum type images
型態(tài)分類一般需要使用特殊設(shè)備或通過耗時的試驗(yàn)進(jìn)行,但是其中存在海量的無類標(biāo)簽的樣例[8]。此類應(yīng)用具有類標(biāo)簽的樣本少、無類標(biāo)簽樣本過剩的特征,如何利用這些無標(biāo)簽數(shù)據(jù)提升分類的效率成為信息領(lǐng)域研究重點(diǎn)。半監(jiān)督學(xué)習(xí)(Semi-supervised learning,SSL)[9-13]是利用未標(biāo)記樣本提升分類模型泛化能力的分類技術(shù)。半監(jiān)督學(xué)習(xí)在少量帶有標(biāo)記的數(shù)據(jù)基礎(chǔ)上,利用大量未標(biāo)記的數(shù)據(jù)進(jìn)行訓(xùn)練。半監(jiān)督學(xué)習(xí)將未標(biāo)記數(shù)據(jù)與少量標(biāo)記數(shù)據(jù)結(jié)合,顯著地提高學(xué)習(xí)效果,從而降低獲取未標(biāo)記數(shù)據(jù)標(biāo)簽的代價。鑒于半監(jiān)督學(xué)習(xí)對利用未標(biāo)記樣本的有效性,其研究和應(yīng)用成為近年來機(jī)器學(xué)習(xí)領(lǐng)域的熱點(diǎn)[8,10,14-15]。
目前,研究者在植物表型方面的研究及應(yīng)用等方面做了很多有意義的工作。CRIMINISI等[16]提出了基于機(jī)器學(xué)習(xí)技術(shù)的模型,用于表型識別,其中就涵蓋了半監(jiān)督方法。BEAULIEU-JONES等[15]用半監(jiān)督學(xué)習(xí)技術(shù)進(jìn)行表型分層研究。SINGH等[17]使用半監(jiān)督度量學(xué)習(xí)識別核表型。DOOSTPARAST等[18]提出基于半監(jiān)督學(xué)習(xí)的基因組數(shù)據(jù)整合和表型分類研究。SCHARR等[19]研究了基于機(jī)器學(xué)習(xí)的植物表型分葉技術(shù)。ZHANG等[14]使用半監(jiān)督學(xué)習(xí)技術(shù)用于植物葉片識別。LEVATI等[8]指出,半監(jiān)督學(xué)習(xí)在表型特征預(yù)測中的研究中具有重要作用。AGARWAL等[20]使用帶噪聲的標(biāo)簽數(shù)據(jù)學(xué)習(xí)表型統(tǒng)計(jì)模型。
本文基于主動學(xué)習(xí)[21]和圖半監(jiān)督學(xué)習(xí)技術(shù)[18,22-23],首先利用標(biāo)簽數(shù)據(jù)和未標(biāo)簽數(shù)據(jù)構(gòu)建圖模型,并構(gòu)建標(biāo)記矩陣;在主動學(xué)習(xí)階段通過計(jì)算熵最大化樣本作為標(biāo)記樣本,重新進(jìn)行訓(xùn)練,提升分類效果,并在菊花數(shù)據(jù)集上進(jìn)行試驗(yàn)和對比分析。
菊花數(shù)據(jù)集的表型特征包括:株高(cm)、花瓣類型、花徑(cm)、舌狀數(shù)和花期。其中,花期包括夏菊、秋菊和寒菊?;ò旯卜譃?種類型:平瓣、匙瓣、管瓣、桂瓣和畸瓣。5種菊花類型示例圖如圖1所示。
one-hot編碼,又稱為一位有效編碼,主要針對離散特征進(jìn)行編碼[24-25]。它采用t位狀態(tài)寄存器對t個狀態(tài)進(jìn)行編碼,每個狀態(tài)都有獨(dú)立的寄存器位,并且在任意時候只有一位有效。
one-hot編碼是把分類變量作為二進(jìn)制向量來表示[24-25]。它將分類值映射到整數(shù)值,然后,每個整數(shù)值被表示為二進(jìn)制向量,除了整數(shù)的索引被標(biāo)記為1,其余都為0。
例如,對于花型類別取值“平瓣”、“匙瓣”、“管瓣”、“桂瓣”、“畸瓣”,其編碼如圖2所示。每一行對應(yīng)一個類別,第1行的編碼[1 0 0 0 0] 為 “平瓣”類,依此類推。
圖2 5種菊花類型的one-hot編碼Fig.2 Illustration of one-hot code of five chrysanthemum type
one-hot編碼后的離散特征可以作為連續(xù)特征進(jìn)行計(jì)算。該方法的優(yōu)點(diǎn)是能夠處理非連續(xù)型數(shù)值特征,在一定程度上擴(kuò)充了特征,使得模型具有更好的魯棒性。
半監(jiān)督學(xué)習(xí)的基本設(shè)置是給定一個未知分布的樣本集S=DL∪DU,其中有標(biāo)記樣本集DL={(x1,y1),(x2,y2),…,(xl,yl)}以及一個未標(biāo)記樣本集DU={xl+1,xl+2,…,xl+u},求解模型f:X→Y可以準(zhǔn)確地對示例x預(yù)測其標(biāo)記y。這里xi∈X為d維向量,yi∈Y為樣本xi的標(biāo)記,l和u分別為DL和DU所包含的樣本數(shù)。
半監(jiān)督學(xué)習(xí)是在樣本集S上尋找最優(yōu)的分類器,目的是利用帶標(biāo)簽數(shù)據(jù)和未標(biāo)記數(shù)據(jù)學(xué)習(xí)設(shè)計(jì)分類模型,使得該模型比僅使用帶標(biāo)簽數(shù)據(jù)分類性能更好。
MILLER等[26]從理論方面定性地指出可以利用未標(biāo)記示例來提升模型分類性能,并從數(shù)據(jù)分布估計(jì)角度給出了直觀的分析。為了利用未標(biāo)記樣本,需要將未標(biāo)記樣本的數(shù)據(jù)分布信息與已標(biāo)記類別相聯(lián)系的假設(shè)。最常見的假設(shè)包括聚類假設(shè)和流形假設(shè)[27]。其中聚類假設(shè)的數(shù)據(jù)傾向于形成離散的集群,并且同一集群中的點(diǎn)更可能共享類標(biāo)簽。流形(Manifold)假設(shè)是假設(shè)數(shù)據(jù)分布在一個流行結(jié)構(gòu)上,鄰近的樣本具有相似的輸出值。
目前,半監(jiān)督分類學(xué)習(xí)方法包括生成式方法、半監(jiān)督支持向量機(jī)、基于圖的半監(jiān)督等[27]。
基于圖(Graph)的半監(jiān)督學(xué)習(xí)方法[22-23]使用圖建模,每個標(biāo)記和未標(biāo)記的示例都采用結(jié)點(diǎn)表示,樣本之間的相似度或相關(guān)性用圖的邊表示。該圖可以使用領(lǐng)域知識或樣本的相似性來構(gòu)建,具有較強(qiáng)的魯棒性[23],適用于本文的菊花多類分類問題。
主動學(xué)習(xí)(Active learning)[21,28]是半監(jiān)督學(xué)習(xí)的特例,其中學(xué)習(xí)算法能夠交互式地利用其他信息源以在新數(shù)據(jù)點(diǎn)處獲得期望輸出。主動學(xué)習(xí)目的是通過盡量少的標(biāo)簽提高準(zhǔn)確率。此外,在多標(biāo)號分類應(yīng)用中,異常點(diǎn)的標(biāo)號對分類器準(zhǔn)確率帶來了很大的挑戰(zhàn)[29]。本文采用基于圖模型的半監(jiān)督學(xué)習(xí)與主動學(xué)習(xí)相結(jié)合的方法,提升菊花分類的性能,并借助于信息理論領(lǐng)域熵的概念和性質(zhì),提升菊花多標(biāo)簽分類的魯棒性[21,29]。
熵(Entropy)表示隨機(jī)變量的不確定性,變量的不確定性越大,熵也越大。設(shè)隨機(jī)事件R,它有r1,r2,…,rm共m個不同的結(jié)果,每個結(jié)果出現(xiàn)的概率分別為p1,p2,…,pm,那么R的信息熵表示為
(1)
對于一個分類系統(tǒng)來說,假設(shè)類別C可能的取值為c1,c2,…,ck(k為類別總數(shù)),每一個類別出現(xiàn)的概率分別是p1,p2,…,pk。此時,該分類系統(tǒng)的熵可以表示為
(2)
在主動學(xué)習(xí)階段,通過計(jì)算傳播標(biāo)簽分布使得式(2)熵最大化的樣本,即選擇分類器最難分類的樣本,遠(yuǎn)離標(biāo)記的樣本作為標(biāo)記樣本放入訓(xùn)練集,提升分類的性能。
基于圖模型的半監(jiān)督學(xué)習(xí)(Graph-based semi-supervised learning,GSSL)[22-23]采用標(biāo)簽傳播(Label propagation)原理,根據(jù)樣例之間的幾何結(jié)構(gòu)構(gòu)造圖模型,用圖的結(jié)點(diǎn)(Vertice)表示樣例,利用圖結(jié)點(diǎn)的鄰接關(guān)系將類標(biāo)簽從已標(biāo)簽的樣本向無類標(biāo)簽的樣本傳播來實(shí)現(xiàn)分類。
本文采用k-最近鄰法 (k-nearest neighbor, k-NN)構(gòu)建圖模型,每個點(diǎn)與最近的k個點(diǎn)相連。近鄰矩陣基于歸一化圖拉普拉斯算子的近鄰矩陣以及在標(biāo)簽上進(jìn)行軟鎖定[27],系統(tǒng)處理過程如圖3所示。
圖3 系統(tǒng)處理過程Fig.3 System processing procedure
首先,給定菊花標(biāo)號數(shù)據(jù)集DL={(x1,y1),(x2,y2),…,(xl,yl)}和未標(biāo)號菊花數(shù)據(jù)集DU={xl+1,xl+2,…,xl+u},l
wij=exp(-‖xi-xj‖2/(2σ2))
(3)
其中i,j∈{1,2,…,m},σ>0是高斯帶寬函數(shù)常數(shù),‖·‖表示向量范數(shù)。圖G可以表示為一個相似矩陣WM×M,相似矩陣的每一項(xiàng)通過式(3)定義的高斯帶寬函數(shù)計(jì)算,標(biāo)簽傳播原理是通過節(jié)點(diǎn)之間的邊傳播類標(biāo)簽。邊的權(quán)重越大,表示兩個節(jié)點(diǎn)越相似,那么標(biāo)簽越容易傳播過去。定義一個M×M的概率轉(zhuǎn)移矩陣P,計(jì)算公式為
(4)
其中,Pij表示從節(jié)點(diǎn)i轉(zhuǎn)移到節(jié)點(diǎn)j的概率。假設(shè)有C個類和l個已標(biāo)號樣本,定義標(biāo)號矩陣Ll×C,給u個未標(biāo)號樣本一個標(biāo)號矩陣Uu×C。合并兩個矩陣可得到矩陣F=[LU],F(xiàn)大小為M×C,其中M=l+u?;趫D正則化的優(yōu)化目標(biāo)函數(shù)可以表示為
(5)
其中,假設(shè)樣本具有相似的預(yù)測函數(shù),f是菊花數(shù)據(jù)集DL∪DU上的預(yù)測函數(shù)。式(5)中第1項(xiàng)為最小化標(biāo)簽數(shù)據(jù)上的損失,第2項(xiàng)為確保在標(biāo)號數(shù)據(jù)和未標(biāo)號數(shù)據(jù)集上的標(biāo)號光滑性[27]。
(6)
對i=1,2,…,M和菊花類別j=1,2,…,C,將F初始化為
(7)
F(t+1)=αLF(t)+(1-α)Y
(8)
其中α∈(0,1)為用戶指定的夾緊因子,用于平衡標(biāo)記傳播項(xiàng)LF(t)與初始化項(xiàng)Y的重要性。這個夾緊因子可以放寬,對于α=0.1,即保留原始標(biāo)簽分布比例為90%?;谑?8)迭代至收斂最終可得
(9)
由式(9)中的F*可獲得未標(biāo)號數(shù)據(jù)集DU中樣本的標(biāo)記為(yl+1,yl+2,…,yl+u)。
本文算法是在基于圖模型半監(jiān)督學(xué)習(xí)基礎(chǔ)上[30]增加了熵最大化策略。首先輸入標(biāo)記樣本集DL={(x1,y1),(x2,y2),…,(xl,yl)}、未標(biāo)記樣本集DU={xl+1,xl+2,…,xl+u}、構(gòu)圖參數(shù)σ、參數(shù)α、半監(jiān)督迭代次數(shù)Si、收斂閾值τ和主動學(xué)習(xí)迭代次數(shù)Ai。算法步驟如下:
while(Ai>0){
計(jì)算相似矩陣W;
基于相似矩陣W構(gòu)造標(biāo)記傳播矩陣
根據(jù)式(7)初始化F(0);
t=0;
while(Si>0 && |F(t+1)-F(t)|>τ){
F(t+1)=αLF(t)+(1-α)Y;
t++;Si--;
}
fori=l+1,l+2,…,l+udo
計(jì)算未分類中樣本熵并排序,選取熵最大化的E個樣本加入已標(biāo)號序列;
Ai++;
}
最后,算法輸出未標(biāo)記樣本的預(yù)測結(jié)果(yl+1,yl+2,…,yl+u)。
試驗(yàn)平臺為Windows 10系統(tǒng),16 GB內(nèi)存,QuadCore Intel Core i7-7700, 4.2 GHz。算法采用Python 3.6實(shí)現(xiàn)。
測試菊花表型數(shù)據(jù)集共有160條,菊花特征包括:株高(cm)、花型、花徑(cm)、舌狀數(shù)和花期。其中,花型包括平瓣、匙瓣、管瓣、桂瓣和畸瓣,類別標(biāo)號分別記為1、2、3、4、5。花期包括夏菊、秋菊和寒菊[4]。
數(shù)據(jù)集分布如圖4和圖5所示。圖4是數(shù)據(jù)集中菊花株高、花徑和舌狀數(shù)概率密度分布圖。圖5是數(shù)據(jù)集中不同菊花類別的株高與舌狀數(shù)分布散點(diǎn)圖。
圖4 菊花株高、花徑和舌狀數(shù)概率密度分布圖Fig.4 Probability density distribution of flower height, diameter and ligule number of dataset
圖5 不同菊花類別的株高與舌狀數(shù)分布散點(diǎn)圖Fig.5 Scatter plot of plant category with plant height and ligule number
參數(shù)設(shè)置如下:夾緊因子α為 0.2,即始終保留原始標(biāo)簽分布的比例為80%。參數(shù)λ的默認(rèn)值是1/C(C是菊花類別個數(shù)),共5類菊花,因此設(shè)置為0.2。k-NN中構(gòu)建圖的近鄰數(shù)k設(shè)置為5。半監(jiān)督迭代次數(shù)Si設(shè)置為6,收斂閾值τ設(shè)置為0.01,主動學(xué)習(xí)迭代次數(shù)Ai設(shè)置為10。
試驗(yàn)從半監(jiān)督分類預(yù)測結(jié)果的質(zhì)量分類效率進(jìn)行了系統(tǒng)的研究和分析。 定義TP(True positive)為模型預(yù)測為正的正樣本,F(xiàn)P(False positive) 為模型預(yù)測為正的負(fù)樣本,F(xiàn)N(False negative)為模型預(yù)測為負(fù)的正樣本。分類結(jié)果從3方面進(jìn)行度量:加權(quán)精度(Weighted precision)、加權(quán)召回率(Weighted recall)和加權(quán)F1度量,定義分別為
(10)
(11)
(12)
其中
式中si——第i個類別的支持度
i——菊花類別個數(shù),i=1,2,…,C,即每一類的真實(shí)樣本出現(xiàn)次數(shù)
ρi——第i個類別的精度
ri——第i個類別的召回率
本部分試驗(yàn)的標(biāo)記樣本比例設(shè)定為31%。首先測試了構(gòu)件圖模型中k-NN參數(shù)k對分類質(zhì)量的影響,試驗(yàn)中k取3、4、5、6,結(jié)果如圖6所示。
圖6 k-NN中參數(shù)k對分類質(zhì)量的影響Fig.6 Influence of parameter k of k-NN on classification quality
從圖6可以看出,在菊花數(shù)據(jù)集上,k-NN參數(shù)k對分類的質(zhì)量有一定的影響,試驗(yàn)中k的取值為3、4、5、6,分類結(jié)果的精度、召回率和F1度量增大之后又有所降低,在k為5時3個評價指標(biāo)取得最大值。試驗(yàn)結(jié)果表明針對此菊花數(shù)據(jù)集的半監(jiān)督近鄰參數(shù)k設(shè)置為5比較合適。
圖7 參數(shù)α對分類質(zhì)量的影響Fig.7 Influence of parameter α on classification quality
圖7是夾緊因子α對分類質(zhì)量的影響。圖7的試驗(yàn)結(jié)果表明,參數(shù)α對結(jié)果的影響較大,參數(shù)α為0.15時,半監(jiān)督學(xué)習(xí)模型在菊花數(shù)據(jù)集上3個指標(biāo)較好;隨著α的增加,分類預(yù)測的質(zhì)量增加達(dá)到一個最高值之后隨之降低。從0.15至0.18,3個指標(biāo)均在0.7以上,超過0.2之后,3個指標(biāo)都有所下降。因此本文參數(shù)α的選取范圍為0.15~0.18。
圖8是熵最大化樣本個數(shù)E對分類質(zhì)量的影響,從圖8的試驗(yàn)結(jié)果可見,參數(shù)E為5時,對菊花數(shù)據(jù)具有最好的分類效果,3個指標(biāo)都在0.7以上。因此參數(shù)E設(shè)置為5。
圖8 熵最大化的樣本個數(shù)對分類質(zhì)量的影響Fig.8 Influence of samples with maximum entropy on classification quality
對菊花的標(biāo)號比例進(jìn)行了試驗(yàn),測試了分類的精度、召回率和F1與已標(biāo)號樣本百分比的關(guān)系,試驗(yàn)中已標(biāo)號樣本的百分比為6.25%~81.25%,試驗(yàn)結(jié)果如圖9所示。從圖9可以看出,隨著樣本標(biāo)號百分比的增加,本文方法的分類精度逐步提升,從0.45提升至0.9以上。在已標(biāo)號百分比為6.25%~23%之間,精度提升較快,精度從0.45快速增加到0.7,在已標(biāo)號樣本百分比為23%時分類精度達(dá)到0.7以上。標(biāo)號百分比為81.25%時,精度為0.91。
圖9 標(biāo)號百分比與精度關(guān)系Fig.9 Relationship of labeled percentage and precision
圖10是分類的召回率與已標(biāo)號樣本百分比之間的關(guān)系。從圖10可以看出,隨著標(biāo)號百分比的增加,本文方法的分類召回率在逐步提升,從0.4提升至0.88左右,在標(biāo)號百分比為6.25%~23%時,召回率增加較快,從0.4增加到0.62以上。在樣本標(biāo)號百分比為23%時分類的召回率達(dá)到0.62以上。標(biāo)號百分比為81.25%時,召回率為0.88。
圖10 標(biāo)號百分比與召回率關(guān)系Fig.10 Relationship of labeled percentage and recall rate
圖11是分類結(jié)果F1與樣本標(biāo)號百分比之間的關(guān)系。從圖11可以看出,隨著樣本標(biāo)號百分比的增加,本文方法的分類F1值在逐步提升,從0.36提升至0.88左右,在標(biāo)號百分比為6.25%~23%時,F(xiàn)1增加較快,從0.36增加到0.63左右。在樣本標(biāo)號百分比為23%時,F(xiàn)1達(dá)到0.63以上。標(biāo)號百分比為81.25%時,F(xiàn)1為0.88。
圖11 標(biāo)號百分比與F1關(guān)系Fig.11 Relationship of labeled percentage and F1
圖12是標(biāo)號百分比為56%時,半監(jiān)督菊花分類歸一化混淆矩陣(Confusion matrix)圖,圖12顯示了本文算法在菊花集上分類錯誤分布情況,行代表的是實(shí)際類別,列代表半監(jiān)督模型的預(yù)測類別。從圖12可以看出,類別1、2、4和5分類準(zhǔn)確率較高,類別3被錯分的概率較大,可能原因是數(shù)據(jù)集分布不均衡,這一點(diǎn)也可以從圖5的類別分布上看出,類別3和類別2、4之間的分類困難較大。通過提升標(biāo)號百分比,可以進(jìn)一步改善分類的質(zhì)量。
圖12 半監(jiān)督菊花分類混淆矩陣Fig.12 Confusion matrix of semi-classification on chrysanthemum dataset
圖13為算法的分類時間與菊花樣本標(biāo)號百分比之間的關(guān)系圖。由圖13可以看出算法的分類性能與標(biāo)號百分比關(guān)聯(lián)性不大,分類的時間基本穩(wěn)定在4.0 ms左右,主要時間消耗在圖構(gòu)建過程。表明本文方法的分類性能比較穩(wěn)定。
圖13 標(biāo)號百分比與菊花半監(jiān)督分類時間關(guān)系Fig.13 Performance of semi-classification with labeled percentage
把基于圖半監(jiān)督分類無熵策略[27,30]作為基線,對比了分類結(jié)果的3個指標(biāo),試驗(yàn)結(jié)果如圖14所示?;趫D半監(jiān)督方法用無熵表示,本文加入主動學(xué)習(xí)熵最大化策略方法用加入熵表示。圖14中橫軸百分?jǐn)?shù)表示標(biāo)號百分比,試驗(yàn)中選取標(biāo)號百分比分別為20%、30%和37%。從圖14的試驗(yàn)結(jié)果可知,隨著標(biāo)號百分比增加,兩種方法的精度、召回率和F1都在增加;加入熵最大化之后,3個指標(biāo)都有較大提升,平均提升了25%左右;加入熵最大化策略之后,系統(tǒng)的3個指標(biāo)都在0.63以上,3個分類評價指標(biāo)相對比較穩(wěn)定。
圖14 有無主動學(xué)習(xí)熵最大化策略分類質(zhì)量對比Fig.14 Classification quality comparison with and without active learning entropy maximization strategy
(1)針對部分已標(biāo)號的菊花數(shù)據(jù),利用半監(jiān)督學(xué)習(xí)算法,通過主動學(xué)習(xí)熵最大化策略來提升菊花表型分類效果。
(2)在菊花數(shù)據(jù)集上對系統(tǒng)參數(shù)進(jìn)行了詳細(xì)的試驗(yàn)驗(yàn)證,并進(jìn)行了對比和分析。試驗(yàn)結(jié)果表明:本文方法能夠較好地利用未標(biāo)號菊花樣本提升分類精度,標(biāo)號百分比在23%時,識別精度快速達(dá)到0.7以上,標(biāo)號百分比在81.25%時,平均識別精度和召回率分別達(dá)到0.91和0.88。