龔沛文,李春富,葛 銘
(杭州電子科技大學(xué)自動化學(xué)院,浙江杭州310018)
部分最小二乘方法自Wold提出以來,作為一種基于數(shù)據(jù)回歸模型的軟測量建模方法,已廣泛地應(yīng)用于化學(xué)計量學(xué)、工業(yè)過程的建模等領(lǐng)域[1]?;趥鹘y(tǒng)PLS出現(xiàn)的問題,目前出現(xiàn)了一系列遞推算法來更加有效的更新PLS模型。該文研究了PLS回歸的一種快速算法—改進的PLS核心算法,并在此基礎(chǔ)上重新推導(dǎo)出遞推的PLS算法,此算法提高了模型的運算速度。最后對煤氣化爐合成氣組分濃度的軟測量建模進行了應(yīng)用分析。
PLS模型參數(shù)的計算通常采用非線性迭代部分最小二乘算法。然而對于大的數(shù)據(jù)矩陣,迭代算法效率比較低,而且NIPALS算法在迭代過程中需要存貯原始數(shù)據(jù)矩陣X和Y、殘差矩陣E和F、得分矩陣T和負荷矩陣P、Q,當數(shù)據(jù)矩陣很大時將占用大量內(nèi)存,且計算時很耗費時間。
針對這個問題提出來一種核算法,有效地改善了計算大數(shù)據(jù)矩陣的PLS參數(shù)問題[2]。對于“矮胖”的數(shù)據(jù)矩陣,PLS模型參數(shù)可以用協(xié)方差矩陣XXT和XTY來計算。當計算下一組參數(shù)時,只需要更新XXT和XTY。而兩矩陣維數(shù)遠遠小于原矩陣X和Y的維數(shù),計算速度可有較大提高。該算法的詳細步驟:
(1)首先,令(XXT)1=XXT,(XTY)1=XTY,a=1。再計算協(xié)方差矩陣XXT和XTY;
(2)計算核矩陣(XTYYTX)a,這是由矩陣(XTY)a乘以其轉(zhuǎn)置得到的;
(3)根據(jù)XXT和XTY計算負荷向量pa和qa
式中,向量wa代表PLS權(quán)值向量,它是對應(yīng)于矩陣(XTYYTX)a最大特征值的特征向量,可以通過冪法或者其它方法計算得到;
(4)更新XXT和 XTY
(5)令a=a+1,返回第二步,直到計算出所有需要的特征向量。
該文在原始的PLS核心算法基礎(chǔ)上,提出了一種遞推的部分最小二乘算法。該算法是利用新數(shù)據(jù)和PLS模型參數(shù)組合起來更新模型,使得新模型在并不完全遺忘舊信息的基礎(chǔ)上適應(yīng)過程的新變化。
假設(shè)數(shù)據(jù)矩陣{X,Y}具有m個輸入變量,p個輸出變量,n個樣本,采用如下形式表達對應(yīng)于數(shù)據(jù)矩陣的 PLS 模型結(jié)果{T,W,P,B,Q}:
式中,假設(shè) X 的秩為 r,T=[t1,t2,…,tr]為輸入的得分矩陣,W=[w1,w2,…,wr]為輸入的權(quán)值矩陣,P=[p1,p2,…,pr]和 Q=[q1,q2,…,qr]為輸入和輸出的負荷矩陣,B=diag{t1,t2,…,tr}為對角矩陣。
為了方便推導(dǎo),將特征向量tx(x=1,2,…,r)歸一化,把T標準正交。于是則有:
又矩陣Fr與T正交,由式9、10可推導(dǎo)出:
當加入新數(shù)據(jù){X1,Y1}和舊數(shù)據(jù) {X,Y}共同更新模型時,數(shù)據(jù)矩陣可寫為:則有以下公式:
同理可得:
因此,由式10、11可以得知,對現(xiàn)有全部數(shù)據(jù)的回歸等價于對新數(shù)據(jù)結(jié)合老數(shù)據(jù)而得到的PLS模型參數(shù)回歸。由此很容易推導(dǎo)出RPLS算法,步驟如下:
(1)確定過程變量,選擇模型參數(shù);
(2)采集數(shù)據(jù),構(gòu)造原始數(shù)據(jù)矩陣{X,Y},并對其進行數(shù)據(jù)預(yù)處理;
(3)采用PLS的核心算法計算出PLS模型{X,Y}—PL→S{T,W,P,B,Q};
(4)加入新數(shù)據(jù)后,根據(jù)步驟1進行數(shù)據(jù)預(yù)處理,然后利用遺忘因子法對舊參數(shù)矩陣進行加權(quán),即用遺忘因子可用遺忘因子λ(0<λ≤1)與舊參數(shù)矩陣相乘從而達到削弱舊數(shù)據(jù)對建模的影響的作用,再和舊參數(shù)組成新數(shù)據(jù)矩陣,最后返回步驟3。
該文以煤氣化爐裝置為建模對象,根據(jù)現(xiàn)場工藝以及反應(yīng)機理的分析,一共選擇11個過程變量作為模型的輸入變量,合成氣組分CO作為模型的輸出變量。首先取43個初始數(shù)據(jù)集合建立PLS模型,同時為了在更新模型時不丟失原數(shù)據(jù)的信息,在建立PLS模型時需要保留的特征向量數(shù)目要足夠多,可根據(jù)對響應(yīng)變量的解釋程度來確定。當新增加的特征向量對響應(yīng)變量的解釋程度小于某個閾值,或者新增一個特征向量之后,對響應(yīng)變量總的解釋程度大于某個閾值,比如90%,則停止增加特征向量,利用已經(jīng)提取的特征向量進行預(yù)測。
然后取第44到第64的數(shù)據(jù)為第二組數(shù)據(jù),預(yù)測結(jié)果如圖1所示,虛線為實際值,實線為模型預(yù)測值。仿真表明預(yù)測結(jié)果誤差較大,尤其是第58個數(shù)據(jù)點的值突然變大,因此,模型需要及時更新。該文采用遞推的PLS算法來對模型進行更新。在新數(shù)據(jù)到來后,和舊模型參數(shù)矩陣進行PLS回歸,得到更新后的模型再對第二組數(shù)據(jù)進行預(yù)測,結(jié)果如圖2所示。兩種不同模型的性能比較如表1所示。可以看出,模型更新后的預(yù)測均方根誤差有較大減小,模型的預(yù)測精度有了很大的提高。
圖1 模型對第二組數(shù)據(jù)的預(yù)測結(jié)果
圖2 更新后的模型對第二組數(shù)據(jù)的預(yù)測結(jié)果
表1 兩種模型的性能比較
該文以一種新的推導(dǎo)方式,提出了遞推的部分最小二乘算法。該算法可以根據(jù)新的數(shù)據(jù)和舊的PLS模型參數(shù)更新模型,而不需采用全部數(shù)據(jù)。仿真結(jié)果表明該算法可以有效的更新模型,使模型適應(yīng)過程的變化。然而,在建立模型時所確定的特征向量個數(shù)不一定是最優(yōu)的。因此,在線更新模型時,如何確定用于預(yù)測的最優(yōu)特征向量數(shù),還有待進一步研究。
[1] Wold H.Nonlinear estimation by iterative least squares procedures[J].Research Papers in Statistics,1966,12(5):134-139.
[2] Lindgren F,Geladi P,Wold S.The kernel algorithm for PLS[J].Chemometrics,1993,7(22):45 -59.
[3] 張杰,陽憲惠.多變量統(tǒng)計過程控制[M].北京:化學(xué)工業(yè)出版社,2000:2-67.
[4] 李凡,吳強,楊英華,等.基于遞推PLS的自適應(yīng)鋼溫軟測量模型[J].控制工程,2007,8(2):147-150.
[5] Helland I S.On the structure of partial least squares regression[J].Comm.Statist.B-Simulation Compute,1988,17(3):581-607.
[6] Lakshminarayanan S,Shah S L,Nandakumar K.Modeling and control of multivariable processes:dynamic PLS approach[J].AIChE Journal,1997,43(9):2 307 -2 322.