鄭開(kāi)逸,沈 燁,張 文,周晨光,丁福源,張 钖,張柔佳,石吉勇,鄒小波
江蘇大學(xué)食品與生物工程學(xué)院,江蘇 鎮(zhèn)江 212013
近紅外光譜作為一種無(wú)損檢測(cè)方法,在食品領(lǐng)域中有大量的應(yīng)用[1-2]。在近紅外光譜分析過(guò)程中,我們先要將近紅外光譜和濃度信息建立統(tǒng)計(jì)模型,然后將待測(cè)樣品的光譜數(shù)據(jù)代入這個(gè)模型中,即可獲得其含量信息。但是,隨著時(shí)間的推移,近紅外光譜儀器會(huì)發(fā)生老化,進(jìn)而降低模型的預(yù)測(cè)能力;同時(shí),由于不同型號(hào)儀器之間存在響應(yīng)差異,一種型號(hào)儀器建立的光譜模型,往往不能直接預(yù)測(cè)另一種型號(hào)儀器掃描的光譜;此外,由于基質(zhì)的差異,一組樣品建立的模型,往往不適合另一組樣品的光譜。對(duì)于此類問(wèn)題,可以通過(guò)重新建模加以解決,但是重新建模將耗費(fèi)大量的人力物力。對(duì)此,模型轉(zhuǎn)移[3-4]可以在避免重新建模的情況下,對(duì)光譜進(jìn)行校正,提高原模型的預(yù)測(cè)精度。在模型轉(zhuǎn)移算法中,直接校正法(direct standardization, DS)[5-6]使用簡(jiǎn)單,計(jì)算速度快,故本工作使用DS算法作為模型轉(zhuǎn)移算法。
在模型轉(zhuǎn)移中,人們通常采用全光譜模型轉(zhuǎn)移。主光譜和從光譜中往往存在背景、噪聲等干擾,必須要將這些無(wú)意義的信息去除;同時(shí),挖掘光譜中有化學(xué)意義的區(qū)間可以提高模型的精度,故模型轉(zhuǎn)移過(guò)程中必須進(jìn)行變量選擇。變量選擇算法廣泛用于近紅外光譜建模。按照算法處理光譜的連續(xù)性,可以分為基于離散變量的變量選擇算法和基于區(qū)間的變量選擇算法。在這兩種算法中,基于區(qū)間的變量選擇算法較為合理,因?yàn)樗鼙WC光譜的連續(xù)性,且其篩選的光譜區(qū)段包含與待測(cè)指標(biāo)有關(guān)的化學(xué)信息。此外,按照算法原理,可以分為基于智能優(yōu)化的變量選擇算法,即通過(guò)模擬自然的物理、化學(xué)、生物的過(guò)程,實(shí)現(xiàn)變量選擇;基于變量重要性信息的變量選擇算法,即通過(guò)構(gòu)造變量重要性向量,然后根據(jù)該向量找出對(duì)建模有重要意義的變量;基于貪婪算法的變量選擇算法。在這三種算法中,貪婪算法迭代步驟較多,且容易導(dǎo)致過(guò)擬合,故應(yīng)用較少。
以往的變量選擇方法往往是只對(duì)主光譜進(jìn)行變量選擇[7-8],但是主光譜和從光譜的有化學(xué)意義的區(qū)間往往不一致,用主光譜變量選擇的模型直接預(yù)測(cè)從光譜會(huì)增加預(yù)測(cè)誤差;有時(shí),主光譜和從光譜的光譜范圍都不一致,主光譜的變量選擇模型無(wú)法用于從光譜,故有必要對(duì)主光譜和從光譜同時(shí)進(jìn)行變量選擇。
在變量選擇算法中,GA[9-10]可以直接處理二進(jìn)制變量,因此廣泛應(yīng)用于變量選擇。此外,相比單個(gè)變量,區(qū)間的光譜波段更能反映化合物的結(jié)構(gòu)信息?;诖耍岢鲭p光譜區(qū)間遺傳算法(genetic algorithm for intervals of double spectra, GA-IDS),該算法同時(shí)對(duì)主光譜和從光譜進(jìn)行變量選擇,進(jìn)而找出有化學(xué)意義的區(qū)間組合,進(jìn)而降低轉(zhuǎn)移誤差。
在模型轉(zhuǎn)移中,用于建模的光譜被稱為主光譜(A);在另一個(gè)條件下掃描獲得的光譜稱為從光譜(B);從光譜不參與建模,只用主光譜模型預(yù)測(cè)。對(duì)于主光譜,其校正集表示為(Ac),通過(guò)KS方法[11]從Ac中選擇一定數(shù)量的樣本作為主光譜轉(zhuǎn)移集(At),然后在從光譜中選擇與At相同濃度的樣本作為從光譜的轉(zhuǎn)移集(Bt)。接下來(lái)用從光譜的驗(yàn)證集(Bv)來(lái)調(diào)節(jié)模型轉(zhuǎn)移參數(shù),同時(shí)計(jì)算變量選擇中校正均方根誤差(root mean squared error of validation, RMSEV),獲得最優(yōu)變量集。調(diào)節(jié)好參數(shù)之后,用模型轉(zhuǎn)移算法預(yù)測(cè)獨(dú)立測(cè)試集(Bp)的樣本。從光譜的獨(dú)立測(cè)試集則不參與建模和變量選擇,僅計(jì)算變量選擇結(jié)果的預(yù)測(cè)均方根誤差(root mean squared error of prediction, RMSEP)。
GA-IDS算法流程圖如圖1。
在圖1中,先對(duì)主光譜和從光譜進(jìn)行區(qū)間分割,然后將每個(gè)區(qū)間看作一個(gè)基因,如果該基因被選中了,則該區(qū)間所對(duì)應(yīng)的的基因?yàn)?,若未被選中則為0。然后我們隨機(jī)生成多條染色體,獲得每條染色體所對(duì)應(yīng)的變量集合。如果該染色體是錯(cuò)誤染色體,諸如主光譜或者從光譜沒(méi)有區(qū)間被選中,那么這條錯(cuò)誤染色體就被刪除,其位置由重新隨機(jī)生成的染色體取代。獲得主從光譜的變量選擇區(qū)間后,計(jì)算其RMSEV。然后,根據(jù)RMSEV,按照遺傳算法執(zhí)行選擇,交叉,變異等操作。在一次迭代完成之后,我們進(jìn)行下一輪迭代,再次進(jìn)行糾錯(cuò),選擇,交叉,變異操作。其遺傳算法參數(shù)值參數(shù)列于表1。
在表1中,迭代次數(shù)(niter)的選擇,通過(guò)實(shí)驗(yàn)確定。即在多次迭代后,當(dāng)計(jì)算結(jié)果的最小RMSEV(RMSEVmin)穩(wěn)定時(shí),其niter便選為迭代次數(shù)。
圖1 GA-IDS算法流程圖
表1 GA-IDS的參數(shù)
1.3.1 玉米數(shù)據(jù)
玉米數(shù)據(jù),玉米數(shù)據(jù)下載于:https://eigenvector.com/resources/data-sets/,主光譜和從光譜均有80個(gè)樣本,且其波長(zhǎng)范圍為1 100~2 498 nm(700個(gè)波數(shù))。其中,取mp6作為主光譜,m5數(shù)據(jù)作為從光譜,取水分?jǐn)?shù)據(jù)作為y值。按照y值降序排列,每4個(gè)連續(xù)的樣本取出第一個(gè)樣本,這樣剩下的60個(gè)樣本與其所對(duì)應(yīng)的mp6樣本作為校正集。對(duì)于未被選為校正集的20個(gè)y值,按照濃度降序排列,選擇其相應(yīng)的m5樣本。每?jī)蓚€(gè)樣本中,第一個(gè)樣本和第二個(gè)樣本分別為驗(yàn)證集和獨(dú)立測(cè)試集。故驗(yàn)證集和獨(dú)立測(cè)試集的樣本數(shù)均為10。
1.3.2 小麥數(shù)據(jù)
小麥的數(shù)據(jù)取自:http://www.wiley.com/legacy/wileychi/chemometrics/datasets.html,這套數(shù)據(jù)有775個(gè)樣本,1050個(gè)波數(shù)點(diǎn)。該數(shù)據(jù)由兩種探頭掃描的光譜拼接而成,其中400~1 098 nm 的短波近紅外由硅探頭掃描獲得,而1 100~2 498 nm的長(zhǎng)波近紅外由硫化鉛探頭掃描獲得。兩種由不同探頭獲取的光譜也可以看作兩組不同光譜,故我們將長(zhǎng)波近紅外光譜看作主光譜,而短波近紅外光譜看作從光譜。選取蛋白質(zhì)濃度數(shù)據(jù)作為預(yù)測(cè)指標(biāo)。將主光譜的775個(gè)樣本隨機(jī)排序,前400個(gè)樣本作為校正集。對(duì)第401—450號(hào)樣本以及451—775號(hào)樣本,其相應(yīng)濃度的從光譜分別作為驗(yàn)證集和獨(dú)立測(cè)試集。對(duì)主光譜的校正集,選擇其KS較大的若干個(gè)樣本作為主光譜的轉(zhuǎn)移集,其濃度相同的從光譜樣本作為從光譜的轉(zhuǎn)移集。
在遺傳算法操作中,主光譜和從光譜的變量數(shù)不一致,而DS模型轉(zhuǎn)移算法可以處理這種數(shù)據(jù)結(jié)構(gòu)。經(jīng)過(guò)搜索,發(fā)現(xiàn)在轉(zhuǎn)移集樣本數(shù)m=30,區(qū)間寬度n=10的時(shí)候,預(yù)測(cè)誤差較小。故選擇m=30,n=10。將GA每次迭代中,RMSEVmin的變化列于圖2。
圖2 RMSEVmin在迭代過(guò)程中的變化情況
圖2顯示,當(dāng)niter<500的時(shí)候,RMSEVmin呈現(xiàn)快速下降趨勢(shì),其原理可能是,在迭代過(guò)程中,大量的誤差較大的變量集合被刪除,而只有RMSEV較小的變量集合被保留下來(lái)。而當(dāng)niterk≥500時(shí),RMSEVmin幾乎保持不變。其原因可能是,由于被保留下的變量集幾乎是相似的,且變量集的RMSEV幾乎一樣,故在選擇操作中,全部個(gè)體被保留下來(lái)。在交叉操作中,種群中相同的樣本,其交叉的結(jié)果還是的原來(lái)的變量集,故交叉不能找出誤差更小的個(gè)體。雖然變異操作能夠改變?nèi)旧w,但是變異后的染色體會(huì)增大誤差,進(jìn)而變異后的染色體不會(huì)被選中。故確定niter為500。
在固定了迭代次數(shù)之后,GA-IDS獲得的變量集,可用于預(yù)測(cè)獨(dú)立測(cè)試集,其結(jié)果列在表2中;同時(shí),全光譜的模型轉(zhuǎn)移結(jié)果,以及之前提出的向后迭代區(qū)間選擇法(iterative interval backward selection, IIBS)[12]也被用于比較。
表2 玉米數(shù)據(jù)的GA-IDS算法結(jié)果
從表2可以看出,與全光譜相比,GA-IDS可以顯著地降低RMSEVmin與RMSEP值。這說(shuō)明了,GA-IDS可以從近紅外光譜中提取出有意義的信息進(jìn)而降低計(jì)算誤差。同時(shí),與IIBS相比,GA-IDS仍舊可以獲得較低的誤差值。其原因是IIBS只是單純地通過(guò)迭代法,向后刪除變量區(qū)間,且被刪除的區(qū)間無(wú)法再被重新選中。而GA-IDS算法,可將前被刪除的區(qū)間通過(guò)交叉、變異操作重新被選中,故搜索空間大于IIBS算法,所以能夠找到更好的變量集,進(jìn)而獲得更小的誤差。
圖3 主光譜(a, c, e)與從光譜(b, d, f)光譜圖的|β|(IIBS)以及變量選擇算法(GA-IDS,IIBS)結(jié)果
為了進(jìn)一步研究GA-IDS的計(jì)算結(jié)果,GA-IDS選擇的變量見(jiàn)圖3。
在圖3(e,f),可以看出與全光譜相比,GA-IDS顯著地降低了變量數(shù),且選擇的區(qū)間,諸如:1 450和1 950 nm也與水分的吸收有關(guān)[13-14]。與IIBS相比,GA-IDS選擇了更多有意義的變量。諸如,1 950 nm 附近區(qū)間是水的吸收峰,在主光譜中,IIBS沒(méi)有選擇該區(qū)間的變量,而GA-IDS卻選中了。這說(shuō)明了GA-IDS可以比IIBS選擇出更具有物化意義的光譜區(qū)間。
為了進(jìn)一步揭示IIBS丟失1 950 nm區(qū)段水吸收峰的原因,其主從光譜的全光譜回歸系數(shù)(|β|)也顯示于圖3(c,d)。圖3(c)顯示,主光譜諸如1 908和1 950 nm等水吸收峰仍有較高的|β|值,理應(yīng)被選中,但是在迭代過(guò)程中,這些變量卻被丟失了。對(duì)此,我們研究了IIBS迭代過(guò)程中主光譜1 884~1 910和1 940~1 966 nm兩段波長(zhǎng)的回歸系數(shù)變化情況,將其列于圖4(b,c);此外,主光譜每次丟棄變量過(guò)程中,其相應(yīng)的最小RMSEV也列于圖4(a)。
圖4 IIBS主光譜迭代過(guò)程中,RMSEV(a)以及區(qū)間1 884~1 910 nm(b)和1 940~1 966 nm(c)|β|幾何平均數(shù)的變化
在圖4的迭代過(guò)程中,RMSEV在第47次迭代中獲得最小值,而在此時(shí)1 884~1 910和1 940~1 966 nm區(qū)域卻已在之前的迭代中被刪除;同時(shí)由于IIBS沒(méi)有采用有放回的策略,這些被刪除的變量不能被重新選中,故無(wú)法進(jìn)一步降低預(yù)測(cè)誤差。而GA-IDS在變量選擇操作中使用了有放回的策略,即先前被刪除的變量區(qū)間,在后續(xù)遺傳操作中可以重新被選中,故GA-IDS可以選擇跟多有信息的區(qū)間。
為了進(jìn)一步研究算法的穩(wěn)健性,我們隨機(jī)生成濃度數(shù)據(jù)不重合的校正集(主光譜)、驗(yàn)證集(從光譜)和獨(dú)立測(cè)試集(從光譜)。主光譜轉(zhuǎn)移集通過(guò)KS方法從主光譜中選出,其相同濃度的從光譜作為從光譜的轉(zhuǎn)移集。按照前述方法,用驗(yàn)證集進(jìn)行變量選擇,變量選擇最終的結(jié)果用獨(dú)立測(cè)試集預(yù)測(cè)。這樣重復(fù)執(zhí)行100次,每次選擇不同的轉(zhuǎn)移集樣本數(shù),其平均RMSEP數(shù)值列于圖5。
圖5 Monte Carlo抽樣下玉米不同m值的RMSEP
從圖5中可見(jiàn),在每一個(gè)m值條件下,GA-IDS的RMSEP值,均小于全光譜的RMSEP值。說(shuō)明了GA-IDS可以顯著地從光譜中選擇出重要的信息,進(jìn)而降低誤差。與IIBS相比,當(dāng)m≤35時(shí),GA-IDS可以獲得較小的誤差,當(dāng)m>35時(shí),GA-IDS的誤差和IIBS誤差接近。這說(shuō)明了,在較少轉(zhuǎn)移集樣本情況下,GA-IDS可以獲得較低的預(yù)測(cè)誤差。其原因可能是,在較少樣本的情況下,化學(xué)信息主要存在于變量中,而GA-IDS其對(duì)變量區(qū)間組合的搜索范圍要比IIBS大,進(jìn)而更容易找到誤差較小的變量區(qū)間組合。
經(jīng)過(guò)優(yōu)化,選擇n=20。隨機(jī)生成校正集、驗(yàn)證集、獨(dú)立測(cè)試集,對(duì)校正集用KS方法從中選擇轉(zhuǎn)移集,在每一個(gè)m值條件下,用驗(yàn)證集結(jié)合IIBS和GA-IDS進(jìn)行變量選擇,最后用變量選擇的結(jié)果計(jì)算獨(dú)立測(cè)試集的RMSEP。將上述方法重復(fù)100次,計(jì)算每一個(gè)m值條件下,全光譜,IIBS和GA-IDS的RMSEP值,結(jié)果如圖6所示。
圖6 Monte Carlo抽樣下小麥不同m值的RMSEP
圖6結(jié)果與玉米數(shù)據(jù)類似,對(duì)每一個(gè)m值,GA-IDS的預(yù)測(cè)誤差均小于全光譜的RMSEP,說(shuō)明GA-IDS算法可以從全光譜中選出有意義的區(qū)間進(jìn)而降低誤差。與IIBS相比,m≤60,GA-IDS可以獲得更小的RMSEP;而當(dāng)m>60時(shí),GA-IDS的RMSEP比IIBS略大。這進(jìn)一步說(shuō)明了,在小樣本轉(zhuǎn)移集下GA-IDS可以獲得更好的計(jì)算結(jié)果。在模型轉(zhuǎn)移實(shí)際應(yīng)用中,為了減少工作量,通常都使用較少的轉(zhuǎn)移集樣本,而GA-IDS恰好適用于這種小樣本情形。
GA-IDS通過(guò)對(duì)主光譜和從光譜同時(shí)進(jìn)行區(qū)間選擇選擇,可以獲得有化學(xué)意義的區(qū)間,同時(shí)大幅度地降低預(yù)測(cè)誤差。與全光譜相比,對(duì)不同的轉(zhuǎn)移集樣本數(shù),GA-IDS均可以獲得較小預(yù)測(cè)誤差;與IIBS相比,在轉(zhuǎn)移集樣本數(shù)較少的條件下,GA-IDS可以獲得較小的預(yù)測(cè)誤差。故GA-IDS有較強(qiáng)的應(yīng)用推廣價(jià)值,特別是小樣本轉(zhuǎn)移集的模型轉(zhuǎn)移。