孫順遠 周 乾
(1.輕工過程先進控制教育部重點實驗室 無錫 214122)(2.江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院 無錫 214122)
在復(fù)雜工業(yè)中為了獲得較好的產(chǎn)品質(zhì)量,通常需要對關(guān)鍵質(zhì)量變量進行準(zhǔn)確實時的監(jiān)測,然而這些質(zhì)量變量大多不易直接測量,如:脫丁烷塔塔底丁烷濃度[1]、青霉素發(fā)酵過程產(chǎn)物濃度[2]、水質(zhì)中微生物濃度[3]等。軟測量技術(shù)根據(jù)易測量到的過程變量信息建立數(shù)學(xué)模型以實現(xiàn)關(guān)鍵質(zhì)量變量的實時估計,從而解決上述問題。常用的軟測量建模方法有主元回歸[4](Principal Component Regression,PCR)、高斯過程回歸[5](Gaussian Process Regression,GPR)、支持向量機[6](Support Vector Machine,SVM)、偏最小二乘(Partial Least Squares,PLS[7])等。
極限學(xué)習(xí)機(Extreme Learning Machine,ELM)是由Huang[8~9]等提出的一種單隱層前饋神經(jīng)網(wǎng)絡(luò)(Single-hidden Layer Feedforward Network,SFLN)訓(xùn)練算法,該算法首先隨機賦值給輸入權(quán)值和偏置,通過激活函數(shù)實現(xiàn)非線性轉(zhuǎn)換,再根據(jù)最小二乘法求得輸出權(quán)值矩陣。在極限學(xué)習(xí)機中,激活函數(shù)中的速率參數(shù)a和位移參數(shù)b以及目標(biāo)函數(shù)中的懲罰系數(shù)C對模型精度影響很大。
由于工業(yè)過程中確定關(guān)鍵質(zhì)量變量的值需要花費大量的時間和經(jīng)濟,收集到的大部分?jǐn)?shù)據(jù)樣本通常只含輸入數(shù)據(jù)、僅有少量數(shù)據(jù)樣本同時包含輸入輸出數(shù)據(jù)。一般地,將僅包含輸入而缺失輸出數(shù)據(jù)的樣本稱為未標(biāo)記樣本,將同時包含輸入輸出數(shù)據(jù)的樣本稱為標(biāo)記樣本。若僅采用少量有標(biāo)記樣本對模型進行訓(xùn)練,則軟測量模型的預(yù)測精度和泛化能力將很難令人滿意,并且丟棄大量的未標(biāo)記樣本造成了嚴(yán)重的數(shù)據(jù)浪費。為此有必要引進半監(jiān)督學(xué)習(xí)[10~12]方法,利用大量未標(biāo)記樣本輔以少量標(biāo)記樣本來提高模型的學(xué)習(xí)性能。常用的半監(jiān)督學(xué)習(xí)范式包括分歧式方法、圖方法、半監(jiān)督支持向量機和生成式模型。圖方法將數(shù)據(jù)集之間的聯(lián)系映射為一個無向圖[13~15],利用流形正則化將未標(biāo)記數(shù)據(jù)和目標(biāo)函數(shù)聯(lián)系起來,是一種廣泛采用的半監(jiān)督學(xué)習(xí)方法。因此,本文將流形正則化框架引入極限學(xué)習(xí)機,在充分利用無標(biāo)記樣本信息的同時提高模型的泛化能力。
雖然半監(jiān)督極限學(xué)習(xí)機能夠在大量無標(biāo)記樣本的情況下有效提升模型精度,但較多的模型參數(shù)為優(yōu)化帶來了困難。除傳統(tǒng)有監(jiān)督極限學(xué)習(xí)機包含a,b,C外,半監(jiān)督極限學(xué)習(xí)機又新增了相似度矩陣核寬參數(shù)σ和流形正則項的系數(shù)λ兩個參數(shù)。參數(shù)對模型精度起關(guān)鍵作用,參數(shù)選擇不當(dāng)會造成模型學(xué)習(xí)性能下降,泛化能力差。為了確定模型參數(shù),可以采用群智能優(yōu)化算法對模型中的多個參數(shù)進行優(yōu)化。群智能優(yōu)化算法是一種模擬自然界生態(tài)系統(tǒng)機制的優(yōu)化算法,常見的群智能優(yōu)化算法有[16~18]蟻群算法、粒子群算法、遺傳算法、頭腦風(fēng)暴算法、魚群算法等。自然界中,蝙蝠生活在黑暗環(huán)境中,無法靠視覺識別周圍環(huán)境,其利用回聲定位器發(fā)出脈沖,根據(jù)反彈回來的回聲判斷物體的位置、距離、特征。蝙蝠算法[19~20]正是基于此基礎(chǔ)上產(chǎn)生的,利用回聲定位的原理不斷調(diào)整脈沖發(fā)射度和響度從而尋找到食物,該算法具有結(jié)構(gòu)簡單、搜索能力強等特點。
綜上所述,本文通過半監(jiān)督學(xué)習(xí)方法將少量有標(biāo)記樣本和大量無標(biāo)記樣本結(jié)合,并應(yīng)用于極限學(xué)習(xí)機模型中;利用蝙蝠算法對模型中的參數(shù)(a,b,σ,C,λ)進行全局搜索尋優(yōu),得到最優(yōu)參數(shù)的半監(jiān)督極限學(xué)習(xí)機軟測量模型。此模型不僅解決了極限學(xué)習(xí)機收斂性差的問題,同時也克服了隨機選取參數(shù)導(dǎo)致精度不穩(wěn)定的問題,提高了模型的預(yù)測精度。最后,將本文方法應(yīng)用于污水處理中生物需氧量含量和脫丁烷塔塔底丁烷濃度的仿真實驗研究,與不同的建模方法比較后,驗證了該方法的有效性和適用性。
極限學(xué)習(xí)機是由Huang 提出的一種單隱層前饋神經(jīng)網(wǎng)絡(luò)(Single-hidden Layer Feedforward Networks,SLFNs)學(xué)習(xí)算法,該算法首先確定隱含層神經(jīng)元節(jié)點個數(shù),再隨機賦值給輸入層的輸入權(quán)值和偏置,通過最小二乘方法求解得隱含層和輸出層之間的輸出權(quán)值。該算法不僅克服了傳統(tǒng)梯度算法的復(fù)雜迭代問題,而且其訓(xùn)練速度快、泛化能力強。極限學(xué)習(xí)機用于回歸問題時,訓(xùn)練的步驟分為隨機學(xué)習(xí)和計算輸出權(quán)值。
極限學(xué)習(xí)機的訓(xùn)練目標(biāo)為最小化預(yù)測誤差,其目標(biāo)函數(shù)為
其中ei∈Rm為第i個輸出樣本的訓(xùn)練誤差,C為懲罰系數(shù)。
將約束條件帶入目標(biāo)函數(shù)后,可轉(zhuǎn)換為無約束優(yōu)化問題:
上述函數(shù)可認(rèn)為是嶺回歸的問題,將LELM相對于β的梯度設(shè)為0,得到:
于是可將輸出權(quán)值β表為
流形正則化的本質(zhì)是將原特征空間的數(shù)據(jù)映射到新的空間[21~22],并保留原特征空間中數(shù)據(jù)的局部幾何關(guān)系,旨在充分挖掘數(shù)據(jù)的非線性幾何特性。需最小化的目標(biāo)函數(shù)如下:
其中f(xi)和f(xj)分別是輸入樣本xi和xj的模型預(yù)測輸出,wij是xi和xj間的相似度。采用高斯函數(shù)計算相似度,可得相似度矩陣W:
其中kNN(xj)表示樣本xj的近鄰。
通過數(shù)學(xué)計算將目標(biāo)函數(shù)展開:
其中,tr(·) 表示矩陣的跡,nl為標(biāo)記樣本個數(shù),nu為未標(biāo)記樣本個數(shù),為 模 型 預(yù) 測輸出,矩陣L=D-W是拉普拉斯矩陣。
半監(jiān)督極限學(xué)習(xí)機采用流形學(xué)習(xí),通過樣本間的幾何關(guān)系讓未標(biāo)記樣本輔以標(biāo)記樣本學(xué)習(xí)。利用流形正則化將幾何關(guān)系與預(yù)測誤差聯(lián)系起來,提升模型的預(yù)測精度。
在半監(jiān)督極限學(xué)習(xí)機訓(xùn)練過程中,不同類的數(shù)據(jù)對訓(xùn)練效果的影響不同。模型傾向于訓(xùn)練所含樣本個數(shù)較多的類,為了提高模型的預(yù)測精度,在預(yù)測誤差前各加不同的懲罰系數(shù)因子,以此平衡各個類中數(shù)據(jù)對模型的影響程度。假設(shè)訓(xùn)練樣本中xi屬于類ti,類ti中含Nti個訓(xùn)練樣本,對每個樣本的預(yù)測誤差乘以一個懲罰參數(shù)Ci:
其中C為懲罰系數(shù)。由此將半監(jiān)督極限學(xué)習(xí)機約束問題轉(zhuǎn)換為無約束問題:
其中,Y′為根據(jù)實際輸出樣本擴展得到的,前s 行為標(biāo)記的輸出樣本,其余行均為0 ;C=diag(C1,…,Cnl)為懲罰系數(shù)組成對角矩陣。通對式(12)求β的梯度,可得
求解可得:
蝙蝠對自身發(fā)出超聲波及接收到回聲的時差建立周圍環(huán)境的映像,利用回聲定位原理感知食物的距離、大小及運動方向。蝙蝠算法是模仿蝙蝠搜尋食物的過程而演化出的一種優(yōu)化算法,首先初始化每只蝙蝠的位置和速度,把蝙蝠的位置看成待尋優(yōu)問題的解,在每次迭代后對每只蝙蝠相對應(yīng)的適應(yīng)度函數(shù)值進行排序,找出位置最佳的蝙蝠xb。每次迭代中,利用回聲定位原理進行位置和速度的更新,其中頻率決定了蝙蝠搜索的范圍,如下:
其中,θ均勻分布在[0 ,1] 中,fi表示第i只蝙蝠的當(dāng)前頻率值,fmax和fmin分別代表蝙蝠搜索頻率的最大值和最小值表示第i只蝙蝠在t 時刻時的速度,表示第i只蝙蝠在t時刻時的位置。
在迭代時,對當(dāng)次迭代的最優(yōu)位置進行局部尋優(yōu),探索最優(yōu)解的附近區(qū)域。在最優(yōu)位置附近隨機生成一個新的解:
其中,ε是[- 1,1] 中的隨機數(shù),A(t)為t 時刻所有蝙蝠的平均響度,xold為當(dāng)前最優(yōu)位置。
在蝙蝠靠近食物時,會加快脈沖發(fā)射速率并減小響度,直至吃到食物。在蝙蝠算法的尋優(yōu)過程中,沒找到一個最優(yōu)位置時,頻度r和響度A均會進行相應(yīng)的更新:
其中α∈( 0,1) ,γ>0,通常?。害?0.9,γ=0.9。脈沖頻度和響度的變化一定程度上反映著距離目標(biāo)的遠近程度。
綜上所述以上分析,蝙蝠算法步驟為
1)初始化蝙蝠個數(shù)n1、迭代次數(shù)N1、維數(shù)d、位置xi、速度vi、頻率范圍[fmin,fmax] 、頻率fi、初始脈沖頻度Ai和響度ri;
2)定義適應(yīng)度函數(shù)q(x);
3)根據(jù)頻率fi對每只蝙蝠的位置和速度進行更新;
4)若滿足(rand>ri),在最佳位置處隨機產(chǎn)生一個新的位置x′;
5)根據(jù)新的位置求出qnew,若滿足(rand>Aiq(x′)<q(xb)),接收新值并對頻度和響度進行更新;
6)根據(jù)各只蝙蝠的適應(yīng)度函數(shù)值重新排列選出當(dāng)前時刻的最佳位置;
7)迭代次數(shù)未達到設(shè)定次數(shù),返回至3);
8)輸出迭代N1次后的最佳位置xb。
蝙蝠算法中的位置和速度更新方式類似于標(biāo)準(zhǔn)粒子群算法中的更新方式。不過,在蝙蝠算法中,通過調(diào)節(jié)頻率fi大小進而控制每只蝙蝠的搜索范圍。所以,蝙蝠算法的突出特點是使用頻率和參數(shù)調(diào)整進行全局尋優(yōu)。
基于流形正則化的半監(jiān)督極限學(xué)習(xí)機的性能受多個參數(shù)影響:激活函數(shù)中的速率參數(shù)a與位移參數(shù)b、核寬σ、懲罰系數(shù)C和權(quán)重λ。參數(shù)選擇不當(dāng)時,會大大影響模型的預(yù)測輸出。為提高模型的預(yù)測精度,利用蝙蝠算法對基于流形正則化的半監(jiān)督極限學(xué)習(xí)機進行參數(shù)尋優(yōu),每只蝙蝠的位置相當(dāng)于待尋優(yōu)的最優(yōu)解組合(a,b,σ,C0,λ)。
圖1 為蝙蝠算法優(yōu)化半監(jiān)督極限學(xué)習(xí)機的流程。
圖1 BA優(yōu)化SS-ELM參數(shù)的流程圖
基于蝙蝠算法的半監(jiān)督極限學(xué)習(xí)機的訓(xùn)練步驟為
Step1:根據(jù)收集到的訓(xùn)練樣本,構(gòu)建半監(jiān)督極限學(xué)習(xí)機網(wǎng)絡(luò)結(jié)構(gòu);
Step2:初始化蝙蝠算法相關(guān)參數(shù):蝙蝠個數(shù)n1、迭代次數(shù)N1、維數(shù)d、速度vi、頻率范圍[fmin,fmax] 、頻率fi、初始脈沖頻度Ai和響度ri;
Step3:隨機產(chǎn)生一組數(shù)據(jù)(a,b,σ,C0,λ)作為蝙蝠的初始位置xi;通過比較每只蝙蝠對應(yīng)的適應(yīng)度值更新各自的速度和位置;
Step4:判斷迭代次數(shù)是否達到設(shè)定次數(shù),若達到,得到蝙蝠的最佳位置xb,即模型的最優(yōu)參數(shù);否則繼續(xù)對模型參數(shù)進行迭代尋優(yōu);
脫丁烷塔過程是工業(yè)石油煉制中脫硫和石油腦分離的組成部分[23],塔底丁烷濃度對煉制出的石油品質(zhì)影響很大且不易通過在線儀器直接測量。在工業(yè)生產(chǎn)中需要對其嚴(yán)格監(jiān)測和控制,為此采用軟測量技術(shù)對丁烷濃度進行預(yù)測。圖2 為脫丁烷塔過程示意圖。
圖2 脫丁烷塔過程示意圖
選取脫丁烷塔過程中易測得的7 個變量為輔導(dǎo)變量,作為軟測量模型的輸入,各輔助變量的說明如表1 所示,相應(yīng)的輔助變量測試儀器安裝位置標(biāo)注在圖2 圈出部分;主導(dǎo)變量為脫丁烷塔塔底丁烷濃度。
表1 脫丁烷塔的輸入變量及其描述
共收集到2000 組過程數(shù)據(jù),其中1000 組作為訓(xùn)練樣本,剩下1000 組作為測試樣本,接著對訓(xùn)練樣本作歸一化處理。基于以上數(shù)據(jù)集分別建立三種軟測量模型:有監(jiān)督ELM 模型、半監(jiān)督ELM 模型和蝙蝠算法優(yōu)化的半監(jiān)督ELM 模型,進行實驗仿真并比較各模型效果。采用均方根誤差RMSE和相關(guān)系數(shù)COR作為模型的性能指標(biāo):
其中ntest是樣本個數(shù),ytest,i和ypred,i分別表示第i個測試樣本的真實值和預(yù)測值,而- ---ytest和- -----ypred分別為測試樣本真實值和預(yù)測值的平均值。
表2 所示為三種軟測量模型的預(yù)測結(jié)果,分析可得:在有標(biāo)記樣本數(shù)量較少時,有監(jiān)督的ELM 并不能較好地預(yù)測丁烷濃度;為利用大量無標(biāo)記樣本,引入半監(jiān)督學(xué)習(xí)后一定程度上能夠提高模型的預(yù)測精度;由于半監(jiān)督ELM 模型中含5 個參數(shù):a,b,σ,C0,λ,這些參數(shù)選擇的不同,會造成模型的預(yù)測精度不穩(wěn)定,故利用優(yōu)化算法找到模型的最優(yōu)參數(shù)。在半監(jiān)督ELM 中引入蝙蝠算法,利用其回聲定位原理快速找到模型的最優(yōu)參數(shù),能夠提高模型的預(yù)測精度。由此可見,本文方法能夠有效預(yù)測脫丁烷塔塔底丁烷的濃度。
表2 三種建模方法的預(yù)測結(jié)果比較
圖3 所示為三種模型的仿真結(jié)果,由圖比較分析可得:BA-SSELM 模型對脫丁烷塔塔底丁烷濃度的預(yù)測值與真實值較為接近,利用蝙蝠算法較好的全局尋優(yōu)性能,能夠快速找到適合模型的全局最優(yōu)參數(shù),使得模型的輸出緊湊地跟隨實際值的變化,說明BA-SSELM模型的預(yù)測結(jié)果較準(zhǔn)確,對丁烷濃度的預(yù)測效果更佳。相比于有監(jiān)督極限學(xué)習(xí)機,本文所提方法對丁烷濃度的擬合效果更好,預(yù)測精度也更高。
圖3 ELM、SSELM、BA-SSELM的仿真結(jié)果
為充分利用訓(xùn)練樣本集中的無標(biāo)記數(shù)據(jù),通過流形正則化框架,在極限學(xué)習(xí)機中采用半監(jiān)督學(xué)習(xí)方法。并利用蝙蝠算法對半監(jiān)督極限學(xué)習(xí)機模型中的a,b,σ,C0,λ這五個參數(shù)優(yōu)化以獲得模型的最優(yōu)參數(shù),從而提高模型的泛化能力。通過污水處理中BOD 含量和脫丁烷塔塔底丁烷(C4)濃度的仿真實驗,驗證了本文方法能夠提高對工業(yè)過程中關(guān)鍵質(zhì)量變量的預(yù)測精度并具有較好的泛化性能。