金秀章,張少康
(華北電力大學 控制與計算機工程學院,河北 保定 071003)
人工神經網絡已經被廣泛的研究,但是很少應用到工業中,主要是因為神經網絡需要大量的時間來進行訓練,不能滿足工業上的需求[1]。極限學習機(ELM)具有學習速度快、泛化能力強的特點[2],并被許多學者研究。將遞推思想引入ELM中,提出了在線貫序極限學習機[3](OS-ELM)。
OS-ELM算法認為新舊訓練數據的權重是相同的,對于時變系統而言,預測的效果并不理想[4]。雖然加入l2-正則化的算法可以降低對隱含層節點的依賴程度,但是仍然不能有效確定節點數,隱含層節點的多少會對預測產生很大的影響,節點較少不能完全表達數據信息[5],節點過多可能出現過擬合的情況,降低預測的精度[6]。
基于上述問題,提出了一種基于自適應遺忘因子和靈敏度剪枝的極限學習機(SAFFOS-RELM),自適應遺忘因子可以根據每次新到的數據進行更新,靈敏度剪枝算法可以優化初始的網絡結構,在保證預測精度的條件下得到最優的隱含層節點數,減小計算的時間,將此算法應用到Mackey-Glass混沌時間序列和脫硝系統的入口氮氧化物時間序列中,并和OS-RELM、FFOS-RELM算法進行了對比,準確性和泛化能力得到了提高。
OS-ELM的SLFN回歸模型為

(1)
式中:g(·)為激活函數,ai和bi為隱層的參數,βi為隱含層第i個節點到輸出層之間的權值,L為隱層節點數。


(2)
將式(2)改為矩陣形式,如下所示
Hβ=y
(3)
式中
(4)

(5)
貫序更新階段只對輸出權重β進行更新,矩陣H中的參數是隨機得到的,輸出權重的公式如下

(6)

通過對式(6)的推導可以得OS-ELM算法的步驟如下:

1)建立一個初始訓練數據D0。
2)選取激活函數g(·),隨機產生隱含層參數ai和bi,i=1,2,…,L。
3)根據式(4)計算H0。

5)令k=0。
(2)貫序更新階段:
1)根據式(4)和第k+1次的數據得到Hk+1。
2)根據下式計算每次的輸出權值公式

3)令k=k+1,返回(2)中的步驟1)繼續執行。
OS-ELM中加入l2-正則化方法避免矩陣HTH出現奇異的情況,降低網絡預測誤差。加入l2-正則化方法[9],轉化為以下尋優問題
(7)
式中:C為正則化系數,對式(7)求解可以得出
β=(HTH+I/C)-1HTy
(8)
則FFOS-RELM算法的遞推公式如下:
根據式(8)可知,初始的輸出權重為

(9)

(10)


(11)
式中

(12)

(13)
把式(13)帶入式(11)可得

(14)
依次類推,可得遞推公式如下
(15)

(16)
(17)

(18)

(19)
OS-RELM算法的輸出權重在更新時新舊數據占的比重是相同的,對于時變系統,新數據更能體現當前的情況。這里加入遺忘因子,根據新到的數據信息來更新輸出權值,對新數據更加敏感,非常適合時變系統[11]。新來的數據個數Tk+1=1,在貫序更新階段把式(19)變為

(20)

(21)
(22)
(23)
(24)
式中:εk+1為中間變量,λk為第k次的遺忘因子,并且滿足0<λk≤1,λk越小,則舊數據的影響越小,第k+1次的遺忘因子公式如下

(25)

(26)

(27)
vk+1=λk(vk+1)
(28)
式中:ρ是一個固定的常數,初始的γ和v是0到1之間的數,遺忘因子越大代表舊數據占的比重越大,遺忘因子越小,新數據占的比重越大。
FFOS-RELM算法具體步驟如下:

1)選取激活函數g(·),隨機產生隱含層參數ai和bi,i=1,2…L。
2)根據式(4)、D0計算H0。

4)令k=0。
(2)貫序更新階段
1)當第k+1次數據到來時,根據式(4)求得Hk+1。

3)如果ξk+1=0,則令Pk+1=Pk;如果ξk+1>0,則根據式(23)、式(24)求得Pk+1。
4)根據式(26)、式(27)、式(28)計算ηk+1、γk+1、vk+1。
5)根據式(25)計算下一步的遺忘因子λk+1,返回(2)中1)繼續執行。
上述的FFOS-RELM算法加入了正則化機制降低了對隱含層節點數的依賴性,但仍然不能確定隱層節點數,這里根據靈敏度剪枝算法來優化初始的網絡結構,提高計算的速度和準確度。
2.2.1 靈敏度和網絡規模適應度定義
記
kij=gi(xj)=g(aixj+bi)
(29)
i=1,2,…N0
由式(2)可以得到輸入為xj時的預測值yj為
yj=k1jβ1+k2jβ2+…+kLjβL
(30)
假設刪除第一個節點,則網絡的輸出變為

(31)
由式(30)和式(31)可得殘差為
(32)
由式(32)可知,根據殘差定義第i個節點的靈敏度為
(33)
式中:N0為初始訓練樣本的個數,kij為第j個輸入在第i個隱層節點下的輸出,βi為隱層第i個節點的輸出權值,可以看出靈敏度越大,代表節點的重要性越大,把靈敏度進行排序,如下所示

(34)
由靈敏度定義網絡規模適應度為

(35)
Mk越大,殘差越小,可以設置閾值來確定網絡的規模,公式如下
M=minkMk≥θ,1≤k≤L
(36)
式中:θ為設定的閾值,網絡規模為M,剔除L-M個節點,閾值的大小通過試湊法得到,為了保存剔除的數據,需要對隱含層參數進一步更新。
2.2.2 權值的更新
剔除的隱層節點參數信息平均加到剩余節點,設M為剩余的節點數,L-M為剔除的節點,記R={i1,i2,…iM}是保留的節點數,D=d1,d2,…dL-M是剔除的節點,則隱層參數更新公式為
(37)
混沌系統常用來檢驗非線性系統性能[12,13],Mackey-Glass混沌時間序列方程如下所示

式中:τ為可調的時滯參數,當τ>17的時候出現混沌現象,并且τ值越大現象越明顯,利用四階龍格-庫塔法尋找方程的解,用如下方式選取1000個數據
[y(t-18),y(t-12),y(t-6),y(t);y(t+6)]
式中:t=19,20,…,1018,前四項作為輸入,最后一項為輸出。選取初始的訓練數據為150,初始的隱含層節點數為100,初始的遺忘因子λ0=1,γ0、v0為0到1之間的隨機數,固定常數ρ=3.8,正則化系數C=1000。靈敏度剪枝算法中的閾值對網絡性能影響很大,設置范圍為[0,1],間隔為0.1,仿真結果如圖1所示,可以看出隨著θ的增大,被刪除的節點數越少,RMSE隨之變小,從圖1中可以看出選取閾值范圍在[0.6,1]之間,可以有效表達網絡的結構。

圖1 網絡規模適應度和隱含層節點的關系
綜合考慮預測的時間和精度,選取γ=0.7,此時剩余的節點數為37。比較不同算法下以平均絕對值誤差、均方根誤差和時間,公式如下

與OS-RELM、FFOS-RELM算法進行比較,結果見表1。

表1 6步預測的結果
從表1可以看出,FFOS-RELM算法由于加入了遺忘因子,預測的準確性得到了很大的提升,并且訓練時間和OS-RELM幾乎一樣,SAFFOS-RELM對初始的網絡進行了剪枝,得到了更加緊湊的網絡結構,可以看出大大節省了預測時間,并且預測精度也得到了提高,為了更直觀觀察,圖2畫出了不同算法下的誤差曲線。

圖2 入口氮氧化物誤差曲線
為了進一步驗證SAFFOS-RELM算法的有效性,實驗數據選取某660M電廠的脫硝系統,數據之間的間隔為10 s,通過對數據進行剔除異常值處理,選取了不同負荷下的320個數據,對數據進行歸一化處理,方便網絡的計算。初始的訓練數據T0=150,隱含層個數為100,正則化系數C=1000,初始的遺忘因子γ0=1,γ0、v0為0到1之間的隨機數,固定常數ρ=3.8,網絡規模適應度閾值θ=0.8,剩余的節點為25。入口氮氧化物的預測模型如下
y(t+D)=f(y(t-1),y(t-2),…y(t-Δ))
其中,D為預測步長,Δ為嵌入維數,選取Δ=4;對數據進行多步預測,這里選取D=3,并計算預測時間、絕對值平均誤差、均方根誤差,并和OS-RELM、FFOS-RELM算法進行比較,見表2。
從表2中可以看出,預測的平均絕對值誤差和均方根誤差從大到小為:OS-RELM、FFOS-RELM、SAFFOS-RELM,因為加入自適應遺忘因子的FFOS-RELM算法可以根據新到的數據改變舊樣本和新樣本之間的權重,預測精度得到了提高,加入靈敏度剪枝算法得到更加緊湊的網絡,提高了網絡的泛化能力;預測時間從大到小為:FFOS-RELM、OS-RELM、SAFFOS-RELM,剪枝算法使網絡結構更緊湊,運算速度得到了大大的提升,并且因為刪除了隱含層冗余節點數,提高了預測精度。圖3給出了在不同算法下的預測值和真實值,圖4給出了不同算法下的相對誤差,由圖4可以看出SAFFOS-RELM的相對誤差在3%以內,可以有效地預測。

表2 3步預測的結果

圖3 入口氮氧化物的3步預測結果

圖4 入口氮氧化物3步預測相對誤差
本文提出了一種基于遺忘因子與靈敏度剪枝的極限學習機(SAFFOS-RELM)。加入自適應遺忘因子,賦予了新舊樣本不同的權值,更加適用于時變系統,利用靈敏度剪枝算法對初始的網絡結構進行優化,刪除了網絡中的冗余節點,得到最佳的網絡結構,以Mackey-Glass混沌時間序列和入口氮氧化物時間序列為例驗證了算法的泛化能力。仿真結果表明,SAFFOS-RELM算法的計算時間和模型泛化能力都要優于FFOS-RELM、OS-RELM算法,對于工業中的其它時變系統的時間序列也同樣適用。