陳菁菁
(北京信息科技大學 計算機學院,北京 100192)
光譜無損檢測技術(shù)近年來應(yīng)用越來越廣泛,結(jié)合化學計量學分析方法,光譜無損檢測技術(shù)已廣泛應(yīng)用在農(nóng)業(yè)、工業(yè)、畜牧業(yè)、醫(yī)學、航空航天等領(lǐng)域[1]。
近紅外光譜技術(shù)(near-infrared spectroscopy)由于檢測速度快、準確性高、在線性好等優(yōu)點在各個領(lǐng)域應(yīng)用廣泛。近紅外光譜技術(shù)結(jié)合化學計量學方法可對被測物進行定性和定量檢測。近年來,機器學習算法越來越多地應(yīng)用在了光譜分析中[2-4]。對于分類檢測,常見的機器學習數(shù)據(jù)分析方法有k近鄰分類算法(k-nearest neighbor,k-NN)、貝葉斯分類算法(Bayesian classifier)、支持向量機(support vector machine,SVM)分類算法、人工神經(jīng)網(wǎng)絡(luò)算法(artificial neural network,ANN)等。其中,k-NN是最簡單的機器學習算法之一,它的基本思想是:如果一個樣本在特征空間中的k個最相似(即特征空間中最近鄰)的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別,距離度量、k值的選擇及分類決策規(guī)則是k近鄰法的3個基本要素。該方法操作簡單,但判別時間較長,而且結(jié)果的準確性取決于樣本是否平衡。貝葉斯分類算法以樣本可能屬于某類的概率作為分類依據(jù),樸素貝葉斯分類算法是貝葉斯分類算法中最簡單的一種。SVM分類方法的主要思想是建立一個最優(yōu)決策超平面,使得該平面兩側(cè)距離該平面最近的兩類樣本之間的距離最大化,它的優(yōu)點是模型的泛化能力較好,對于非線性問題能夠提供較好的分類結(jié)果,但當樣本量較大時存在判別時間較長等缺點。人工神經(jīng)網(wǎng)絡(luò)算法按拓撲結(jié)構(gòu)可分為前向網(wǎng)絡(luò)和反饋網(wǎng)絡(luò)。近年來,隨著深度學習概念的提出,神經(jīng)網(wǎng)絡(luò)發(fā)展迅速。極限學習機(extreme learning machine,ELM)則是在人工神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上提出的一種新的算法,它屬于前饋神經(jīng)網(wǎng)絡(luò)算法,相對于其他神經(jīng)網(wǎng)絡(luò)算法,ELM算法執(zhí)行過程中不必調(diào)整網(wǎng)絡(luò)的輸入權(quán)值以及隱元的偏置,學習速度快且泛化性能好。
本研究的目的是對不同濃度的微量農(nóng)藥的近紅外光譜進行分類分析,比較4種機器學習分類算法的學習結(jié)果,并對預(yù)測精度、模型運行速度等進行分析。
本研究采用美國Thermo Nicolet公司生產(chǎn)的ANTARIS傅里葉變換近紅外光譜儀,該儀器使用InGaAs檢測器,光譜范圍為3800~12 000 cm-1,最小分辨率為2 cm-1。
采用DESIR(dry-extract system for infrared)法制備樣品,以濾紙為載體,制備農(nóng)藥濃度范圍在1.25~400 mg/kg之間的毒死蜱農(nóng)藥樣品共計90個。毒死蜱農(nóng)藥為市面常見農(nóng)藥,對地下害蟲防治效果較好,適用于防治水稻、小麥、棉花、果樹、蔬菜、茶樹上多種咀嚼式和刺吸式口器害蟲。
光譜采集時,將DESIR農(nóng)藥樣品放入樣品池中進行光譜透射,在4000~10 000 cm-1的范圍內(nèi)獲取樣品近紅外光譜信息,分辨率為8 cm-1,每張光譜采集32次后取平均值,每個樣品在不同的位置采集4次光譜數(shù)據(jù)后取平均值,保存得到所有光譜數(shù)據(jù)。
將制備的90個樣品按濃度高低分為3組:300 mg/kg<樣品濃度≤400 mg/kg的樣品分為第1組;100 mg/kg<樣品濃度≤300 mg/kg的樣品分為第2組;100 mg/kg濃度以下的樣品分為第3組。分別采用k近鄰分類算法、樸素貝葉斯分類器、支持向量機算法、極限學習機分類算法對樣品進行分類判別分析。數(shù)據(jù)分析時將樣品按大約3∶1的比例分成訓練集和測試集,其中訓練集66個樣品,測試集24個樣品。
1.4.1k近鄰分類算法
k-NN算法是通過測量不同特征值之間的距離進行分類,具體實現(xiàn)過程如下:1)計算測試數(shù)據(jù)與各個訓練數(shù)據(jù)之間的距離;2)按照距離的遞增關(guān)系進行排序;3)選取距離最小的k個點;4)確定前k個點所在類別的出現(xiàn)頻率;5)返回前k個點中出現(xiàn)頻率最高的類別作為測試數(shù)據(jù)的預(yù)測分類。本研究采用交叉驗證法確定最優(yōu)k值。對每一個k,使用測試集計算,記錄k對應(yīng)的錯誤次數(shù),最終取錯誤數(shù)最小的k。對于距離的度量,有歐氏距離、曼哈頓距離、切比雪夫距離等,本研究采用歐氏距離進行度量,兩個n維向量x和y的歐氏距離為
(1)
1.4.2 樸素貝葉斯分類器
貝葉斯定理是關(guān)于隨機事件A和B的條件概率(或邊緣概率)的一則定理。其中P(A|B)為在B發(fā)生的情況下A發(fā)生的可能性,而樸素貝葉斯分類器是分類算法集合中基于貝葉斯定理的一種算法?,F(xiàn)有已知的訓練集樣本和待分類測試集樣本x={a1,a2,…,am},其中a為每個樣本的特征屬性,已知所有樣本有n個類別,即C={y1,y2,…,yn},則對于待分類項每個類別的概率為
(2)
如果
P(yk|x)=max{P(y1|x),P(y2|x),…,
P(yn|x)}
(3)
則x是屬于yk類的。
1.4.3 支持向量機分類算法
支持向量機算法是非常有效的模式識別工具,眾多研究顯示[5-7],支持向量機算法相比較其他模式識別算法具有更加可靠的分類分析能力。本研究采用LIBSVM軟件包進行數(shù)據(jù)分析。該軟件包可以有效地解決多類問題、交叉驗證選擇參數(shù)、對不平衡樣本加權(quán)、多類問題的概率估計等。在本研究中,使用RBF核函數(shù)進行分析。這個核函數(shù)將樣本非線性地映射到一個更高維的空間,與線性核不同,它能夠處理分類標注和屬性的非線性關(guān)系。RBF核函數(shù)中有兩個參數(shù)C和γ:誤差懲罰因子C>O為某個指定的常數(shù),起到對錯分樣本懲罰程度控制的作用,實現(xiàn)在錯分樣本的比例和算法復(fù)雜程度之間的“折衷”;γ為影響核寬度的參數(shù)。本研究使用5-折交叉驗證法確定最優(yōu)C和γ的值。將訓練集的樣品劃分成大小相同的5個子集,然后將其中1個子集作為測試集,其他4個子集作為訓練集訓練分類器。如此,整個訓練集中的每個實例都會被預(yù)測一次。因此,交叉驗證的準確率等于能夠被正確分類的數(shù)量百分比。該方法能夠有效地避免過擬合問題。在使用5-折交叉驗證法確定參數(shù)C和γ時,使用網(wǎng)格搜索的辦法,找出交叉驗證精度最高的一組(C,γ)為最優(yōu)參數(shù)組合。
1.4.4 極限學習機
ELM最大的特點是在保證學習精度的前提下比傳統(tǒng)的學習算法速度更快。對于單隱層神經(jīng)網(wǎng)絡(luò),ELM可以隨機初始化輸入權(quán)重和偏置并得到相應(yīng)的輸出權(quán)重。
圖1所示為ELM算法的演示圖。算法的步驟可以分為:1)確定隱含層的神經(jīng)元個數(shù),隨機設(shè)定輸入層與隱含層的權(quán)重、隱含層的神經(jīng)元的偏置b;2)選擇一個無限可微的函數(shù)作為隱含層神經(jīng)元的激活函數(shù)G(w,b,x),計算隱含層的輸出H;3)計算輸出層權(quán)值。
例如:現(xiàn)有N個樣本(Xi,ti),其中Xi=[xi1,xi2,…,xin]T∈Rn,ti=[ti1,ti2,…,tim]T∈Rm。一個有L個隱層節(jié)點的單隱層神經(jīng)網(wǎng)絡(luò)可以表示為
(4)
式中:βi是輸出權(quán)重;G(w,b,x)為激活函數(shù);Wi為輸入層權(quán)重;bi是隱層單元的偏置;j=1,2,…,N。式(4)可用矩陣表示為
Hβ=T
(5)
其中:
H=
在ELM算法中,一旦輸入權(quán)重和隱層的偏置被隨機確定,隱層的輸出矩陣H就被唯一確定。訓練單隱層神經(jīng)網(wǎng)絡(luò)可以轉(zhuǎn)化為求解一個線性系統(tǒng)Hβ=T,并且輸出權(quán)重可以被確定為
(6)
式中H+為H的Moore-Penrose 廣義逆矩陣。
本研究所有數(shù)據(jù)處理和分析在Matlab R2013a和Excel2016中完成。
2.2.1 光譜數(shù)據(jù)預(yù)處理
所有光譜數(shù)據(jù)在分析之前都進行了預(yù)處理,首先采用多元散射矯正(multiple scatter correction,MSC)消除光譜曲線的基線漂移,使不同樣本之間的光譜差異變得明顯,之后進行歸一化數(shù)據(jù)處理,將矩陣的每一行壓縮到 [-1,1]。歸一化的目的是使預(yù)處理的數(shù)據(jù)被限定在一定的范圍內(nèi),從而消除奇異樣本數(shù)據(jù)導(dǎo)致的不良影響。將樣本按照濃度不同分為高濃度(300~400 mg/kg)、中濃度(100~300 mg/kg)、低濃度(小于100 mg/kg)三個組別進行試驗。表1所示是不同判別分類方法模型預(yù)測結(jié)果。
表1 不同判別分類方法模型預(yù)測結(jié)果
2.2.2 不同方法分類結(jié)果
從表1中可看出,k-NN、SVM和ELM三種方法均取得了91.67%的分類精度,樸素貝葉斯分類法取得了83.33%的分類精度。其中,對于k-NN算法,高濃度樣本和低濃度樣本的分類準確度達到了100%,10個中濃度樣本判別錯了2個,分別錯判至高、低濃度各1個樣本;樸素貝葉斯算法對低濃度樣本判斷取得了100%的精度,高、中濃度樣本各錯判了2個,總體只取得了83.33%的分類精度;SVM算法得到的分類結(jié)果與k-NN算法一致,同樣地對于高、低精度樣本都取得了較好的分類精度,對中濃度樣本的判別錯了2個,分別錯判至高、低濃度各1個樣本;ELM算法總體的分類精度也達到91.67%,與k-NN、SVM算法結(jié)果不同的是,ELM算法分別對高、中濃度樣本各錯判了1個。
圖3至圖6分別顯示了4種不同分類法k-NN、樸素貝葉斯、SVM和ELM的分類結(jié)果對比圖,橫坐標是測試集樣品編號,縱坐標是測試集樣本分類組別,圖中分別用不同的標識符表示了實際值和預(yù)測值??梢钥闯?,低濃度樣本的分類精度較高,4種分類法都取得了100%的預(yù)測精度,對于中濃度樣本,尤其是測試集第17號樣本,4種預(yù)測方法均判斷錯誤,可考慮是一個異常值。
另外,SVM和k-NN雖然也取得了較高的分類精度,但這兩種算法在訓練數(shù)據(jù)時都比較耗時,其中SVM在尋找最佳核函數(shù)(C,γ)參數(shù)時花費的時間較長,本研究采用5-折交叉驗證法來確定參數(shù)C和γ,該方法可以有效地估計模型的實際預(yù)測能力,但當樣本數(shù)目較大時,計算過程較為耗時。相比較而言,ELM算法的訓練速度更快,對于大樣本數(shù)據(jù)的分類解析效率更高[8]。
本研究采用不同機器學習方法對微量農(nóng)藥近紅外光譜數(shù)據(jù)進行了分類檢測,建立了基于k-NN、樸素貝葉斯分類器、SVM和ELM四種不同算法的分類預(yù)測模型,得出了以下結(jié)論:
1)四種算法均取得了較好的分類預(yù)測精度,其中k-NN、SVM和ELM均取得了91.67%的預(yù)測精度,樸素貝葉斯算法的預(yù)測精度為83.33%。
2)相比較SVM和k-NN算法,ELM算法訓練速度最快,對于大樣本數(shù)據(jù)具有較好的解析精度和分析速度。
3)機器學習算法為解決光譜數(shù)據(jù)處理問題提供了新的思路和解決辦法。
本研究中用到的光譜數(shù)據(jù)容量較小,今后的研究中,為更好地驗證模型的普適性,應(yīng)增加樣本數(shù)量,并在數(shù)據(jù)分析前進行異常值剔除以提高模型的穩(wěn)定性和預(yù)測精度。