, ,
(浙江理工大學機械與自動控制學院,杭州 310018)
隨著社會經(jīng)濟的快速發(fā)展,工業(yè)過程更加注重生產(chǎn)的安全、效益和環(huán)保,對過程關鍵參數(shù)的監(jiān)測要求也愈加嚴格,僅僅依靠傳統(tǒng)的檢測技術已無法滿足工業(yè)生產(chǎn)的多樣化需求,在此背景下人們提出了軟測量技術(軟測量)。軟測量通過建立過程輔助變量與主導變量之間的數(shù)學模型[1]實現(xiàn)對主導變量的預測,其中輔助變量是指那些易測且與主導變量有直接或間接聯(lián)系的過程變量。軟測量模型一般可分為模型驅(qū)動型和數(shù)據(jù)驅(qū)動型兩大類[2-3],在動態(tài)變化的工業(yè)生產(chǎn)過程中,數(shù)據(jù)驅(qū)動軟測量建模優(yōu)勢明顯[4]。數(shù)據(jù)驅(qū)動型模型又可細分為線性模型和非線性模型兩類,在軟測量中常采用線性模型[5],偏最小二乘法(Partial least square,PLS)[6]是其中一種應用廣泛的建模方法。相比于最小二乘法,PLS在處理多輸入多輸出數(shù)據(jù)時更具有優(yōu)勢,原因在于PLS中包含主成分提取的思想,可以在減小噪聲干擾的同時,使有效信息更加集中,從而避免“維數(shù)災難”的問題。
在實際工業(yè)生產(chǎn)中,時序數(shù)據(jù)會往往會呈現(xiàn)較強的非線性,將PLS非線性優(yōu)化是當今研究的一個熱點。根據(jù)非線性系統(tǒng)理論,如果系統(tǒng)的輸出面光滑,那么任何非線性系統(tǒng)都可以通過多個線性模型進行逼近[7],Kaneko等[8]由此提出了基于局部加權(quán)的偏最小二乘法算法(Locally weighted partial least square,LWPLS)。該算法首先將數(shù)據(jù)集劃分成若干個子數(shù)據(jù)集并建立對應的局部子模型,然后利用集成學習的思想[9]給每個子模型匹配適當權(quán)值從而構(gòu)成全局模型。與單個學習器相比,集成學習可以顯著提高模型的泛化能力[10]。
本文針對工業(yè)過程中具有時序性、非線性、易突變等特性的數(shù)據(jù),提出了以局部加權(quán)為主體框架的PLS建模方法。首先通過移動窗口(Moving-windows,MW)[11]對數(shù)據(jù)集進行劃分,建立子模型;然后引入模型剪枝技術減少子模型間的冗余,進一步提高模型的效率;最后根據(jù)貝葉斯定理實現(xiàn)模型集成預測。由于模型性能受算法內(nèi)部自定參數(shù)影響,本文引入粒子群算法(Particle swarm optimization,PSO)[12]進行參數(shù)自動尋優(yōu),確保模型性能最優(yōu),由此本文提出基于移動窗口和粒子群尋優(yōu)的集成偏最小二乘改進算法EMWPLS_PSO。PSO是處理非線性連續(xù)優(yōu)化問題、組合優(yōu)化問題和混合整數(shù)非線性優(yōu)化問題的有效優(yōu)化工具,擁有算法簡潔、易于實現(xiàn)、參數(shù)少且不需要梯度信息等優(yōu)勢[13]。PSO的適應度函數(shù)選擇是參數(shù)尋優(yōu)的關鍵,本文對此進行了研究。EMWPLS_PSO算法充分考慮時序數(shù)據(jù)的自身特性,利用移動窗口對數(shù)據(jù)集進行劃分,辨識出各狀態(tài)突變時刻。權(quán)值計算過程中結(jié)合TIM(Just-in-time)思想,得到的權(quán)值更加合理。冗余模型檢查和PSO參數(shù)優(yōu)化使最后的集成模型結(jié)構(gòu)最優(yōu)化,降低運算量,提高計算效率。
EMWPLS算法的建模步驟為:首先采用移動窗口法對數(shù)據(jù)集進行移動分割,根據(jù)分割結(jié)果對各子數(shù)據(jù)集單獨建模;然后引入模型冗余檢測技術對建立的子模型進行剪枝;最后根據(jù)貝葉斯理論進行模型的集成。
本文使用以下三個指標進行模型性能評價[14],以衡量預測值與真實值的契合度:誤差平方根(The root mean square error,RMSE)、相對誤差平方根(the relative RMSE,RE)和最大絕對誤差(The maximum absolute error,MAE),具體公式可以表示為:
(1)
(2)
MAE=max{|ypre,t-ytrue,t|,t=1,2,…,Nt}
(3)
其中:ypre,t和ytrue,t分別代表第t組測試集的模型預測值和真實輸出值;Nt表示樣本數(shù)。
建立局部模型首先確定寬度為W的原始窗口,原始窗口中數(shù)據(jù)集記為Wini={Xini,Yini},其中Xini∈RW*m,Yini∈RW*1分別表示輸入變量和輸出變量。利用PLS對Wini建模,得到模型fini。然后將窗口下移一步,新得到的數(shù)據(jù)集記為Wsft={Xsft,Ysft}。通過判定條件1判斷模型fini是否適用于Wsft,若適用,則窗口繼續(xù)下移直至條件不再滿足為止。最后得到第一個子數(shù)據(jù)集{X1,Y1},利用PLS對其建??傻玫降谝粋€子模型f1。
判決條件1可以表述為:
Eini=fini(Xini)-Yini
(4)
Esft=fini(Xsft)-Ysft
(5)
(6)
(7)
依照1.1小節(jié)介紹的方法繼續(xù)建立f2,f3,…,至遍歷所有數(shù)據(jù)。為了解決子模型建立過程中的模型冗余問題,本文引入一個刪除冗余模型的步驟:當子模型個數(shù)大于2個時,通過判決條件2判定模型間是否存在冗余,若冗余則用新模型取代舊模型,并將舊模型刪除。
判決條件2可以表述為:
將當前數(shù)據(jù)集分別代入新模型和舊模型,并計算其誤差、誤差的均值與方差,并利用t-分布和χ2-分布判定預測誤差是否近似,用公式表示為:
Enew=fnew(Xnew)-Ynew
(8)
El=fl(Xnew)-Ynew
(9)
(10)
(11)
子模型的建立與冗余檢驗交替進行,直到遍歷全部數(shù)據(jù)集,最終可得到L個子模型。整個算法的流程如圖1所示。
圖1 局部子模型構(gòu)建算法流程
得到L個子模型后利用集成學習法對新樣本進行預測,具體步驟為:a) 計算新樣本在每個子模型中的估計值;b) 賦予每個子模型權(quán)值;c) 加權(quán)得到最終的集成學習預測值。這一部分算法的關鍵是如何定義步驟b)中的權(quán)值。本文使用Shao等[15]提出的方法定義權(quán)值。對輸入xq,定義指標J(l)評價每個子模型的預測能力,J(l)越大表示第l個模型的預測誤差越大,可用公式表示為:
(12)
(13)
(14)
其中:(x0,y0)表示歷史數(shù)據(jù)中最新的一組數(shù),γ是連接系數(shù),且0<γ<1,γ的大小和x0與xq之間的距離有關,可表示為:
γ=exp (-ρd(xq·x0))
(15)
其中:ρ為可調(diào)參數(shù)。
類似地,sk和xq與xk之間的距離有關,計算公式為:
sk=exp (-d(xq·xk)/σd)
(16)
其中:d(·)表示兩點間的歐氏距離,σd表示xq與歷史數(shù)據(jù)的距離的方差。
由于J(l)代表模型的預測誤差,J(l)越大則表示分配給第l個模型的權(quán)值應當越小,本文用g(l)表示:
g(l)=exp (-ψJ(l))
(17)
其中:ψ為可調(diào)參數(shù)。
最后對所有子模型集成:
(18)
其中:fl(xq)是xq在第l個子模型中的預測值,P(fl|xq) 是由貝葉斯推理得到的后驗概率。
(19)
其中:P(fl)和P(xq|fl)分別代表先驗概率和第l個模型能準確預測xq的可能性。
(20)
P(fl|xq)=g(l)
(21)
其中:Nl表示建立第l個模型所用到的樣本數(shù)量。
綜合式(18)—(21),可以得到
(22)
在利用EMWPLS算法建模的過程中會涉及4個關鍵的可調(diào)參數(shù):移動窗口初始大小W、鄰近點數(shù)量K以及模型集成時的參數(shù)ρ和ψ。移動窗口初始大小W與最終構(gòu)建的子模型數(shù)量密切相關,若W較大,則可能導致不同狀態(tài)的數(shù)據(jù)被歸為一類,從而會影響子模型預測效果;反之若W太小,子模型數(shù)量過多,則會增加模型的復雜度、降低運行效率。類似地,如果K太小,可能導致模型過擬合,增大模型的預測誤差;反之若K太大,則會影響相連時刻的數(shù)據(jù)對各子模型預測能力的判斷。在對子模型進行集成時,ρ和ψ大小也同樣關鍵。由式(15)可知,如果ρ的值較大,則相應的γ很小(ρ無窮大時,γ趨向于0),導致式(12)中J1在J中所占的比例較小。同理,式(7)中的ψ不宜過大,因為當ψ無窮大時,g趨向于0,而在式(22)中可以看出g(l)不能都為零(分母不能為零)。
本文以標準數(shù)據(jù)集中的abalone數(shù)據(jù)集[17]為例,分析四個參數(shù)對模型預測精度的影響。圖2—圖4分別給出了四個參數(shù)與模型預測誤差指標RMSE、RE以及MAE的對應關系曲線,從圖中可以觀察得到:四個參數(shù)對預測效果均有較大影響,且它們之間呈現(xiàn)出較復雜的非線性關系。對于不同數(shù)據(jù)集,其影響關系也不同。因此本文提出一種基于PSO進行參數(shù)自動尋優(yōu)的解決思路。
圖2 W,K,ρ,ψ四個參數(shù)與RMSE的關系曲線
圖3 W,K,ρ,ψ四個參數(shù)與RE的關系曲線
圖4 W,K,ρ,ψ四個參數(shù)與MAE的關系曲線
2.2.1適應度函數(shù)選擇
圖5 誤差變化與RMSE、RE、MAE之間的關系圖
在使用粒子群算法時適應度函數(shù)的選擇是一個關鍵的步驟,本文選用RMSE、RE、MAE來評價模型的性能,所以將其作為備選適應度函數(shù),由于MAE受單個樣本影響較大,故不考慮其作為適應度函數(shù)。分析式(1)—(2)可以得到結(jié)論:對于同一個模型而言,預測結(jié)果的RMSE、RE的變化趨勢并非一直保持一致,它受誤差統(tǒng)計分析時|(Ypre,t-Ytrue,t)/Ytrue,t|>1 的樣本數(shù)在所有樣本中所占比例影響,當其比例高時RE的值可能會隨著RMSE的減小反而增大。圖5顯示了abalone數(shù)據(jù)集在16組不同參數(shù)下得到的對應EMWPLS模型的RMSE、RE、MAE指標曲線,從中觀察發(fā)現(xiàn)RMSE和RE的變化趨勢并不一致(為對比二者趨勢,圖中RMSE的數(shù)值已放大10倍,RE數(shù)值放大5倍)。圖5中曲線對應的具體數(shù)值詳見表1。在這16組數(shù)中第10組的RMSE最小,第14組的RE最小。這表明分別用RMSE和RE作為適應度值進行參數(shù)尋優(yōu)會得到不同的結(jié)論。
表1 不同參數(shù)下abalone數(shù)據(jù)集的RMSE、RE、MAE數(shù)值
可見適應度函數(shù)的選擇會直接影響參數(shù)的尋優(yōu)結(jié)果。選取幾組不同參數(shù)對abalone數(shù)據(jù)集進行EMWPLS_PSO建模,并依照式(1)—(3)計算出各組的RMSE、RE、MAE,選出RMSE相同RE不同、RMSE不同RE相同、RMSE和RE都不相同的兩兩對應的幾組數(shù)據(jù),記錄于表2,并繪制圖6—圖8的曲線。通過比較可發(fā)現(xiàn)若單獨選其中一個值作為適應度值RMSE比RE更合適。當RMSE值相同時,RE值越小則模型效果越好。根據(jù)上述結(jié)果筆者認為將RMSE和RE相結(jié)合效果更佳。本文提出Z=p*RMSE+(1-p)*RE作為適應度函數(shù),其中p為連接系數(shù),且在Z中RMSE應該占更大的比重。
表2 不同參數(shù)下模型的RMSE、RE、MAE值對比
圖6 RMSE相同RE不同時實際輸出與預測輸出
圖7 RMSE不同RE相同時實際輸出與預測輸出
圖8 RMSE、RE均不同時實際輸出與預測輸出
2.2.2尋優(yōu)過程
本文選擇粒子群算法的適應度函數(shù)為:Z=p*RMSE+(1-p)*RE,優(yōu)化目標為W,K,ρ,ψ四個關鍵參數(shù)?;诹W尤核惴ǖ膮?shù)尋優(yōu)過程如下:
a) 參數(shù)隨機初始化(種群粒子數(shù)設為20,迭代次數(shù)設為50次,各參數(shù)設置合理上下限,初始位置與速度在參數(shù)上下限范圍內(nèi)隨機給定);
b) 計算適應度值,更新粒子的歷史最優(yōu)和全局最優(yōu)位置;
c) 根據(jù)迭代公式更新粒子的位置和速度,如果超出邊界值,則賦予其邊界值;
d) 判斷是否達到最大迭代次數(shù)和全局最優(yōu)位置滿足最小界限,若不滿足則返回步驟b),反之結(jié)束尋優(yōu)。
本文使用工業(yè)數(shù)據(jù)集Debutanizer_data[18]驗證模型效果,該數(shù)據(jù)集共700組樣本,7個輸入1個輸出,將前500組樣本作為訓練集,后100組樣本作為驗證集,最后100組樣本作為測試集。表3、表4記錄了其中6次粒子群尋優(yōu)得到的參數(shù)及其誤差分析,選取結(jié)果最好的第一組參數(shù)作為EMWPLS_PSO的最終參數(shù),并與常規(guī)PLS以及BP算法進行對比。
表3 Debutanizer_data數(shù)據(jù)集重復6次尋優(yōu)參數(shù)記錄表
表4 Debutanizer_data數(shù)據(jù)集重復6次尋優(yōu)誤差分析表
圖9給出了EMWPLS_PSO算法與常規(guī)PLS、BP算法預測結(jié)果的對比曲線。圖9中點越接近中間的Y=X直線說明模型的預測值與真實值越吻合,模型預測效果越好。將真實值記為Yreal,預測值記為Ypre。記diff0.1=P(|Yreal-Ypre|≤0.1),常規(guī)的PLS得到的diff0.1為0.75,EMWPLS_PSO對應的diff0.1為0.93。記diff0.05=P(|Yreal-Ypre|≤0.05),常規(guī)的PLS得到的diff0.05為0.45,EMWPLS_PSO對應的diff0.05為0.785??梢缘玫浇Y(jié)論:集成移動窗口技術對常規(guī)PLS的預測精度有很大的提高。圖9(b)是PLS模型、EMWPLS_PSO模型的預測值與真實值的對比圖,通過對比可發(fā)現(xiàn)相對于PLS,EMWPLS_PSO的預測趨勢更準確,與真實值更吻合。圖9(c)—(d)是同作為非線性算法的BP與EMWPLS_PSO的預測結(jié)果對比圖。其中BP的diff0.05為0.47,diff0.1為0.68。由對比曲線可以看出,EMWPLS_PSO的預測效果也優(yōu)于BP。表5記錄了PLS、EMWPLS_PSO和BP算法的RMSE、RE、MAE值,從中可以得出結(jié)論,較之常規(guī)PLS和BP算法,EMWPLS_PSO的預測誤差最小。
圖9 EMWPLS_PSO與常規(guī)PLS、BP算法的預測結(jié)果對比
EMWPLS_PSORMSEREMAEPLSRMSEREMAEBPRMSEREMAE0.050.240.180.090.410.250.080.540.25
本文將EMWPLS_PSO與改進前的PLS算法作縱向比較,同時橫向比較了非線性的BP算法。EMWPLS_PSO算法在PLS基礎上性能有極大的改善,較好地克服了PLS對非線性數(shù)據(jù)擬合能力差的問題。同時,相比于純數(shù)據(jù)驅(qū)動的傳統(tǒng)神經(jīng)網(wǎng)絡建模方法,在小樣本建模方面EMWPLS_PSO擁有更高的預測精度。
本文將移動窗口技術與集成學習的思想相結(jié)合,提出一種EMWPLS_PSO軟測量算法。在利用移動窗口法建立局部模型時,增添了局部模型的冗余檢查及刪除的步驟,更好地提高了模型的效率和性能。此外,該模型同時應用時域和空間域上的歷史數(shù)據(jù)對動態(tài)數(shù)據(jù)變化趨勢進行預測,在避免過度擬合的同時進一步提高了模型的準確性。最后,為了保證模型在處理不同數(shù)據(jù)時擁有最佳預測精度,本文采用粒子群算法對參數(shù)進行自動尋優(yōu)。通過以上技術的結(jié)合,很好地改善了PLS對線性相關性較差的時序數(shù)據(jù)的建模效果。