金秀章,張少康
(華北電力大學(xué) 控制與計(jì)算機(jī)工程學(xué)院,河北 保定 071003)
人工神經(jīng)網(wǎng)絡(luò)已經(jīng)被廣泛的研究,但是很少應(yīng)用到工業(yè)中,主要是因?yàn)樯窠?jīng)網(wǎng)絡(luò)需要大量的時(shí)間來進(jìn)行訓(xùn)練,不能滿足工業(yè)上的需求[1]。極限學(xué)習(xí)機(jī)(ELM)具有學(xué)習(xí)速度快、泛化能力強(qiáng)的特點(diǎn)[2],并被許多學(xué)者研究。將遞推思想引入ELM中,提出了在線貫序極限學(xué)習(xí)機(jī)[3](OS-ELM)。
OS-ELM算法認(rèn)為新舊訓(xùn)練數(shù)據(jù)的權(quán)重是相同的,對(duì)于時(shí)變系統(tǒng)而言,預(yù)測(cè)的效果并不理想[4]。雖然加入l2-正則化的算法可以降低對(duì)隱含層節(jié)點(diǎn)的依賴程度,但是仍然不能有效確定節(jié)點(diǎn)數(shù),隱含層節(jié)點(diǎn)的多少會(huì)對(duì)預(yù)測(cè)產(chǎn)生很大的影響,節(jié)點(diǎn)較少不能完全表達(dá)數(shù)據(jù)信息[5],節(jié)點(diǎn)過多可能出現(xiàn)過擬合的情況,降低預(yù)測(cè)的精度[6]。
基于上述問題,提出了一種基于自適應(yīng)遺忘因子和靈敏度剪枝的極限學(xué)習(xí)機(jī)(SAFFOS-RELM),自適應(yīng)遺忘因子可以根據(jù)每次新到的數(shù)據(jù)進(jìn)行更新,靈敏度剪枝算法可以優(yōu)化初始的網(wǎng)絡(luò)結(jié)構(gòu),在保證預(yù)測(cè)精度的條件下得到最優(yōu)的隱含層節(jié)點(diǎn)數(shù),減小計(jì)算的時(shí)間,將此算法應(yīng)用到Mackey-Glass混沌時(shí)間序列和脫硝系統(tǒng)的入口氮氧化物時(shí)間序列中,并和OS-RELM、FFOS-RELM算法進(jìn)行了對(duì)比,準(zhǔn)確性和泛化能力得到了提高。
OS-ELM的SLFN回歸模型為
(1)
式中:g(·)為激活函數(shù),ai和bi為隱層的參數(shù),βi為隱含層第i個(gè)節(jié)點(diǎn)到輸出層之間的權(quán)值,L為隱層節(jié)點(diǎn)數(shù)。
(2)
將式(2)改為矩陣形式,如下所示
Hβ=y
(3)
式中
(4)
(5)
貫序更新階段只對(duì)輸出權(quán)重β進(jìn)行更新,矩陣H中的參數(shù)是隨機(jī)得到的,輸出權(quán)重的公式如下
(6)
通過對(duì)式(6)的推導(dǎo)可以得OS-ELM算法的步驟如下:
1)建立一個(gè)初始訓(xùn)練數(shù)據(jù)D0。
2)選取激活函數(shù)g(·),隨機(jī)產(chǎn)生隱含層參數(shù)ai和bi,i=1,2,…,L。
3)根據(jù)式(4)計(jì)算H0。
5)令k=0。
(2)貫序更新階段:
1)根據(jù)式(4)和第k+1次的數(shù)據(jù)得到Hk+1。
2)根據(jù)下式計(jì)算每次的輸出權(quán)值公式
3)令k=k+1,返回(2)中的步驟1)繼續(xù)執(zhí)行。
OS-ELM中加入l2-正則化方法避免矩陣HTH出現(xiàn)奇異的情況,降低網(wǎng)絡(luò)預(yù)測(cè)誤差。加入l2-正則化方法[9],轉(zhuǎn)化為以下尋優(yōu)問題
(7)
式中:C為正則化系數(shù),對(duì)式(7)求解可以得出
β=(HTH+I/C)-1HTy
(8)
則FFOS-RELM算法的遞推公式如下:
根據(jù)式(8)可知,初始的輸出權(quán)重為
(9)
(10)
(11)
式中
(12)
(13)
把式(13)帶入式(11)可得
(14)
依次類推,可得遞推公式如下
(15)
(16)
(17)
(18)
(19)
OS-RELM算法的輸出權(quán)重在更新時(shí)新舊數(shù)據(jù)占的比重是相同的,對(duì)于時(shí)變系統(tǒng),新數(shù)據(jù)更能體現(xiàn)當(dāng)前的情況。這里加入遺忘因子,根據(jù)新到的數(shù)據(jù)信息來更新輸出權(quán)值,對(duì)新數(shù)據(jù)更加敏感,非常適合時(shí)變系統(tǒng)[11]。新來的數(shù)據(jù)個(gè)數(shù)Tk+1=1,在貫序更新階段把式(19)變?yōu)?/p>
(20)
(21)
(22)
(23)
(24)
式中:εk+1為中間變量,λk為第k次的遺忘因子,并且滿足0<λk≤1,λk越小,則舊數(shù)據(jù)的影響越小,第k+1次的遺忘因子公式如下
(25)
(26)
(27)
vk+1=λk(vk+1)
(28)
式中:ρ是一個(gè)固定的常數(shù),初始的γ和v是0到1之間的數(shù),遺忘因子越大代表舊數(shù)據(jù)占的比重越大,遺忘因子越小,新數(shù)據(jù)占的比重越大。
FFOS-RELM算法具體步驟如下:
1)選取激活函數(shù)g(·),隨機(jī)產(chǎn)生隱含層參數(shù)ai和bi,i=1,2…L。
2)根據(jù)式(4)、D0計(jì)算H0。
4)令k=0。
(2)貫序更新階段
1)當(dāng)?shù)趉+1次數(shù)據(jù)到來時(shí),根據(jù)式(4)求得Hk+1。
3)如果ξk+1=0,則令Pk+1=Pk;如果ξk+1>0,則根據(jù)式(23)、式(24)求得Pk+1。
4)根據(jù)式(26)、式(27)、式(28)計(jì)算ηk+1、γk+1、vk+1。
5)根據(jù)式(25)計(jì)算下一步的遺忘因子λk+1,返回(2)中1)繼續(xù)執(zhí)行。
上述的FFOS-RELM算法加入了正則化機(jī)制降低了對(duì)隱含層節(jié)點(diǎn)數(shù)的依賴性,但仍然不能確定隱層節(jié)點(diǎn)數(shù),這里根據(jù)靈敏度剪枝算法來優(yōu)化初始的網(wǎng)絡(luò)結(jié)構(gòu),提高計(jì)算的速度和準(zhǔn)確度。
2.2.1 靈敏度和網(wǎng)絡(luò)規(guī)模適應(yīng)度定義
記
kij=gi(xj)=g(aixj+bi)
(29)
i=1,2,…N0
由式(2)可以得到輸入為xj時(shí)的預(yù)測(cè)值yj為
yj=k1jβ1+k2jβ2+…+kLjβL
(30)
假設(shè)刪除第一個(gè)節(jié)點(diǎn),則網(wǎng)絡(luò)的輸出變?yōu)?/p>
(31)
由式(30)和式(31)可得殘差為
(32)
由式(32)可知,根據(jù)殘差定義第i個(gè)節(jié)點(diǎn)的靈敏度為
(33)
式中:N0為初始訓(xùn)練樣本的個(gè)數(shù),kij為第j個(gè)輸入在第i個(gè)隱層節(jié)點(diǎn)下的輸出,βi為隱層第i個(gè)節(jié)點(diǎn)的輸出權(quán)值,可以看出靈敏度越大,代表節(jié)點(diǎn)的重要性越大,把靈敏度進(jìn)行排序,如下所示
(34)
由靈敏度定義網(wǎng)絡(luò)規(guī)模適應(yīng)度為
(35)
Mk越大,殘差越小,可以設(shè)置閾值來確定網(wǎng)絡(luò)的規(guī)模,公式如下
M=minkMk≥θ,1≤k≤L
(36)
式中:θ為設(shè)定的閾值,網(wǎng)絡(luò)規(guī)模為M,剔除L-M個(gè)節(jié)點(diǎn),閾值的大小通過試湊法得到,為了保存剔除的數(shù)據(jù),需要對(duì)隱含層參數(shù)進(jìn)一步更新。
2.2.2 權(quán)值的更新
剔除的隱層節(jié)點(diǎn)參數(shù)信息平均加到剩余節(jié)點(diǎn),設(shè)M為剩余的節(jié)點(diǎn)數(shù),L-M為剔除的節(jié)點(diǎn),記R={i1,i2,…iM}是保留的節(jié)點(diǎn)數(shù),D=d1,d2,…dL-M是剔除的節(jié)點(diǎn),則隱層參數(shù)更新公式為
(37)
混沌系統(tǒng)常用來檢驗(yàn)非線性系統(tǒng)性能[12,13],Mackey-Glass混沌時(shí)間序列方程如下所示
式中:τ為可調(diào)的時(shí)滯參數(shù),當(dāng)τ>17的時(shí)候出現(xiàn)混沌現(xiàn)象,并且τ值越大現(xiàn)象越明顯,利用四階龍格-庫(kù)塔法尋找方程的解,用如下方式選取1000個(gè)數(shù)據(jù)
[y(t-18),y(t-12),y(t-6),y(t);y(t+6)]
式中:t=19,20,…,1018,前四項(xiàng)作為輸入,最后一項(xiàng)為輸出。選取初始的訓(xùn)練數(shù)據(jù)為150,初始的隱含層節(jié)點(diǎn)數(shù)為100,初始的遺忘因子λ0=1,γ0、v0為0到1之間的隨機(jī)數(shù),固定常數(shù)ρ=3.8,正則化系數(shù)C=1000。靈敏度剪枝算法中的閾值對(duì)網(wǎng)絡(luò)性能影響很大,設(shè)置范圍為[0,1],間隔為0.1,仿真結(jié)果如圖1所示,可以看出隨著θ的增大,被刪除的節(jié)點(diǎn)數(shù)越少,RMSE隨之變小,從圖1中可以看出選取閾值范圍在[0.6,1]之間,可以有效表達(dá)網(wǎng)絡(luò)的結(jié)構(gòu)。
圖1 網(wǎng)絡(luò)規(guī)模適應(yīng)度和隱含層節(jié)點(diǎn)的關(guān)系
綜合考慮預(yù)測(cè)的時(shí)間和精度,選取γ=0.7,此時(shí)剩余的節(jié)點(diǎn)數(shù)為37。比較不同算法下以平均絕對(duì)值誤差、均方根誤差和時(shí)間,公式如下
與OS-RELM、FFOS-RELM算法進(jìn)行比較,結(jié)果見表1。
表1 6步預(yù)測(cè)的結(jié)果
從表1可以看出,F(xiàn)FOS-RELM算法由于加入了遺忘因子,預(yù)測(cè)的準(zhǔn)確性得到了很大的提升,并且訓(xùn)練時(shí)間和OS-RELM幾乎一樣,SAFFOS-RELM對(duì)初始的網(wǎng)絡(luò)進(jìn)行了剪枝,得到了更加緊湊的網(wǎng)絡(luò)結(jié)構(gòu),可以看出大大節(jié)省了預(yù)測(cè)時(shí)間,并且預(yù)測(cè)精度也得到了提高,為了更直觀觀察,圖2畫出了不同算法下的誤差曲線。
圖2 入口氮氧化物誤差曲線
為了進(jìn)一步驗(yàn)證SAFFOS-RELM算法的有效性,實(shí)驗(yàn)數(shù)據(jù)選取某660M電廠的脫硝系統(tǒng),數(shù)據(jù)之間的間隔為10 s,通過對(duì)數(shù)據(jù)進(jìn)行剔除異常值處理,選取了不同負(fù)荷下的320個(gè)數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行歸一化處理,方便網(wǎng)絡(luò)的計(jì)算。初始的訓(xùn)練數(shù)據(jù)T0=150,隱含層個(gè)數(shù)為100,正則化系數(shù)C=1000,初始的遺忘因子γ0=1,γ0、v0為0到1之間的隨機(jī)數(shù),固定常數(shù)ρ=3.8,網(wǎng)絡(luò)規(guī)模適應(yīng)度閾值θ=0.8,剩余的節(jié)點(diǎn)為25。入口氮氧化物的預(yù)測(cè)模型如下
y(t+D)=f(y(t-1),y(t-2),…y(t-Δ))
其中,D為預(yù)測(cè)步長(zhǎng),Δ為嵌入維數(shù),選取Δ=4;對(duì)數(shù)據(jù)進(jìn)行多步預(yù)測(cè),這里選取D=3,并計(jì)算預(yù)測(cè)時(shí)間、絕對(duì)值平均誤差、均方根誤差,并和OS-RELM、FFOS-RELM算法進(jìn)行比較,見表2。
從表2中可以看出,預(yù)測(cè)的平均絕對(duì)值誤差和均方根誤差從大到小為:OS-RELM、FFOS-RELM、SAFFOS-RELM,因?yàn)榧尤胱赃m應(yīng)遺忘因子的FFOS-RELM算法可以根據(jù)新到的數(shù)據(jù)改變舊樣本和新樣本之間的權(quán)重,預(yù)測(cè)精度得到了提高,加入靈敏度剪枝算法得到更加緊湊的網(wǎng)絡(luò),提高了網(wǎng)絡(luò)的泛化能力;預(yù)測(cè)時(shí)間從大到小為:FFOS-RELM、OS-RELM、SAFFOS-RELM,剪枝算法使網(wǎng)絡(luò)結(jié)構(gòu)更緊湊,運(yùn)算速度得到了大大的提升,并且因?yàn)閯h除了隱含層冗余節(jié)點(diǎn)數(shù),提高了預(yù)測(cè)精度。圖3給出了在不同算法下的預(yù)測(cè)值和真實(shí)值,圖4給出了不同算法下的相對(duì)誤差,由圖4可以看出SAFFOS-RELM的相對(duì)誤差在3%以內(nèi),可以有效地預(yù)測(cè)。
表2 3步預(yù)測(cè)的結(jié)果
圖3 入口氮氧化物的3步預(yù)測(cè)結(jié)果
圖4 入口氮氧化物3步預(yù)測(cè)相對(duì)誤差
本文提出了一種基于遺忘因子與靈敏度剪枝的極限學(xué)習(xí)機(jī)(SAFFOS-RELM)。加入自適應(yīng)遺忘因子,賦予了新舊樣本不同的權(quán)值,更加適用于時(shí)變系統(tǒng),利用靈敏度剪枝算法對(duì)初始的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,刪除了網(wǎng)絡(luò)中的冗余節(jié)點(diǎn),得到最佳的網(wǎng)絡(luò)結(jié)構(gòu),以Mackey-Glass混沌時(shí)間序列和入口氮氧化物時(shí)間序列為例驗(yàn)證了算法的泛化能力。仿真結(jié)果表明,SAFFOS-RELM算法的計(jì)算時(shí)間和模型泛化能力都要優(yōu)于FFOS-RELM、OS-RELM算法,對(duì)于工業(yè)中的其它時(shí)變系統(tǒng)的時(shí)間序列也同樣適用。