周孟然,趙晉級(jí),王 煜,胡 鋒,來文豪,卞 凱
(1.安徽理工大學(xué) 電氣與信息工程學(xué)院,安徽 淮南 232000;2.南京四方億能電力自動(dòng)化有限公司,江蘇 南京 211111)
隨著國民經(jīng)濟(jì)水平的提高,食用油在日常生活中發(fā)揮著不可替代的作用,快速、準(zhǔn)確地識(shí)別食用油的種類對(duì)于安全使用食用油具有重大意義。當(dāng)前食用油分類多以化學(xué)分析方法為主,例如氣相色譜法、液相色譜法、電子鼻法[1]等,這些傳統(tǒng)的方法存在分析速度慢和設(shè)備昂貴等缺點(diǎn)。一些研究者近些年常采用光譜法對(duì)食用油進(jìn)行識(shí)別,如傅里葉變換光譜法[2]、近紅外光譜法等,這些光譜方法相對(duì)于傳統(tǒng)的化學(xué)分析方法速度快,但分類準(zhǔn)確率卻不是很高。
基于以上提出的問題,文中提出一種激光誘導(dǎo)熒光(Laser Induced Fluorescence,LIF)技術(shù)和AdaBoost 算法結(jié)合的食用油快速、準(zhǔn)確識(shí)別方法。
激光誘導(dǎo)熒光光譜技術(shù)具有分析速度快、靈敏度好、準(zhǔn)確率高和抗干擾能力強(qiáng)等優(yōu)點(diǎn)[3],在化工、醫(yī)療、生物和環(huán)境[4]等諸多領(lǐng)域中有廣泛的應(yīng)用[5?6]。文獻(xiàn)[7]根據(jù)LIF 技術(shù)快速性的特點(diǎn),將LIF 技術(shù)用于礦井突水種類的檢測(cè),文獻(xiàn)[8]將LIF 技術(shù)應(yīng)用于土壤中多環(huán)芳烴的檢測(cè),文獻(xiàn)[9]將LIF 技術(shù)應(yīng)用于假酒的識(shí)別。文獻(xiàn)[10]將LIF 技術(shù)結(jié)合KNN 算法用于初榨橄欖油的定量分析,該文利用K?近鄰方法(KNN)對(duì)處理過的光譜數(shù)據(jù)建立模型,這種處理方法可以實(shí)現(xiàn)快速對(duì)初榨橄欖油的定量分析,但準(zhǔn)確率卻很低。
本文提出的AdaBoost?KNN 算法是在KNN 算法的基礎(chǔ)上進(jìn)行集成,集成之后的分類準(zhǔn)確率更高,泛化性能更好,且不需要對(duì)光譜數(shù)據(jù)截取、去噪和降維,節(jié)省了大量時(shí)間。AdaBoost 算法現(xiàn)已廣泛應(yīng)用于模式識(shí)別和圖像識(shí)別等諸多領(lǐng)域[11?13],但目前,還未看到有文獻(xiàn)將AdaBoost 算法應(yīng)用于植物食用油的分類。
本文將LIF 技術(shù)應(yīng)用于食用油的分類檢測(cè),實(shí)驗(yàn)中使用的激光器為405 nm 藍(lán)紫光半導(dǎo)體激光器(北京華源拓達(dá)激光技術(shù)有限公司),USB2000+光譜儀(美國Ocean Optics)可以接收340~1020 nm 的激光,分辨率為2048。根據(jù)激光誘導(dǎo)熒光檢測(cè)的原理,搭建的激光誘導(dǎo)熒光檢測(cè)食用油模型如圖1 所示。
圖1 激光誘導(dǎo)熒光實(shí)驗(yàn)系統(tǒng)圖
AdaBoost 算法的學(xué)習(xí)過程實(shí)質(zhì)是在不停學(xué)習(xí)中改變樣本的權(quán)值,直到學(xué)習(xí)的結(jié)果誤差為0 或者學(xué)習(xí)器個(gè)數(shù)達(dá)到預(yù)設(shè)值,然后把所有弱分類器學(xué)習(xí)的結(jié)果按權(quán)值綜合,輸出最終結(jié)果。算法流程如下:
輸入:訓(xùn)練數(shù)據(jù)集T=({x1,y1),(x2,y2),…,(xn,yn)},
其中,xi∈X,yi∈Y={1,2,3,…},迭代次數(shù)為M。
1)初始化訓(xùn)練樣本的權(quán)值分布
2)對(duì)于m=1,2,…,M
①使用具有權(quán)值分布Dm的訓(xùn)練數(shù)據(jù)集進(jìn)行學(xué)習(xí)得到弱分類器Gm(x);
②計(jì)算Gm(x)在訓(xùn)練數(shù)據(jù)集上的分類誤差:
③計(jì)算Gm(x)在強(qiáng)分類器中所占的權(quán)重:
④更新訓(xùn)練數(shù)據(jù)集的權(quán)值分布:
式中zm為歸一化因子。
本實(shí)驗(yàn)采用的實(shí)驗(yàn)材料為5 種植物食用油,分別命名為油樣A,B,C,D,E;5 種實(shí)驗(yàn)樣本的特性如表1 所示。為了盡可能減少環(huán)境因素對(duì)實(shí)驗(yàn)的影響,油樣的光譜采集在無光且溫度相對(duì)恒定的環(huán)境中進(jìn)行,實(shí)驗(yàn)中每種油樣采集150 組熒光光譜,即5 種油樣共采集750 組光譜數(shù)據(jù)。
原始熒光光譜圖如圖2 所示。
圖2 原始熒光光譜圖
由圖2 五種油樣的熒光光譜可知,不同油樣的熒光強(qiáng)度差異主要在400~600 nm 之間。圖3 為同一品牌不同食用油的熒光光譜。
圖3 同一品牌不同食用油的熒光光譜
表1 實(shí)驗(yàn)材料
算法實(shí)現(xiàn)平臺(tái)為Matlab R2017b,BP 算法的學(xué)習(xí)率設(shè)置為0.1,目標(biāo)設(shè)置為0.00004,迭代次數(shù)設(shè)置為100,隨機(jī)選擇750 組光譜數(shù)據(jù)中的600 組作為訓(xùn)練集建模,然后通過測(cè)試集測(cè)試該模型的分類效果。為了減小實(shí)驗(yàn)誤差,實(shí)驗(yàn)100 次取平均值,手動(dòng)設(shè)置隱含層個(gè)數(shù),不同隱含層個(gè)數(shù)下的分類準(zhǔn)確率如表2 所示。
表2 不同隱含層個(gè)數(shù)BP 分類準(zhǔn)確率 %
由表2 可以看出,當(dāng)隱含層個(gè)數(shù)增加時(shí)BP 算法對(duì)油樣光譜數(shù)據(jù)的分類效果有所提升,當(dāng)隱含層個(gè)數(shù)為5時(shí),該模型對(duì)油樣光譜數(shù)據(jù)的分類準(zhǔn)確率最好可以達(dá)到92.69%。
用AdaBoost?BP 對(duì)所有的光譜數(shù)據(jù)隨機(jī)選擇600 組作為訓(xùn)練集進(jìn)行建模,剩下的150 組作為測(cè)試集測(cè)試分類效果。首先初始化權(quán)重D,迭代次數(shù)T設(shè)置為100,模型訓(xùn)練過程中,誤差曲線如圖4 所示。
圖4 訓(xùn)練誤差曲線
由圖4 可知,AdaBoost 算法在油樣光譜識(shí)別中,訓(xùn)練誤差收斂速度很快,在訓(xùn)練迭代3 次之后訓(xùn)練誤差已經(jīng)降為0,表明由原始高維的油樣光譜數(shù)據(jù)訓(xùn)練好的AdaBoost 模型可以用于油樣激光誘導(dǎo)熒光光譜識(shí)別。AdaBoost 模型的測(cè)試結(jié)果的分類準(zhǔn)確率如表3 所示。
表3 不同隱含層個(gè)數(shù)AdaBoost?BP 的分類準(zhǔn)確率 %
由表3 可知,當(dāng)作為弱分類器BP 隱含層個(gè)數(shù)為5時(shí),AdaBoost?BP 模型對(duì)訓(xùn)練集的分類準(zhǔn)確率為100%,對(duì)測(cè)試集的分類準(zhǔn)確率為97.14%。由圖5 可以明顯看出AdaBoost 算法對(duì)弱分類器的分類準(zhǔn)確率有很明顯的提升。
圖5 BP 算法與Adaboost?BP 算法準(zhǔn)確率
初始化樣本權(quán)重D(x),迭代次數(shù)T設(shè)置為100。通過結(jié)果分析可知,AdaBoost?tree 算法在迭代100 次之后對(duì)訓(xùn)練集的分類準(zhǔn)確率可以達(dá)到100%,對(duì)測(cè)試集的分類準(zhǔn)確率為98.89%。AdaBoost?Tree 分類器得到的訓(xùn)練周期上的替換損失如圖6 所示,AdaBoost?Tree 在訓(xùn)練周期上的泛化誤差如圖7 所示,由圖6 和圖7 可以看出替換損失在第4 周期時(shí)為0,不斷迭代100 次后泛化誤差為0.038,具有很強(qiáng)的泛化性能和穩(wěn)定性。
圖6 AdaBoost?Tree 在訓(xùn)練周期上的替換損失
為了得到更高的分類準(zhǔn)確率和更好的泛化性能,使用K?近鄰算法(KNN)作為新的弱分類器對(duì)光譜數(shù)據(jù)建模。使用AdaBoost?KNN 算法對(duì)隨機(jī)選擇的600 組光譜數(shù)據(jù)建模。初始化樣本權(quán)重D()x,迭代次數(shù)設(shè)置為T=100。AdaBoost?KNN 算法在迭代100 次之后對(duì)訓(xùn)練集和測(cè)試集的分類準(zhǔn)確率可以達(dá)到100%,AdaBoost?KNN 分類器得到的訓(xùn)練周期上的替換損失如圖8 所示,AdaBoost?KNN 在訓(xùn)練周期上的泛化誤差如圖7 所示。由圖8 可以看出,替換損失在第19 周期時(shí)為0,此時(shí)的泛化誤差也為0。AdaBoost?KNN 算法相比于AdaBoost?tree 算法分類準(zhǔn)確率由98.89%提高到100%,且泛化性能和穩(wěn)定性更好,更具有實(shí)際應(yīng)用價(jià)值。
圖7 AdaBoost?Tree 與AdaBoost?KNN在訓(xùn)練周期上的泛化誤差
圖8 AdaBoost?KNN 在訓(xùn)練周期上的替換損失
選取5 種食用油為實(shí)驗(yàn)對(duì)象,分別選取4 種算法針對(duì)油樣的激光誘導(dǎo)熒光光譜的分類進(jìn)行建模,先比較BP 與AdaBoost?BP 模型,得出AdaBoost 集成算法對(duì)弱分類器的分類準(zhǔn)確率有很明顯的提升。然后通過比較AdaBoost ? Tree 模 型 和AdaBoost ? KNN 模 型,得 到AdaBoost?KNN 模型對(duì)食用油光譜數(shù)據(jù)的分類效果最好。