李 華,榮婕妤
(長春大學(xué) 理學(xué)院,吉林 長春 130022)
近紅外光波長范圍為780~2 500 nm,是介于可見區(qū)與中紅外區(qū)之間的電磁波,通過與物質(zhì)中有機(jī)分子的含氫基團(tuán)的作用,形成有機(jī)分子的倍頻和合頻吸收光譜.根據(jù)這些近紅外吸收頻譜出現(xiàn)的位置、吸收強(qiáng)度等信息特征,結(jié)合數(shù)理統(tǒng)計對成分作定性和定量分析.由于近紅外技術(shù)具有快速、無損、環(huán)保等特點而廣泛用于農(nóng)產(chǎn)品、食品、化學(xué)、醫(yī)藥、石油等領(lǐng)域[1].在淀粉加工過程中,利用近紅外技術(shù)進(jìn)行定量分析可以達(dá)到不破壞樣品、不消耗化學(xué)試劑、節(jié)省材料和時間的目的,很適合對淀粉成分進(jìn)行監(jiān)測分析.本文考慮將AdaBoost 回歸算法用于淀粉成分的近紅外光譜建模分析,以實現(xiàn)對加工過程中淀粉成分含量的監(jiān)測.
集成學(xué)習(xí)方法由于可以提高模型系統(tǒng)的泛化能力,近些年來成為了機(jī)器學(xué)習(xí)領(lǐng)域重要的研究方向[2],AdaBoost(自適應(yīng)增強(qiáng))屬于集成學(xué)習(xí)方法,個體學(xué)習(xí)器之間存在強(qiáng)依賴關(guān)系.它的自適應(yīng)性在于:前一個基學(xué)習(xí)器訓(xùn)練效果差的樣本會得到加強(qiáng),加權(quán)后的全體樣本集再次被用來訓(xùn)練下一個基學(xué)習(xí)器.同時,在每一輪訓(xùn)練中加入一個新的弱學(xué)習(xí)器,直到達(dá)到某個預(yù)定的足夠小的錯誤率或達(dá)到預(yù)先指定的最大迭代次數(shù)時訓(xùn)練結(jié)束.
本文以AdaBoost回歸算法為線索,介紹算法設(shè)計思想的多樣性,并比較不同方法的性能,探討在實證分析中的效果:AdaBoost回歸算法的設(shè)計思想;介紹隨研究發(fā)展而出現(xiàn)的改進(jìn)AdaBoost回歸理論分析模型,以及從這些模型衍生出的各種變種算法,與早期分析理論形成對比,揭示AdaBoost回歸算法研究的新思路以及有待解決的問題;基于不同AdaBoost回歸算法在近紅外光譜建模問題中進(jìn)行實證分析,對比不同方法的性能;探討AdaBoost回歸算法的發(fā)展方向及在近紅外光譜建模領(lǐng)域的發(fā)展前景.
AdaBoost回歸算法是從弱學(xué)習(xí)算法出發(fā),反復(fù)學(xué)習(xí)得到一系列弱學(xué)習(xí)器,然后組合這些弱學(xué)習(xí)器,構(gòu)建一個強(qiáng)學(xué)習(xí)器.重點在于改變訓(xùn)練數(shù)據(jù)的概率分布(權(quán)值分布),根據(jù)不同的訓(xùn)練數(shù)據(jù)分布調(diào)用弱學(xué)習(xí)算法,再按一定權(quán)重集成弱學(xué)習(xí)器得到強(qiáng)學(xué)習(xí)器.
圖1 AdaBoost回歸算法訓(xùn)練過程
具體步驟以AdaBoost R.T算法為例闡述[3]:
其中Z0為歸一化權(quán)重,使得弱學(xué)習(xí)器f0學(xué)習(xí)相對誤差高的訓(xùn)練樣本權(quán)重變高,在下一步弱學(xué)習(xí)器f1中得到更多的重視.
然后基于調(diào)整權(quán)重后的訓(xùn)練集來訓(xùn)練弱學(xué)習(xí)器f1.
如此重復(fù)進(jìn)行,直到弱學(xué)習(xí)器誤差率數(shù)達(dá)到事先指定的閾值或迭代次數(shù)達(dá)到閾值,最終將這T個弱學(xué)習(xí)器通過集合策略進(jìn)行整合,得到最終的強(qiáng)學(xué)習(xí)器輸出
其中βt∈[0,1]可看作是對弱學(xué)習(xí)器的不信任程度,et越小,βt越小,對該弱學(xué)習(xí)器的信任程度越大,在對樣本權(quán)重更新時也是利用βt<1的特點,使預(yù)測誤差大于某一閾值的樣本點獲得較大權(quán)值,使得下一步迭代中更關(guān)注此類樣本點.這樣通過迭代使得最終的強(qiáng)學(xué)習(xí)器訓(xùn)練誤差越來越小.理論上當(dāng)弱學(xué)習(xí)器個數(shù)趨近于無窮時,最終獲得的強(qiáng)學(xué)習(xí)器誤差近似趨于零.
AdaBoost變體算法主要有兩個方向,一是Boosting家族系列算法,可看作是AdaBoost算法的橫向發(fā)展;二是AdaBoost算法的縱向發(fā)展,是對AdaBoost算法本身的改進(jìn)和推廣,以及結(jié)合其他算法而產(chǎn)生的新方法.對AdaBoost算法的改進(jìn)主要集中在以下三個方面:一是調(diào)整權(quán)值更新方法,以達(dá)到提升弱學(xué)習(xí)器性能,減緩?fù)嘶刃Ч?;二是改進(jìn)AdaBoost的訓(xùn)練方法,使AdaBoost方法能更高效地進(jìn)行拓展;三是結(jié)合其他算法和一些額外信息而產(chǎn)生的新算法,達(dá)到提高精確度的目的.
H.Drucker[4]考慮的一種Boosting回歸算法給每個樣本賦了一個權(quán)重Dt,i,并對加權(quán)后得到樣本集合X′擬合一個CART模型ft(X′)→Y.類似于AdaBoost分類算法,計算第t次迭代樣本集合上的預(yù)測平均損失
其中對于損失函數(shù)Li,有三種可選形式分別是
通過這種方法,每次迭代在不同權(quán)重的樣本集合上構(gòu)建回歸樹,最后通過加權(quán)中值方法來集成每個回歸樹的預(yù)測結(jié)果,即對于一個新的輸入x*,在每個弱學(xué)習(xí)器上都會產(chǎn)生一個預(yù)測值ft(x*),t=1,2,…,T,最終的預(yù)測結(jié)果f(x*)為
2009年H.X.Tian和Z.Z.Mao[5]提出一種自適應(yīng)解決方法,通過遞歸調(diào)整AdaBoost.RT算法中的閾值φ,具體方法是選擇0.2作為默認(rèn)閾值初始值,計算每次迭代輸出預(yù)測結(jié)果的均方根誤差(RMSE)動態(tài)調(diào)節(jié)閾值,再計算每個樣本絕對相對誤差,并與閾值進(jìn)行比較.絕對相對誤差是預(yù)測值相對于真實值的誤差百分比絕對值,φ用于對預(yù)測值進(jìn)行正確或不正確的分類.通過閾值比較將回歸任務(wù)轉(zhuǎn)化為一個分類問題,在下一次迭代中,預(yù)測差的樣本采樣權(quán)值會增加.
此方法的代價是引入了一個新的待調(diào)節(jié)參數(shù).AdaBoost R.T不像Adaboost.R2等回歸提升方法有一個設(shè)定停止準(zhǔn)則,其迭代次數(shù)可以根據(jù)所需的精度(達(dá)到某閾值)來選擇.
修正AdaBoost R.T方法具體步驟如下:
初始化 迭代序號t=1,原始分布Dt,i=1/N,i=1,2,…,N,權(quán)重向量ωt,i=Dt,i.
(1)令t=1,2,…,T.
(2)根據(jù)對應(yīng)權(quán)重抽取樣本訓(xùn)練弱學(xué)習(xí)器建立回歸模型:ft(x)→y.
(4)通過前一次迭代和此次迭代的RMSE差值自適應(yīng)調(diào)整下一步迭代中的閾值φ:
其中λ依賴于t的變化:其中r的默認(rèn)值為0.5,也可以自行設(shè)定.
輸出 下一步迭代中樣本權(quán)重更新的閾值.
2006年[6]研究發(fā)現(xiàn)在AdaBoost R.T算法中閾值φ設(shè)定若大于0.4會導(dǎo)致過擬合及噪聲增強(qiáng),使得學(xué)習(xí)器不穩(wěn)定.
算法結(jié)合一般針對傳統(tǒng)AdaBoost回歸算法中的弱學(xué)習(xí)器采用的回歸樹進(jìn)行改變,如P.Zhang等[7]采用將極限學(xué)習(xí)機(jī)(ELM)與AdaBoost結(jié)合形成新的具有魯棒性的混合算法RAE-ELM,不再像原始AdaBoost算法中人工選擇回歸的閾值,而是通過訓(xùn)練集樣本預(yù)測誤差的近似分布確定學(xué)習(xí)器回歸閾值,使迭代過程閾值可根據(jù)輸入的內(nèi)在特性動態(tài)地自行調(diào)整.在具有魯棒性的AdaBoost R.T方法(AdaBoost.ROB)中,近似誤差分布的標(biāo)準(zhǔn)差作為其預(yù)測好壞的判斷依據(jù),因為在概率和統(tǒng)計理論中,標(biāo)準(zhǔn)差衡量的是相對于平均值的變化量或是離散量,即數(shù)據(jù)點大多趨近于平均值,那么標(biāo)準(zhǔn)差會很低,若數(shù)據(jù)點分布范圍廣,則會產(chǎn)生較大的標(biāo)準(zhǔn)偏差.所以標(biāo)準(zhǔn)偏差可以用作一組重復(fù)預(yù)測的不確定性度量,在用此判斷時,如果預(yù)測值到真值間的平均距離很大,那么被測回歸模型可能需要修改,因為可以合理認(rèn)為超出預(yù)測范圍的樣本點會出現(xiàn),所以此時模型預(yù)測準(zhǔn)確率較低.
AdaBoost.ROB方法具體步驟如下:
初始化 迭代序號t=1,原始分布Dt,i=1/N,i=1,2,…,N,權(quán)重向量ωt,i=Dt,i,誤差率εt=0.
(1)令t=1,2,…,T;
(3)建立回歸模型ft(x)→y;
(4)計算每個樣本的誤差et,i=ft(xi)-yi;
(6)如果εt>1/2則令T=t-1并終止循環(huán);
(7)令βt=εt/1-εt;
(8)計算弱學(xué)習(xí)器在最終強(qiáng)學(xué)習(xí)器中的貢獻(xiàn)(權(quán)重)αt=-log(βt);
(9)更新樣本權(quán)重向量:若i?P,則ωt+1,i=ωt,iβt,否則ωt+1,i=ωt,i;
(10)令t=t+1.
在RAE-ELM算法訓(xùn)練過程中,將極限學(xué)習(xí)機(jī)(ELM)與魯棒改進(jìn)AdaBoost相結(jié)合,相應(yīng)地分配一個集成權(quán)值,使每個ELM學(xué)習(xí)器根據(jù)前一輪訓(xùn)練輸出結(jié)果確定下一步訓(xùn)練集樣本的相應(yīng)分布.對于當(dāng)前ELM模型預(yù)測效果較好的樣本,將其權(quán)重向量乘以錯誤率βt,否則,其權(quán)重向量不變.再訓(xùn)練下一步ELM模型,直到迭代次數(shù)達(dá)到閾值或者εt高于0.5.因為錯誤率高于0.5時,AdaBoost算法就不再收斂[8].
方法的優(yōu)點在于ELM學(xué)習(xí)速度快,回歸性能高,有利于提高最終強(qiáng)學(xué)習(xí)模型的泛化性能,并且改進(jìn)后的AdaBoost R.T算法利用近似誤差的統(tǒng)計分布動態(tài)確定具有魯棒性的閾值,可以自適應(yīng)選取更合適樣本的閾值.
本文通過以糧食加工企業(yè)近紅外光譜儀對生產(chǎn)產(chǎn)品質(zhì)量預(yù)測的建模分析,目的是貼合實際中質(zhì)檢領(lǐng)域快速在線監(jiān)測,為企業(yè)的實際生產(chǎn)中通過產(chǎn)品質(zhì)量預(yù)測以便對加工流程及時做出調(diào)整而提出建議.采用的淀粉數(shù)據(jù)的數(shù)據(jù)量為1 898,由12個波長值構(gòu)成自變量,一種成分(水分M)構(gòu)成因變量,其中,12個波長值分別為(2.36、2.21、2.16、2.06、1.94、1.84、1.76、1.66、1.55、1.51、1.45、1.31)×103cm-1.
在模型訓(xùn)練和測試階段通過3∶1劃分訓(xùn)練集(數(shù)據(jù)量1 423)和測試集(數(shù)據(jù)量475),通過在同一組數(shù)據(jù)上對比前面提到的4種方法:AdaBoost R2(3種不同損失函數(shù))、AdaBoost R.T、AdaBoost.ROB和AdaBoost 權(quán)重調(diào)整方法(3種不同損失函數(shù)),其中弱學(xué)習(xí)模型均采用的是決策樹回歸模型,得到圖2和表1.
圖2中各個子圖的橫坐標(biāo)為樣本真實化驗值,縱坐標(biāo)為據(jù)建立模型得到的預(yù)測值,不同的圖例用于區(qū)分訓(xùn)練集和測試集樣本,通過真實值和預(yù)測值散點圖可直觀上看出不同AdaBoost回歸模型效果基本不錯,散點大多分布在對角線上,不同AdaBoost回歸模型下的預(yù)測值較為接近真實值.
圖2 不同AdaBoost回歸模型效果對比
具體統(tǒng)計效果還要通過表1的評價準(zhǔn)則來看.本文采取的回歸評估指標(biāo)是均方誤差(R2).MSE是預(yù)測值和真實值誤差平方和的均值,其值越小說明擬合效果越好.R2是反映模型擬合優(yōu)度的統(tǒng)計量,為回歸平方和與總平方和之比,取值在0~1之間,且無單位,其數(shù)值大小反映了回歸貢獻(xiàn)的相對程度,即因變量的總變異中回歸關(guān)系所能解釋的百分比,是最常用于評價回歸模型優(yōu)劣程度的指標(biāo),R2越接近于1,回歸模型擬合效果越優(yōu).
由表1可知,以測試集的MSE來看,AdaBoost 權(quán)重調(diào)整后的回歸算法預(yù)測模型表現(xiàn)最優(yōu),Testing MSE從小到大依次是AdaBoost 權(quán)重調(diào)整(線性損失函數(shù))、AdaBoost 權(quán)重調(diào)整(指數(shù)損失函數(shù))、AdaBoost R2(指數(shù)損失函數(shù))、AdaBoost.ROB、AdaBoost R.T、AdaBoost 權(quán)重調(diào)整(平方損失函數(shù))、AdaBoost R2(線性損失函數(shù))和AdaBoost R2(平方損失函數(shù)).可以看出AdaBoost 權(quán)重調(diào)整算法的預(yù)測效果優(yōu)于改進(jìn)前的AdaBoost R.T,魯棒改進(jìn)的AdaBoost.ROB方法預(yù)測效果也優(yōu)于固定閾值的AdaBoost R.T方法,后來發(fā)展的AdaBoost算法也優(yōu)于較早提出的AdaBoost R2方法.
以測試集的決定系數(shù)來看,也是AdaBoost 權(quán)重調(diào)整后建立的回歸模型擬合效果最好,AdaBoost.ROB與改進(jìn)前AdaBoost R.T方法的擬合效果差別不大,但因為MSE減小,說明此方法應(yīng)用于淀粉近紅外預(yù)測模型在精確度和準(zhǔn)確度方面相對較好.
通過實驗表明將AdaBoost回歸算法用于淀粉成分的近紅外光譜建模分析是可行的,據(jù)此實現(xiàn)對加工過程中淀粉成分含量的監(jiān)測也比原始化學(xué)儀器檢測要快速、方便許多.為得到更為符合真實生產(chǎn)工藝的成分含量情況,研究關(guān)于AdaBoost算法的改進(jìn)工作也是必要的.關(guān)于改進(jìn)AdaBoost回歸算法主要關(guān)注以下幾個方面:一是針對AdaBoost算法本身過擬合和魯棒性不強(qiáng)的問題,對權(quán)值更新方式改進(jìn);二是針對AdaBoost算法訓(xùn)練過程進(jìn)行加速的嘗試,可以嘗試結(jié)合多核技術(shù),類似P-AdaBoost的并行算法,也可以考慮減小樣本容量,關(guān)于如何尋找強(qiáng)代表樣本,動態(tài)剪裁[9]是一個不錯的設(shè)想;三是結(jié)合某些成熟的算法,或加入前驅(qū)步驟,或?qū)W(xué)習(xí)器結(jié)構(gòu)進(jìn)行改進(jìn).目前在改進(jìn)AdaBoost算法權(quán)值更新方法上,尚沒有一個完美的解答,權(quán)值抑制是一個基本思想,但存在不同的抑制方法和側(cè)重點,尋找一種能兼顧各方面特點的方法將成為研究的重點.另外,弱學(xué)習(xí)器數(shù)量、精度和結(jié)構(gòu)上的研究也值得關(guān)注.但目前大多數(shù)研究改進(jìn)均集中在分類問題的應(yīng)用,對于回歸問題還存在諸多與分類問題不一致的方面有待討論.
最后,需要指出的是AdaBoost算法的改進(jìn)工作在第三個方向開放性最強(qiáng),新算法層出不窮,算法結(jié)合點的不同,就會形成不同的算法.目前新算法主要的目的在于獲得更快的檢測速度和更高的精度,可以在提高訓(xùn)練速度和算法強(qiáng)健性的方向上嘗試.總之,新的算法在不斷涌現(xiàn)中,各類改進(jìn)方式具有非常廣闊的空間,AdaBoost回歸算法必能在近紅外光譜建模領(lǐng)域獲得更為廣泛的應(yīng)用.