陳 路,鄭丹,童楚東
(寧波大學(xué) 信息科學(xué)與工程學(xué)院,浙江 寧波 315211)
質(zhì)量預(yù)測與分析是實現(xiàn)工業(yè)過程閉環(huán)控制的基礎(chǔ)和關(guān)鍵[1]。基于KPLS 的方法可以提高質(zhì)量預(yù)測精度,許多研究人員以KPLS 方法為基石,提出了許多解決非線性問題的方法[1-8]。
核函數(shù)是KPLS 方法的關(guān)鍵,而KPLS 選擇核函數(shù)并不是任意的,必須要滿足Mercer 定理。特定的內(nèi)核函數(shù)選擇隱含地決定了映射和特征空間。在KPLS 中,由于提取系統(tǒng)非線性特征的程度是基于核函數(shù)的,因此核函數(shù)的選擇是最重要的。如何給基于KPLS 的質(zhì)量預(yù)測選擇理想的核函數(shù)和核參數(shù)是一個開放的問題[9-10]。而且,一旦設(shè)置了核函數(shù),就需要設(shè)置適當(dāng)?shù)暮藚?shù)。但是,沒有一個理論框架能尋找到指定核函數(shù)的參數(shù)最最優(yōu)值,也就是說基于KPLS 的質(zhì)量預(yù)測很大程度上取決于選擇的核函數(shù)和核參數(shù)。
目前,關(guān)于如何選擇核函數(shù)的種類和參數(shù)來進行質(zhì)量預(yù)測的研究還沒有報道。在過去的幾年里,Huang 提出了一種用于特征選擇和參數(shù)優(yōu)化的遺傳算法[11]。Adriano 將此方法應(yīng)用于軟件工作量估算[12]。Jia 提出了一種改進遺傳算法,將改進的遺傳算法用于工業(yè)過程故障檢測,從而提升了故障監(jiān)測率[13]。此外,Liu 提出一種基于多核線性學(xué)習(xí)的KPLS 方法,該方法使用自適應(yīng)遺傳算法來選擇核函數(shù)的參數(shù)和權(quán)重[14]。這些研究多數(shù)都是固定一種核函數(shù),然后對其參數(shù)進行優(yōu)化,或者通過改進遺傳算法提高優(yōu)化速度。但是,核函數(shù)種類不止一種,只選擇其中一種核函數(shù)具有局限性?;谶@些研究成果,本文結(jié)合KPLS 質(zhì)量預(yù)測,建立同時優(yōu)化核函數(shù)及參數(shù)的優(yōu)化模型GA-KPLS-V。通過組合編碼方式,將不同核函數(shù)及參數(shù)類型結(jié)合在一起,在該模型中,核函數(shù)類型和核參數(shù)被視為決策變量,將質(zhì)量預(yù)測結(jié)果RMSE 作為目標(biāo),并采用改進遺傳算法對模型進行求解。仿真結(jié)果表明,該方法不僅能選出最優(yōu)核函數(shù),還能選出最優(yōu)核參數(shù)。
KPLS 算法的主要思想是通過一個非線性映射將輸入數(shù)據(jù)xi∈Rm映射到一個高位的特征空間H,特征空間的維數(shù)可以任意大甚至無窮大,然后在高位特征空間H中構(gòu)建線性PLS 模型。由于特征空間H 的維數(shù)很高,不可能直接計算出得分向量、權(quán)值向量和回歸數(shù)值,因此必須對原始空間的運算公式進行變換,使它只包含映射后數(shù)據(jù)的內(nèi)積運算,而內(nèi)積運算可以由原始空間定義的核函數(shù)來表示,即:
其中,K為n×n 維核矩陣,表示非線性映射所選擇的核函數(shù);Φ(xi)為映射后的輸入數(shù)據(jù)。代表性的核函數(shù)如下:
(1)徑向基核函數(shù):
(2)Sigmoid 核函數(shù):
(3)多項式核函數(shù):
其中,c、d、β0、β1是核函數(shù)的參數(shù),使用者依 據(jù)經(jīng)驗決定。依據(jù)經(jīng)驗選擇核函數(shù)和核參數(shù)進行質(zhì)量預(yù)測會造成預(yù)測結(jié)果不穩(wěn)定,并且使用不同核函數(shù)的最優(yōu)預(yù)測結(jié)果也不相同。同時,不同核函數(shù)的參數(shù)類型和個數(shù)也不相同,這也給同時優(yōu)化多種核函數(shù)和核參數(shù)增加了難度。徑向基核函數(shù)和多項式核函數(shù)一直滿足Mercer 定理,但是Sigmoid 核函數(shù)只有在特定的和下才滿足條件[14]。
遺傳算法是把問題的解決方案用某種編碼方式表示,產(chǎn)生初始種群并根據(jù)適應(yīng)度函數(shù)計算適應(yīng)度。然后,再利用選擇、交叉和變異操作,不斷迭代優(yōu)化,直到找到最優(yōu)解。傳統(tǒng)的遺傳算法編碼方式一般是相同的,不然無法進行選擇、交叉、變異操作。本文采取的是同時優(yōu)化多種核函數(shù)及核參數(shù),因此,編碼、適應(yīng)度函數(shù)、選擇、交叉、變異等操作都需要重新設(shè)計。
在質(zhì)量預(yù)測方面,其精度是衡量其算法對數(shù)據(jù)預(yù)測是否準(zhǔn)確的一大重要指標(biāo),用于衡量預(yù)測值對其真實值偏離程度[15]。其計算或表示方法在不同的領(lǐng)域會有些許的不同,核心公式是:
式中,yi表示實際值,表示預(yù)測值,n 表示全部樣本數(shù)。RMSE 稱作均方根誤差,在訓(xùn)練集中的均方根誤差表示為RMSEC,在測試集中的均方根誤差表示為RMSET。本文將采用均方根誤差RMSEC 作為確定最優(yōu)的優(yōu)化指標(biāo)。
遺傳算法在進化搜索過程中是以目標(biāo)函數(shù)(即適應(yīng)度函數(shù))為依據(jù)來引導(dǎo)尋優(yōu)過程的。本文的優(yōu)化目標(biāo)是質(zhì)量預(yù)測精度均方根誤差RMSE,因此,適應(yīng)度函數(shù)可以設(shè)計為:
本文問題為確定KPLS 中核函數(shù)類型及參數(shù),為保證核函數(shù)種類的多樣性,避免某種核函數(shù)種群過早消失,各類型子類應(yīng)保證一定的數(shù)量[13]。因此,為了滿足要求,需要重新構(gòu)造適應(yīng)度函數(shù)。
式中,w=e-m+1為加權(quán)因子,m為遺傳代數(shù),f_si為某一代中第i 類核函數(shù)個體適應(yīng)度總和,f_s為某一代中所有個體適應(yīng)度總和。
2.2.1 編碼
遺傳算法常見的編碼方式包括二進制編碼、浮點數(shù)編碼、格雷碼和符號編碼等?;贙PLS 質(zhì)量預(yù)測中需要尋優(yōu)的參數(shù)包括核函數(shù)的種類及其核參數(shù),種類不同的數(shù)其參數(shù)個數(shù)、范圍也不相同。針對本文的問題,采用了混合編碼策略。如圖1 所示,染色體有三部分:第一部分為核函數(shù)類型,采用二進制編碼;其余部分為核參數(shù)采用浮點數(shù)編碼。當(dāng)選取徑向基核函數(shù)和多項式核函數(shù)時,第二部分有效,第三部分無效。當(dāng)選取Sigmoid 核函數(shù)時,第二、第三部分均有效。
圖1 編碼結(jié)構(gòu)
2.2.2 初始種群設(shè)置
由于核函數(shù)種類少,因此,核函數(shù)種類采用枚舉方法,設(shè)核函數(shù)種類為v。而相對應(yīng)的核參數(shù)范圍較大,不能采用枚舉的方法。設(shè)子群個體數(shù)為gi,則總?cè)簜€體數(shù)為:
當(dāng)確定種群大小后,采用隨機辦法產(chǎn)生種群中的個體,并令初始子種群個數(shù)為:
2.2.3 遺傳操作
本文選擇輪盤賭方法進行個體選擇。由于采用的是組合編碼,因此交叉操作比一般問題復(fù)雜。如果兩個父本核函數(shù)種類相同,直接進行一般交叉操作;若種類不同,分別在父代中尋找相同個體進行交叉,如果沒有找到相同個體,則隨機產(chǎn)生一個個體交叉。變異就是以很小的變異概率pm隨機地改變種群中個體的某些基因值,由于采用的組合編碼,因此變異位只選擇參數(shù)位變異。
在使用不同核函數(shù)建立KPLS 質(zhì)量預(yù)測模型時,可能會出現(xiàn)使用高斯核函數(shù)的KPLS 質(zhì)量預(yù)測模型在訓(xùn)練集上的學(xué)習(xí)能力好于使用其他核函數(shù)的KPLS 質(zhì)量預(yù)測模型,但是在測試集上的表現(xiàn)卻比使用其他兩種核函數(shù)的KPLS 質(zhì)量預(yù)測模型差。這種現(xiàn)象在機器學(xué)習(xí)中稱為“過擬合”。
采用k 折交叉驗證法(K-Fold Cross Validation)能夠有效避免以上情況。首先,將訓(xùn)練集劃分為k 個大小相同的互斥子集。然后,依次選取不同的區(qū)作為驗證集,其余的k-1 個區(qū)作為訓(xùn)練集,每次驗證都會得到一個均方根誤差,最后總誤差為所有誤差的平均值,如圖2 所示。
圖2 k 折交叉驗證原理圖
k折交叉驗證法評估結(jié)果的穩(wěn)定性在很大程度上取決于k 的取值,一般情況下k 的取值區(qū)間為[2,10]。本文采用2 折交叉驗證法進行評估。k 值越大,偏差會越小而復(fù)雜度會越大,本文研究重點為找到最佳核函數(shù)以及核參數(shù),而k 在取值范圍內(nèi)進行交叉驗證得到的最佳核函數(shù)和核參數(shù)相同。
KPLS 優(yōu)化過程如下:
(1)將采集的正常運行數(shù)據(jù)劃分為訓(xùn)練集和測試集,對訓(xùn)練集數(shù)據(jù)進行標(biāo)準(zhǔn)化處理,保存均值和方差。
(2)確定核函數(shù)的種類、初始種群大小和終止條件。根據(jù)核函數(shù)參數(shù)的取值范圍,隨機生成核函數(shù)參數(shù)并進行編碼。
(3) 通過k折交叉驗證對種群中的每個體進行KPLS建模并計算適應(yīng)度值。
(4)進行遺傳操作:選擇、交叉、變異,進入下一代。
(5)判斷是否滿足終止條件,如果不滿足,重復(fù)步驟(3)~(4);否則,停止迭代。
基于核函數(shù)及參數(shù)優(yōu)化的KPLS 質(zhì)量預(yù)測基本算法示意圖如圖3 所示。
圖3 KPLS 質(zhì)量預(yù)測優(yōu)化過程流程圖
Tennessee Eastman(TE)過程是基于實際工業(yè)過程的仿真實例,它由美國Tennessee Eastman 化學(xué)公司過程控制部門的Downs和Vogel 于1993 年提出。此過程已經(jīng)被廣泛作為連續(xù)過程的策略、監(jiān)視、診斷的優(yōu)化的研究平臺。此過程有4 種反應(yīng)物(A、C、D、E),生成兩種產(chǎn)物(G和H)。此外,還包含一種惰性物質(zhì)B 及副產(chǎn)物F。該過程有22 個連續(xù)的過程測量值、12 個操作變量和19 個混合測量值。在仿真過程中采樣數(shù)據(jù)的時間間隔是3 min。本實驗共選取22 個連續(xù)變量核11 個操作變量作為輸入變量X,同時選取物流9 中組分G 的摩爾含量作為輸出變量y。首先在正常狀況下讓仿真程序運行25 h 得到960 個正常樣本,然后將前760 個正常樣本作為訓(xùn)練集數(shù)據(jù),將后200 個正常樣本作為測試集數(shù)據(jù)。
針對徑向基核函數(shù)、多項式核函數(shù)、Sigmoid 核函數(shù)3 種核函數(shù)進行尋優(yōu)。其中,徑向基核函數(shù)的參數(shù)取在(0.1,50)范圍內(nèi);多項式核函數(shù)的參數(shù)d 取為1~8 的正整數(shù);Sigmoid 核函數(shù)的參數(shù)β0和β1都取為(1,8)。設(shè) 初始種群個子類個體數(shù)為8,總種群數(shù)為24,根據(jù)核函數(shù)的數(shù)的定義域隨機產(chǎn)生初始種群,遺傳代數(shù)為20。
本文稱隨機選取高斯核函數(shù)參數(shù)的KPLS 質(zhì)量預(yù)測方法為KPLS-G,隨機選取多項式核函數(shù)參數(shù)的KPLS質(zhì)量預(yù)測方法為KPLS-P,隨機選取Sigmoid 核函數(shù)參數(shù)的KPLS 質(zhì)量預(yù)測方法為KPLS-S,遺傳算法優(yōu)化選取高斯核函數(shù)參數(shù)的KPLS 質(zhì)量預(yù)測方法為GA-KPLS-G。
在訓(xùn)練集和測試集相同的前提下,分別使用KPLS-G、KPLS-P、KPLS-S、GA-KPLS-G、GA-KPLS-V 進行100次質(zhì)量預(yù)測,預(yù)測結(jié)果如圖4和圖5 所示,優(yōu)化過程如圖6~圖9 所示。
圖4 5 種不同核函數(shù)選取方法預(yù)測結(jié)果對比(變量35)
圖5 均方根誤差(變量35)
圖6 核函數(shù)種群變化(變量35)
圖9 核函數(shù)種群變化(變量40)
對于變量35,從圖4 可以看出,其中實心箱體為訓(xùn)練結(jié)果,空心箱體為測試結(jié)果?;贙PLS-G、KPLS-P和KPLS-S 的質(zhì)量預(yù)測結(jié)果數(shù)據(jù)相對分散,說明隨機選取核函數(shù)參數(shù)會導(dǎo)致預(yù)測結(jié)果不穩(wěn)定?;贕A-KPLS-G的質(zhì)量預(yù)測結(jié)果數(shù)據(jù)相對集中,說明預(yù)測結(jié)果具有較好的穩(wěn)定性和一致性。但是,核函數(shù)種類不止一種,選擇常用的高斯核函數(shù)進行優(yōu)化建立質(zhì)量預(yù)測模型只能得到基于高斯核函數(shù)的最優(yōu)解,從圖中可以看出KPLS-S 的預(yù)測精度是有可能高于GA-KPLS-G 的預(yù)測精度的。本文提出的GA-KPLS-V 質(zhì)量預(yù)測結(jié)果的中位數(shù)最低且預(yù)測結(jié)果相對集中,說明其平均質(zhì)量預(yù)測精度最高且具有較好的穩(wěn)定性和一致性。其中,最優(yōu)核函數(shù)為Sigmoid核函數(shù),最優(yōu)核參數(shù)β0=1.27,β1=7.81。
圖6為遺傳過程中RMSEC 值的變化曲線,其中“○”為最小值,“*”為平均值??梢钥闯觯S著遺傳代數(shù)增加,RMSEC 均值和最小值逐漸降低并趨于平穩(wěn)。圖7為遺傳過程中種群變化趨勢,可以看出,隨著遺傳代數(shù)的增加,高斯核和多項式核的種群逐漸減少最終為0,而Sigmoid 核種群逐漸增多,最終達(dá)到最大個體數(shù)。
圖7 5 種不同核函數(shù)選取方法預(yù)測結(jié)果對比(變量40)
對于變量40,從圖7 可以看出,本文所提出的GAKPLS-V 質(zhì)量預(yù)測結(jié)果依舊是3 種方法中效果最好的。其中,最優(yōu)核函數(shù)為Sigmoid 核函數(shù),最優(yōu)核參數(shù)β0=0.22,β1=3.41。
圖8 可以看出,隨著遺傳代數(shù)增加,RMSEC 均值和最小值逐漸降低并趨于平穩(wěn)。從圖9 可以看出,隨著遺傳代數(shù)的增加,Sigmoid 核種群逐漸增多,最終達(dá)到最大個體數(shù)。常用核函數(shù)類型不止一種,選擇一種核函數(shù)進行參數(shù)優(yōu)化具有局限性。選擇優(yōu)化多種核函數(shù)及參數(shù)的質(zhì)量預(yù)測方法,能夠同時選擇最優(yōu)核函數(shù)及核參數(shù),對復(fù)雜過程質(zhì)量預(yù)測更穩(wěn)定和準(zhǔn)確。
圖8 均方根誤差(變量40)
本文在KPLS 的應(yīng)用中,針對基于KPLS 在線質(zhì)量估計和預(yù)測中核函數(shù)和核參數(shù)難以確定的問題,提出了優(yōu)化方法。該方法以遺傳算法為優(yōu)化算法,以核函數(shù)的種類和參數(shù)為優(yōu)化決策變量,以均方根誤差RMSE為優(yōu)化目標(biāo)。該方法的優(yōu)勢在于,遺傳算法的解收斂于全局最優(yōu)解,同時,重新設(shè)計適應(yīng)度函數(shù)和交叉變異算法,保證了核函數(shù)種群的多樣性。仿真結(jié)果表明,該方法能選出最優(yōu)核函數(shù)和和參數(shù),且提高了模型預(yù)測精度。