黃 清,薛河儒*, 劉江平*,劉美辰,胡鵬偉 ,孫德剛
1. 內(nèi)蒙古農(nóng)業(yè)大學(xué)計(jì)算機(jī)與信息工程學(xué)院,內(nèi)蒙古 呼和浩特 010000 2. 山東華宇工學(xué)院信息工程學(xué)院,山東 德州 253000
在天貓、 京東等平臺(tái)購買了6種不同品牌的牛奶,其中,特侖蘇脂肪含量為4.4 g·(100 mL)-1,QQ星和蒙牛高鈣脂肪含量為3.7 g·(100 mL)-1,The land脂肪含量為3.3 g·(100 mL)-1,伊利甄濃脂肪含量為4.6 g·(100 mL)-1,伊利脫脂脂肪含量為0 g·(100 mL)-1。
高光譜采集系統(tǒng)由高光譜成像儀、 高精度掃描云臺(tái)、 石英鹵鎢燈照明電源、 等部件組成。 高光譜測量儀為美國Headwall公司2010年生產(chǎn)的型號為1003B—10141的高光譜成像儀,光譜范圍400~1 000 nm,共125個(gè)波段,采集到的光譜圖像分辨率為777×1 004像素。
在實(shí)驗(yàn)的過程中,盡量保持牛奶樣本與攝像頭的距離約20 cm,為保證不受其他反射光源的影響,在牛奶樣本盛器下墊一塊黑色絨布。 在光譜采集過程中,光譜攝像頭中的傳感器中會(huì)產(chǎn)生暗電流,每次采集到的光譜數(shù)據(jù)會(huì)伴隨著一定的噪聲,影響高光譜圖像的質(zhì)量,為了避免客觀因素影響,在每次采集光譜圖像之前,需要對該系統(tǒng)進(jìn)行黑白校正處理,在一定程度上提高圖像的質(zhì)量[5]。 實(shí)驗(yàn)中,首先蓋上相機(jī)蓋,點(diǎn)擊暗電流,采集全黑的光譜校正圖像IB; 然后取下相機(jī)蓋,用白板采集全白校正圖像IW; 最后,采集牛奶樣本的光譜圖像,每個(gè)樣本平行采集三次,最后根據(jù)公式IC=(IR-IB)/(IW-IB)對采集到的牛奶光譜圖像進(jìn)行黑白校正。 其中,IC為校正后的牛奶光譜圖像,IR為實(shí)驗(yàn)過程中采集到的牛奶光譜圖像。 利用ENVI軟件從三張圖片中選取效果最好的光譜圖像,從中選取40個(gè)光線清晰均勻的感興趣區(qū)域,導(dǎo)出每個(gè)區(qū)域的光譜反射率數(shù)據(jù)作為該品牌牛奶的40個(gè)樣本進(jìn)行實(shí)驗(yàn)。 一共分別采集了6種不同品牌的牛奶樣品,合計(jì)240個(gè)樣本。 圖1(a—f)是六個(gè)不同品牌牛奶的原始光譜數(shù)據(jù)反射曲線。 受采集環(huán)境和儀器設(shè)備的影響,雖然原始高光譜圖像經(jīng)過了黑白校正處理,但是數(shù)據(jù)中仍然存在一些無用的信息和噪聲,通過圖1可以看出,伊利甄濃和QQ星的光譜反射圖像在采集的過程中受到的干擾較大。 為了降低散射光和噪聲的干擾,需要對采集到的光譜數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理。
圖1 六種不同品牌樣本原始光譜圖(a): 伊利甄濃; (b): 伊利脫脂; (c): 蒙牛高鈣; (d): QQ星; (e): The land; (f): 特侖蘇Fig.1 Original spectra of samples of six different brands(a): Yilizhennong; (b): Yiliskim milk; (c): Mengniu high calcium milk; (d): QQ star; (e): The land; (f): Telunsu
光譜分析中常用的預(yù)處理方法包括導(dǎo)數(shù)校正法(其中包括一階導(dǎo)數(shù) (first derivative, 1stDer),二階導(dǎo)數(shù)(second derivative, 2stDer),和多階導(dǎo)數(shù)等),多元散射校正(multiplicative scatter correction, MSC),標(biāo)準(zhǔn)正態(tài)變換(standard normoal variate transformation, SNV),卷積平滑(savitzky-golay, S-G)等。 其中導(dǎo)數(shù)校正法和S-G平滑可以有效消除基線平滑和平移引起的噪聲,MSC和SNV則可以減少因光的散射等現(xiàn)象造成的噪聲。
表1 不同預(yù)處理方法的牛奶脂肪含量PLS回歸模型預(yù)測結(jié)果
螞蟻在尋找食物的過程中,會(huì)根據(jù)路徑的長短,判斷該路徑的好壞,留下不同濃度的信息,方便自己的同伴判斷覓食的路徑,隨著時(shí)間的延長,較優(yōu)的路徑上積累的信息元素比例越來越高,越來越多的螞蟻選擇此路徑,慢慢的形成了一種正反饋機(jī)制。 蟻群算法就是模擬螞蟻覓食這一行為,來尋找最優(yōu)特征波段組合。 在基本蟻群算法中,初始信息素濃度都是人為設(shè)定的(大多數(shù)都設(shè)定為1),初始信息素的匱乏,使得算法收斂時(shí)間過長,執(zhí)行效率低下[7]。 受到CARS算法的啟發(fā),將PLS回歸模型系數(shù)的絕對值作為評價(jià)波段好壞的標(biāo)準(zhǔn),首先在全波段數(shù)據(jù)下建立PLS回歸模型,每個(gè)波段對應(yīng)的回歸系數(shù)絕對值作為信息素的初始值。 避免了在第一次迭代中,螞蟻隨機(jī)尋找特征波段的缺點(diǎn),加快了算法的收斂速度。 將蟻群算法與PLS回歸系數(shù)相結(jié)合,雖然解決了傳統(tǒng)蟻群算法收斂速度慢,模型復(fù)雜的缺點(diǎn),但是仍然無法解決蟻群算法由于正反饋機(jī)制容易陷入局部最優(yōu)的缺點(diǎn),因此將PLS-ACO算法與遺傳算法相結(jié)合,經(jīng)過遺傳算法迭代產(chǎn)生更多優(yōu)秀的個(gè)體,為計(jì)算波段的貢獻(xiàn)率,提供更多的樣本,以提高算法的穩(wěn)定性和通用性。 研究提出了全局閾值(threshol)的概念,傳統(tǒng)的遺傳算法和蟻群算法,都是選取某一次迭代最好的個(gè)體或幾個(gè)個(gè)體來進(jìn)入貢獻(xiàn)矩陣中,但是在前幾次的迭代中的最優(yōu)個(gè)體,很有可能不及最后幾代里的最差個(gè)體。 通過全局閾值,對產(chǎn)生的所有個(gè)體來進(jìn)行篩選。 大于全局閾值的個(gè)體將進(jìn)入到貢獻(xiàn)矩陣中,計(jì)算每個(gè)波段的貢獻(xiàn)率,也就是貢獻(xiàn)矩陣?yán)锩總€(gè)波段組合中每個(gè)波段出現(xiàn)的次數(shù),依次剔除貢獻(xiàn)率最小的波段,對篩選后的波段組合建立PLS回歸預(yù)測模型,選擇適應(yīng)度值最大的波段組合作為最終的最優(yōu)波段組合。
2.2.1 PLS-ACO
(1) 初始化算法的參數(shù): 用全光譜波段數(shù)據(jù)建立PLS回歸模型,得到對應(yīng)波段的回歸系數(shù)(β)的絕對值作為蟻群的初始信息素矩陣(init-pheromone)。 最大迭代次數(shù)(max-iters),螞蟻個(gè)數(shù)(max-ants),每只螞蟻選取最大特征個(gè)數(shù)(max-features), 以及信息素啟發(fā)因子(Q),信息素?fù)]發(fā)因子(ρ),入選特征路徑矩陣(has), 未選路徑矩陣(have), 全局閾值, 貢獻(xiàn)矩陣(contribution)。
(2) 螞蟻選擇路徑: 在每一次迭代中,每只螞蟻隨機(jī)選擇一個(gè)特征波段作為路徑起始點(diǎn),并將其儲(chǔ)存在has矩陣,have矩陣擇則刪除該特征波段,init-pheromone矩陣刪除對應(yīng)特征波段的信息素。 由init-pheromone矩陣,計(jì)算每一個(gè)特征波段的被選概率,用輪盤賭算法選擇下一個(gè)特征波段,直到所選特征波段達(dá)到max-features。
(4) 信息素更新: 仿造生物界螞蟻覓食行為更新信息素,選取每一次迭代中,適應(yīng)度值最高的螞蟻進(jìn)行信息素的更新。 將最優(yōu)螞蟻所選擇的特征波段對應(yīng)的回歸系數(shù)絕對值,以及適應(yīng)度值作為信息素更新的依據(jù),對應(yīng)波段的信息素按照信息素更新公式得到加強(qiáng)。 沒有被選擇的特征波段,信息素會(huì)因?yàn)閾]發(fā),濃度慢慢變小。 具體信息素更新公式如式(1)所示。
τn=(1-ρ)xτn-1+dela
(1)
重復(fù)步驟2—步驟4,直至達(dá)到設(shè)置的最大迭代次數(shù),通過設(shè)置threshol,得到最終contribution矩陣。 剔除contribution矩陣中,選取的特征波段完全相同的特征波段組合。 計(jì)算每個(gè)波段的貢獻(xiàn)率,依次剔除貢獻(xiàn)率最小的波段,對選擇的特征波段組合建立PLS回歸模型,選擇適應(yīng)度值最大的波段組合作為最終所選擇的最優(yōu)特征波段組合。
2.2.2 PLS-ACO-GA
具體步驟:
在PLS-ACO的基礎(chǔ)下,結(jié)合遺傳算法[8],進(jìn)行如下步驟: (1) 初始化算法的參數(shù): 遺傳算法交叉概率(pc), 變異概率(pm)。
(2) 初始種群生成: 在PLS-ACO算法中,將每一次迭代中,每一只螞蟻所選擇的特征波段組合作為遺傳算法中的個(gè)體,所有螞蟻選擇的特征波段組合構(gòu)成了遺傳算法中的初始種群。
(3) 選擇運(yùn)算: 用輪盤賭算法淘汰那些適應(yīng)度值低的個(gè)體。 為避免最優(yōu)個(gè)體的遺失,每一次輪盤賭選擇過后,如果最優(yōu)個(gè)體被過濾了,則將最優(yōu)個(gè)體代替適應(yīng)度值最低的個(gè)體,重新保留在種群中,以便于通過交叉產(chǎn)生更多優(yōu)秀的個(gè)體。
(4) 交叉運(yùn)算: 隨機(jī)生成一個(gè)0到1之間的數(shù),如果該數(shù)大于pc,隨機(jī)選擇一個(gè)個(gè)體作為母代,進(jìn)行交叉操作。 本研究使用單點(diǎn)交叉操作,即隨機(jī)生成一個(gè)交叉點(diǎn),交換該點(diǎn)前后的特征波段。 結(jié)果生成兩個(gè)新的個(gè)體,將其建立PLS回歸模型,計(jì)算其適應(yīng)度值,并與父代母代進(jìn)行比較,若子代比父代母代更加優(yōu)秀,則進(jìn)行替換,對應(yīng)的父代或者母代淘汰。
(5) 變異運(yùn)算: 本工作使用單點(diǎn)隨機(jī)變異,隨機(jī)生成一個(gè)0~1之間的數(shù),若該數(shù)大于變異概率pm,隨機(jī)選擇一個(gè)特征,改變其是否被選擇的狀態(tài)。
(6) 個(gè)體選?。?如果該個(gè)體的適應(yīng)度值大于全局閾值,則將該個(gè)體的路徑存入貢獻(xiàn)矩陣中。
重復(fù)步驟(1)—步驟(6),直至達(dá)到設(shè)置的遺傳最大迭代次數(shù),將通過全局閾值的特征波段組合存入貢獻(xiàn)矩陣中,進(jìn)入下一次PLS-ACO算法迭代中。
PLS-ACO-GA算法流程如圖2所示。
2.2.3 特征波段選擇方法結(jié)果與比較
圖2 PLS-ACO-GA算法流程圖Fig.2 PLS-ACO-GA algorithm flowchart
圖3 PLS-ACO波段貢獻(xiàn)率Fig.3 PLS-ACO band contributionrate
圖4 PLS-ACO-GA波段貢獻(xiàn)率Fig.4 PLS-ACO-GA band contributionrate
表2和表3分別是指設(shè)置不同max-features時(shí),PLS-ACO和PLS-ACO-GA所選特征波段組合建立PLS回歸模型時(shí)得到的結(jié)果。
表2 PLS-ACO,max-features分別設(shè)置為 10,20,30的PLS回歸模型結(jié)果Table 2 PLS regression model results with PLS-ACO andmax-features set to 10,20 and 30 respectively
表3 PLS-ACO-GA,max-features分別設(shè)置為10,20,30的PLS回歸模型結(jié)果
表4 不同特征選擇方法下的PLS回歸模型結(jié)果Table 4 PLS regression model result sunderdifferent feature selection methods
表5 PLS-ACO和PLS-ACO-GA多元線性回歸模型結(jié)果Table 5 PLS-ACO and PLS-ACO-GA MLR results
表6 PLS-ACO和PLS-ACO-GA隨機(jī)森林回歸模型結(jié)果Table 6 PLS-ACO and PLS-ACO-GA RFR results
圖5 MSC-(PLS-ACO-GA)-RF預(yù)測結(jié)果Fig.5 MSC-(PLS-ACO-GA)-RF prediction results
通過對比不同的預(yù)處理方法,特征波段選擇方法,和不同的回歸模型,選擇MSC作為預(yù)處理的方法,用PLS-ACO-GA來進(jìn)行特征波段選擇,最后建立RFR模型得到的牛奶脂肪含量預(yù)測最為精準(zhǔn)。 將通過MSC-(PLS-ACO-GA)-RFR建模后得到的脂肪含量預(yù)測值與真實(shí)值做圖對比,以便更加直觀的感覺到預(yù)測效果,結(jié)果如圖5所示。
從圖5中可以看出,只有個(gè)別樣本真實(shí)值和預(yù)測值偏差較大,大多數(shù)樣本真實(shí)值和預(yù)測值基本重合,預(yù)測結(jié)果表現(xiàn)優(yōu)異。