雷建椿,何金國(guó)
借助計(jì)算機(jī)技術(shù)的發(fā)展,植物識(shí)別工作不斷被推進(jìn),但是目前并未有一套識(shí)別理論能完全正確地識(shí)別植物,因此不斷完善植物識(shí)別方法具有一定意義。
在植物識(shí)別領(lǐng)域中,各種識(shí)別方法不斷被提出,如Wang等[1]使用主成分分析和神經(jīng)網(wǎng)絡(luò)方法診斷植物疾病;Priya等[2]使用支持向量機(jī)(Support Vector Machine, SVM)方法識(shí)別植物;Chaki等[3]則使用神經(jīng)模糊分類器分類植物;Rankothge等[4]使用神經(jīng)網(wǎng)絡(luò)識(shí)別植物圖像;丁嬌[5]使用流形學(xué)習(xí)算法進(jìn)行植物葉片圖像識(shí)別。上述單一識(shí)別方法在小樣本識(shí)別領(lǐng)域或具有識(shí)別率較高的優(yōu)勢(shì),或具有容易訓(xùn)練的優(yōu)勢(shì)。
由于神經(jīng)模糊系統(tǒng)(Neural Fuzzy System, NFS)具備快速學(xué)習(xí)能力,而AdaBoost.M2(Second Multi-class Extension of Adaptive Boosting)能有效提升識(shí)別率,本文將兩者結(jié)合提出了AdaBoost.M2-NFS算法,該算法具有識(shí)別率高、訓(xùn)練時(shí)間相對(duì)較短和容易訓(xùn)練的優(yōu)勢(shì)。
1999年,Freund等[6]給出AdaBoost(Adaptive Boosting)算法最終理論錯(cuò)誤的上邊界:
(1)
其中:γt=0.5-θt;θt為第t個(gè)弱分類器的錯(cuò)誤率;N為樣本總數(shù)目;H(xl)為AdaBoost算法對(duì)xl樣本判斷輸出;yl為樣本xl的實(shí)際類別。從式(1)可得出,在保證每一個(gè)弱分類器的錯(cuò)誤率θt≤0.5情況下,隨著弱分類器數(shù)目T的增加,AdaBoost算法理論錯(cuò)誤上邊界不斷下降。由于AdaBoost算法直接用于多類分類時(shí),弱分類器ht的錯(cuò)誤率θt可能大于0.5,因此使用文獻(xiàn)[7]中提出的AdaBoost擴(kuò)展算法AdaBoost.M2用于多類分類。
假設(shè)有k類N個(gè)樣本,記為(xl,yl),其中:xl(l=1,2,…,N)代表第l個(gè)樣本,yl(yl∈{1,2,…,k})為相對(duì)應(yīng)的類別。
弱分類器記為h(x,y),其中:x為樣本,y為類別標(biāo)記,其輸出值為弱分類器判斷樣本x屬于y類的概率。對(duì)于樣本(xl,yl),當(dāng)y≠yl時(shí),弱分類器作k-1次判斷:xl∈yl或xl∈y。當(dāng)h(xl,yl)=0且h(xl,y)=1時(shí),則xl?yl;當(dāng)h(xl,yl)=1且h(xl,y)=0時(shí),則xl∈yl;當(dāng)h(xl,yl)=h(xl,y)時(shí),則xl∈yl的概率與xl∈y的概率相同。因此xl被錯(cuò)分為y的概率為:
(2)
(3)
從而得出AdaBoost算法中弱分類器的目標(biāo)函數(shù):
(4)
其中:ht(xl,y)表示第t個(gè)弱分類器ht將樣本xl分類為y的概率值,qt(l,y)是標(biāo)簽加權(quán)函數(shù),它的值越大表明第l個(gè)樣本被錯(cuò)分為y的可能性越大;Dt(l)為樣本權(quán)重,它的值越大表明第l個(gè)樣本被誤判的可能性越大。在AdaBoost.M2算法訓(xùn)練過(guò)程中,假設(shè)有樣本(xl,yl),如果第t個(gè)弱分類器將其錯(cuò)誤分類,則Dt+1(l)>Dt(l)。如果第t個(gè)弱分類器將其錯(cuò)分為a類的概率h(x,ya)大于錯(cuò)分為b類的概率h(x,yb),則qt+1(l,ya)>qt+1(l,yb),因此第t+1個(gè)弱分類器將重點(diǎn)訓(xùn)練上一個(gè)弱分類器誤判的樣本,以提高模型識(shí)別率。
模糊神經(jīng)網(wǎng)絡(luò)基本核心是隸屬度的概念,它由Zadeh[8]教授于1965年提出,由此引發(fā)模糊數(shù)學(xué)學(xué)科的誕生。20世紀(jì)80年代,神經(jīng)網(wǎng)絡(luò)再一次興起,Kosko[9]將模糊理論與神經(jīng)網(wǎng)絡(luò)相結(jié)合,并進(jìn)行系統(tǒng)研究。隨后不斷發(fā)展,文獻(xiàn)[10]中總結(jié)歸納模糊理論與神經(jīng)網(wǎng)絡(luò)的結(jié)合大體分為兩種:引入模糊運(yùn)算的神經(jīng)網(wǎng)絡(luò)(也稱狹義模糊神經(jīng)網(wǎng)絡(luò))和基于神經(jīng)網(wǎng)絡(luò)的模糊系統(tǒng)(也稱神經(jīng)模糊系統(tǒng),NFS)。狹義模糊神經(jīng)網(wǎng)絡(luò)本質(zhì)上屬于神經(jīng)網(wǎng)絡(luò),引入模糊運(yùn)算促使收斂速度加快,但是不能充分挖掘隸屬度的價(jià)值,而神經(jīng)模糊系統(tǒng)僅使用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法對(duì)模糊系統(tǒng)的參數(shù)進(jìn)行調(diào)整,本質(zhì)上屬于模糊系統(tǒng)。傳統(tǒng)神經(jīng)模糊系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。
由圖1可看出,傳統(tǒng)神經(jīng)模糊系統(tǒng)由輸入層、隸屬函數(shù)層、規(guī)則層和去模糊層組成。由于AdaBoost.M2要求弱分類器對(duì)于每個(gè)樣本有k個(gè)輸出,對(duì)傳統(tǒng)神經(jīng)模糊系統(tǒng)進(jìn)行改造,得到新的NFS作為AdaBoost.M2的弱分類器(見(jiàn)圖2)。與傳統(tǒng)神經(jīng)模糊系統(tǒng)相比,新的NFS消除輸出層,將規(guī)則層作為輸出層,因此弱分類器由輸入層、隸屬函數(shù)層和輸出層(原為規(guī)則層)組成,則新的NFS最終輸出為:
其中:zj為輸出層第j個(gè)輸出;Aij為隸屬函數(shù)層的高斯函數(shù);aij為高斯函數(shù)的中心;σij為高斯函數(shù)的寬度;xi為樣本的第i個(gè)特征。
為方便計(jì)算,采用李龍[11]提出的改進(jìn)模型,令bij=1/σij,則
(5)
新的NFS參數(shù)為aij和bij,因此aij和bij的更新就是模型的更新,大量文獻(xiàn)表明梯度下降法是一種合適的求極值方法,則s次迭代后迭代公式為:
(6)
(7)
結(jié)合式(4)~(5)可求出:
(8)
(9)
圖1 傳統(tǒng)神經(jīng)模糊系統(tǒng)拓?fù)浣Y(jié)構(gòu)
圖2 新神經(jīng)模糊系統(tǒng)拓?fù)浣Y(jié)構(gòu)
AdaBoost.M2算法要求弱分類器對(duì)每個(gè)樣本都輸出該樣本屬于每個(gè)種類的概率,使用Sigmoid函數(shù)作為輸出函數(shù)的神經(jīng)網(wǎng)絡(luò)是一種符合要求的分類方法,但是實(shí)驗(yàn)結(jié)果表明使用Sigmoid函數(shù)的神經(jīng)網(wǎng)絡(luò)需要合適的初始參數(shù)才能達(dá)到全局最優(yōu),雖然已有張燕等[12]將AdaBoost.M2和BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)結(jié)合形成AdaBoost.M2-NN(AdaBoost.M2 BP Neural Network)模型運(yùn)用于變壓器故障診斷,并取得較好效果,但是由于確定一組好的神經(jīng)網(wǎng)絡(luò)初始參數(shù)較為困難,將其運(yùn)用于植物識(shí)別也就具有一定困難,因此需要更合適的分類方法作為弱分類器。因AdaBoost.M2算法對(duì)弱分類器的要求與模糊數(shù)學(xué)中隸屬度概念非常類似,所以分類方法如果含有模糊數(shù)學(xué)思想將更符合要求,而與模糊數(shù)學(xué)結(jié)合的分類方法有許多種,其中典型的是模糊數(shù)學(xué)與神經(jīng)網(wǎng)絡(luò)結(jié)合形成的NFS。
滿足AdaBoost.M2的要求。
對(duì)于可分類樣本,樣本應(yīng)較為接近樣本種類的中心即對(duì)于良好的訓(xùn)練樣本集,其均值和標(biāo)準(zhǔn)差接近樣本種類的中心與寬度,因此由訓(xùn)練樣本集的均值和標(biāo)準(zhǔn)差的倒數(shù)初始化模型相對(duì)應(yīng)的參數(shù)系數(shù)aij和bij等于用一個(gè)非常接近中心和寬度的值初始化NFS,NFS后期迭代調(diào)整參數(shù)次數(shù)將比較少,同時(shí)也說(shuō)明只需少量良好的訓(xùn)練樣本就能確定一個(gè)好的分類器,因此NFS對(duì)于可分類的樣本集將具有快速成型和泛化能力強(qiáng)的優(yōu)勢(shì),但是單個(gè)NFS會(huì)誤判離某類中心比較近但是確實(shí)不屬于該類的樣本,而AdaBoost.M2通過(guò)組合多個(gè)弱分類器可提升對(duì)此種樣本的識(shí)別度,在一定程度上彌補(bǔ)NFS的不足。
從數(shù)學(xué)概念角度闡述,隸屬度描述一個(gè)元素屬于某個(gè)集合的程度,而AdaBoost.M2要求弱分類器輸出的k個(gè)值中的每一個(gè)值代表樣本屬于某個(gè)類的程度,由此AdaBoost.M2算法與NFS的結(jié)合是合理的,實(shí)驗(yàn)結(jié)果也表明AdaBoost.M2-NFS繼承了NFS快速成型和高泛化能力的優(yōu)勢(shì),又一定程度上提升了識(shí)別度。
設(shè)有N個(gè)訓(xùn)練樣本集:
s={(xl,yl)|l=1,2,…,N}
其中:yl∈Y={1,2,…,k}為類標(biāo)簽(有k類);l為樣本標(biāo)號(hào)。D是樣本權(quán)重,T為弱分類器的最大個(gè)數(shù)。
1)初始化變量。
D1(l)=1/N
t=1
2)生成弱分類器。
當(dāng)t≤T時(shí)循環(huán)以下步驟:
a)計(jì)算標(biāo)簽加權(quán)函數(shù):
b)計(jì)算樣本權(quán)重:
c)訓(xùn)練一個(gè)弱分類器。
創(chuàng)建一個(gè)NFS分類器,將Dt(l)和qt(l,y)傳遞給它,求取最小的εt,即訓(xùn)練出一個(gè)弱分類器。
d)計(jì)算當(dāng)前弱分類器比重并初始化訓(xùn)練下一個(gè)弱分類器所需參數(shù)。
3)輸出組合分類器H(x)。
1)初始化所有參數(shù)。
2)進(jìn)行一次前向計(jì)算。
計(jì)算所有訓(xùn)練樣本對(duì)應(yīng)的NFS分類器輸出zlj:
j=1,2,…,k
(10)
計(jì)算誤差:
(11)
此時(shí),ht(xl,y)代表zly的值。
3)迭代求最佳弱分類器。
當(dāng)s≤10 000時(shí),循環(huán)下面流程:
a)判斷是否生成弱分類器。
若pεt小于εt且η<0.3/1 024,則直接返回Adaboost.M2算法,算法結(jié)束。
b)更新參數(shù)。
若pεt<εt,則令η=η/2,pεt=εt。
結(jié)合式(4)~(5)和更新參數(shù)aij(s+1)和bij(s+1):
(12)
(13)
c)進(jìn)行前向計(jì)算。
根據(jù)式(10)計(jì)算所有樣本對(duì)應(yīng)的zlj。
d)計(jì)算誤差。
表1 四種識(shí)別方法實(shí)驗(yàn)結(jié)果
根據(jù)式(11)計(jì)算所有樣本的誤差εt。
Adaboost.M2-NFS算法流程如圖3所示,左側(cè)是AdaBoost.M2算法主體,右側(cè)是NFS算法主體。左側(cè)的AdaBoost.M2算法每一次循環(huán)就計(jì)算出一個(gè)弱分類器,在每一次循環(huán)時(shí)將Dt(l)和qt(l,y)值傳遞給右側(cè)的NFS算法(創(chuàng)建的新弱分類器),NFS算法根據(jù)傳遞進(jìn)來(lái)的值進(jìn)行迭代,以求解當(dāng)前分類器參數(shù)最優(yōu),當(dāng)左側(cè)AdaBoost.M2循環(huán)結(jié)束時(shí)形成的組合分類器即為Adaboost.M2-NFS模型。
圖3 Adaboost.M2-NFS算法流程
實(shí)驗(yàn)采用Iris數(shù)據(jù)集,該數(shù)據(jù)集是一類多重變量分析的數(shù)據(jù)集,數(shù)據(jù)集包含150個(gè)樣本,分別來(lái)自3種鳶尾花卉(setosa、versicolour、virginica),每種各50個(gè)樣本,每個(gè)樣本都含有花萼長(zhǎng)度、花萼寬度、花瓣長(zhǎng)度、花瓣寬度4個(gè)屬性和該樣本的類別。在Iris數(shù)據(jù)集中,setosa與其他兩類是線性可分,versicolour和virginica是線性不可分。由于此樣本集極易被分類,為最大化測(cè)試模型性能,以3∶2比例隨機(jī)選擇測(cè)試樣本和訓(xùn)練樣本,即每類隨機(jī)選擇30個(gè)樣本共90個(gè)樣本作為測(cè)試樣本,每類剩下20個(gè)樣本共60個(gè)樣本作為訓(xùn)練樣本。
實(shí)驗(yàn)基于VS2010中MFC(Microsoft Foundation Classes)建立主體框架,用C++語(yǔ)言按照上述的AdaBoost.M2-NFS算法流程編寫代碼,以60組數(shù)據(jù)作為訓(xùn)練樣本,保證模型的建立,并用90組作為測(cè)試樣本,以檢驗(yàn)?zāi)P偷姆夯芰?。同時(shí),為測(cè)出AdaBoost.M2-NFS算法的各方面性能,輔助以其他算法進(jìn)行對(duì)比。
在Adaboost.M2-NFS模型中,訓(xùn)練樣本錯(cuò)誤率和測(cè)試樣本錯(cuò)誤率與弱分類器數(shù)目關(guān)系如圖4所示。錯(cuò)誤率計(jì)算公式為:
e=(Nall-Ncorrect)/Nall
其中:Ncorrect為正確分類樣本個(gè)數(shù);Nall為所有樣本個(gè)數(shù)。
圖4 錯(cuò)誤率與弱分類器數(shù)目關(guān)系
如圖4所示,訓(xùn)練樣本錯(cuò)誤率隨著弱分類器數(shù)目的增加總體呈現(xiàn)下降趨勢(shì),表明AdaBoost.M2在訓(xùn)練樣本錯(cuò)誤率上起到降低作用。測(cè)試樣本錯(cuò)誤率隨弱分類器數(shù)目增加呈現(xiàn)的是先下降后上升的趨勢(shì),表明初始時(shí)隨著弱分類器數(shù)目的增加,測(cè)試樣本錯(cuò)誤率不斷下降直到達(dá)到最低水平,隨后再隨著弱分類器數(shù)目的增加,模型過(guò)擬合,導(dǎo)致測(cè)試樣本錯(cuò)誤率上升。根據(jù)圖4,可以以測(cè)試樣本錯(cuò)誤率作為選擇弱分類器數(shù)目的標(biāo)準(zhǔn),確定AdaBoost.M2-NFS需要6個(gè)弱分類器,同時(shí),當(dāng)弱分類器個(gè)數(shù)限定為1個(gè)時(shí),AdaBoost.M2-NFS退化為NFS。
為比較模型識(shí)別率,以python平臺(tái)中sklearn包中Softmax和線性SVM方法進(jìn)行相同的實(shí)驗(yàn)。Softmax是一種多類分類方法,可直接用于Iris數(shù)據(jù)集分類;線性SVM是一種二分類方法,實(shí)驗(yàn)采用sklearn中的SVM提供的“ovo”模式?!皁vo”模式是為訓(xùn)練集中每?jī)深愑?xùn)練一個(gè)SVM分類器,形成多個(gè)分類器,每個(gè)分類器對(duì)于測(cè)試樣本都有一個(gè)判別,最終以投票決定屬于哪一類。經(jīng)過(guò)調(diào)參,SVM懲罰系數(shù)取0.18時(shí)測(cè)試樣本識(shí)別效果較好,SVM、Softmax和AdaBoost.M2-NFS三種方法對(duì)30個(gè)相同的測(cè)試樣本實(shí)驗(yàn)結(jié)果如表1所示。
從表1可以看出:AdaBoost.M2-NFS平均識(shí)別率最高,達(dá)到98.89%,其將一個(gè)屬于setosa類的測(cè)試樣本分類錯(cuò)誤;其次是線性SVM,平均識(shí)別率達(dá)到97.78%,比新模型低1.11個(gè)百分點(diǎn),由于使用懲罰系數(shù),未使用高斯核技術(shù),而versicolor與virginica是線性不可分的,所以SVM在virginica類別的測(cè)試集上有兩個(gè)樣本分類錯(cuò)誤;最后是Softmax和單個(gè)NFS,平均識(shí)別率都是95.56%,新模型平均識(shí)別率比它們高3.33個(gè)百分點(diǎn)。
對(duì)于二分類問(wèn)題,可使用敏感性和特異性分別描述算法的性能,將兩類分成正例和負(fù)例,根據(jù)實(shí)際類型和預(yù)測(cè)類型可形成表2。算法的敏感性為TPR=TP/(TP+FN),特異性為TNR=TN/(FP+TN)。
表2 預(yù)測(cè)結(jié)果符號(hào)表
由于實(shí)驗(yàn)是一個(gè)三類分類問(wèn)題,但是Iris數(shù)據(jù)集中setosa與其他兩類是線性可分,versicolour與virginica是線性不可分,則可使用敏感性和特異性分別描述線性可分?jǐn)?shù)據(jù)集分類情況和線性不可分?jǐn)?shù)據(jù)集分類情況。
將setosa測(cè)試集作為正例,versicolour和virginica測(cè)試集作為負(fù)例,本文算法對(duì)測(cè)試集預(yù)測(cè)結(jié)果形成表3中線性數(shù)據(jù)部分。
表3 實(shí)驗(yàn)結(jié)果表
敏感性為:
TPR=TP/(TP+FN)=29/(29+1)×100%=96.67%
特異性為:
TNR=TN/(FP+TN)=60/(0+60)×100%=100%
將versicolour作為正例,virginica作為負(fù)例,Adaboost.M2-NFS對(duì)測(cè)試樣本預(yù)測(cè)結(jié)果形成表3中非線性數(shù)據(jù)部分。
敏感性為:
TPR=TP/(TP+FN)=30/(30+0)×100%=100%
特異性為:
TNR=TN/(FP+TN)=30/(0+30)×100%=100%
本文算法對(duì)于線性可分?jǐn)?shù)據(jù)敏感性為96.67%,說(shuō)明有正例未被正確識(shí)別,特異性為100%說(shuō)明所有負(fù)例都被正確識(shí)別。對(duì)于線性不可分?jǐn)?shù)據(jù)敏感性和特異性都為100%說(shuō)明Adaboost.M2-NFS對(duì)于線性不可分?jǐn)?shù)據(jù)分類效果較好。將兩組進(jìn)行對(duì)比說(shuō)明新模型對(duì)于線性不可分?jǐn)?shù)據(jù)識(shí)別率更好,這也是由于NFS本身是一個(gè)對(duì)線性不可分?jǐn)?shù)據(jù)有著良好分類能力的分類器。
識(shí)別算法各有優(yōu)點(diǎn)和缺點(diǎn):SVM分類效果較好,但是當(dāng)訓(xùn)練樣本較多時(shí),訓(xùn)練時(shí)間過(guò)長(zhǎng),而且難以獲得較好的參數(shù);Softmax模型能直接解決多類問(wèn)題,但是容易欠擬合;而本文提出的Adaboost.M2-NFS識(shí)別精度較高,對(duì)線性數(shù)據(jù)和非線性數(shù)據(jù)都具有較高的識(shí)別精度。實(shí)驗(yàn)結(jié)果表明,本文提出的Adaboost.M2-NFS在Iris數(shù)據(jù)集上表現(xiàn)比線性SVM和Softmax好;不過(guò),由于Adaboost.M2-NFS訓(xùn)練弱分類器是串行的,即使弱分類器本身訓(xùn)練時(shí)間較短,Adaboost.M2-NFS在Iris數(shù)據(jù)集上所用訓(xùn)練時(shí)間仍比Softmax和SVM長(zhǎng)。下一步將考慮使用更合適提升算法替代AdaBoost,在不損失精度情況下減少算法訓(xùn)練時(shí)間。
參考文獻(xiàn)(References)
[1] WANG H, LI G, MA Z, et al. Image recognition of plant diseases based on principal component analysis and neural networks [C]// ICNC 2012: Proceedings of the 2012 8th International Conference on Natural Computation. Piscataway, NJ: IEEE, 2012: 246-251.
[2] PRIYA C A, BALASARAVANAN T, THANAMANI A S. An efficient leaf recognition algorithm for plant classification using support vector machine [C]// PRIME 2012: Proceedings of the 2012 International Conference on Pattern Recognition, Informatics and Medical Engineering. Piscataway, NJ: IEEE, 2012: 428-432.
[3] CHAKI J, PAREKH R, BHATTACHARYA S. Recognition of whole and deformed plant leaves using statistical shape features and neural-fuzzy classifier [C]// ReTIS 2015: Proceedings of the 2015 IEEE 2nd International Conference on Recent Trends in Information Systems. Piscataway, NJ: IEEE, 2015: 189-194.
[4] RANKOTHGE W H, DISSANAYAKE D M S B, GUNATHILAKA U V K T, et al. Plant recognition system based on neural networks[C]// ICATE 2013: Proceedings of the 2013 International Conference on Advances in Technology and Engineering. Piscataway, NJ: IEEE, 2013: 1-4.
[5] 丁嬌. 基于流形學(xué)習(xí)算法的植物葉片圖像識(shí)別方法研究[D]. 合肥: 安徽大學(xué), 2014: 16-24.(DING J. Research on recognition method of plant leaf images based on manifold learning algorithm[D]. Hefei: Anhui University, 2014: 16-24.)
[6] FREUND Y, SCHAPIRE R E. A short introduction to boosting [J]. Journal of Japanese Society for Artificial Intelligence, 1999, 14(5): 771-780.
[7] FREUND Y, SCHAPIRE R E. Experiments with a new boosting algorithm [C]// ICML 1996: Proceedings of the Thirteenth International Conference on Machine Learning. Bari: Morgan Kaufmann, 1996: 148-156.
[8] ZADEH L A. Fuzzy sets [J]. Information and Control, 1965, 8(3): 338-353.
[9] KOSKO B. Fuzzy cognitive maps[J]. International Journal of Man-Machine Studies, 1986, 24(1): 65-75.
[10] 張凱, 錢鋒, 劉漫丹.模糊神經(jīng)網(wǎng)絡(luò)技術(shù)綜述[J]. 信息與控制, 2003, 32(5): 431-435.(ZHANG K, QIAN F, LIU M D. A survey on fuzzy neural network technology [J]. Information and Control, 2003, 32(5): 431-435.)
[11] 李龍.模糊神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法及收斂性研究[D]. 大連: 大連理工大學(xué), 2010: 29-39.(LI L. Learning algorithms and convergence analysis for fuzzy neural networks [D]. Dalian: Dalian University of Technology, 2010: 29-39.)
[12] 張燕, 倪遠(yuǎn)平.基于AdaBoost.M2-NN的變壓器故障診斷[J]. 甘肅科學(xué)學(xué)報(bào), 2012, 24(1): 97-101.(ZHANG Y, NI Y P. Fault diagnosis of transformer based on AdaBoost.M2-NN [J]. Journal of Gansu Sciences, 2012, 24(1): 97-101.)