趙 坤,覃錫忠+,賈振紅,王哲輝,牛紅梅
(1.新疆大學(xué) 信息科學(xué)與工程學(xué)院,新疆 烏魯木齊 830000; 2.新疆移動公司監(jiān)控中心,新疆 烏魯木齊 830000)
近年來,神經(jīng)網(wǎng)絡(luò)憑借著好的容錯率、魯棒性以及非線性擬合的能力,使其在時間序列預(yù)[1-3]問題方面成為研究的熱點之一。BP[4]、RBF[5、SVM[6]、DBN[7]以及它們的改進(jìn)算法[8-11]被相繼提出。但是人工神經(jīng)網(wǎng)絡(luò)存在固有的缺點:容易陷入局部最小,收斂速度慢,計算消耗時間長,網(wǎng)絡(luò)結(jié)構(gòu)不易確定等。
極端學(xué)習(xí)機(jī)[12](extreme learning machine,ELM),具有不易陷入局部最小、泛化能力好、調(diào)節(jié)參數(shù)少、訓(xùn)練時間短等優(yōu)點。但ELM的初始權(quán)值和閾值是隨機(jī)給定,隱層節(jié)點數(shù)無法確定,導(dǎo)致預(yù)測結(jié)果穩(wěn)定性差,文獻(xiàn)[13]中指出對于ELM的隱層節(jié)點數(shù)的確定依然是需要解決的問題。大多數(shù)學(xué)者使用組合算法來改進(jìn)ELM,來彌補(bǔ)這個問題帶來的缺陷。Yang等[14]提出一種改良的ELM算法,Geng等[15]提出一種FAPH-ELM的算法,但是都沒有涉及到對ELM模型結(jié)構(gòu)的改進(jìn),并且計算量大、模型復(fù)雜。還有學(xué)者選擇PSO[16]、GA[17]、DE[18]等尋優(yōu)算法改進(jìn)ELM模型,可以智能選取合適的網(wǎng)絡(luò)結(jié)構(gòu),有效地改善模型的性能。不過上述算法存在以下不足:①對ELM算法優(yōu)化時,需要設(shè)置較多參數(shù),耗時長;②改善模型的優(yōu)化算法全局搜索能力不強(qiáng);③預(yù)測結(jié)果不穩(wěn)定。布谷鳥搜索算法[19](cuckoo search,CS),一種新興啟發(fā)式算法,與傳統(tǒng)的優(yōu)化算法相比,結(jié)構(gòu)簡單,控制參數(shù)少、尋優(yōu)速度快、有較強(qiáng)的全局尋優(yōu)能力[20,21]。本文提出一種CS-ELM算法,采用兩種不同領(lǐng)域的時間序列數(shù)據(jù)對算法進(jìn)行驗證,采用單步預(yù)測和多步預(yù)測驗證CS-ELM算法預(yù)測性能和效果。
設(shè)m、M、n分別為網(wǎng)絡(luò)輸入層、隱含層和輸出層的節(jié)點數(shù),g(x)是隱層神經(jīng)元的激活函數(shù)。設(shè)有N個樣本(xi,ti),其中xi=[xi1,xi2,…,xim]T∈Rm,ti=[ti1,ti2,…,tin]T∈Rm則極限學(xué)習(xí)機(jī)的網(wǎng)絡(luò)模型可用數(shù)學(xué)表達(dá)式表示如下
(1)
其中,i=1,2,…,N,j=1,2,…,M,式中ωj=[ω1j,ω2j,…,ωmj]、βj=[βj1,βj2,…,βjn]、bj分別表示連接網(wǎng)絡(luò)輸入層節(jié)點與第j個隱層節(jié)點的輸入權(quán)值向量、連接第j個隱層節(jié)點與網(wǎng)絡(luò)輸出層節(jié)點的輸出權(quán)值向量、第j個隱含層節(jié)點的偏差。把N個樣本帶入到式(1)中,得
T=Hβ
(2)
其中,H表示網(wǎng)絡(luò)關(guān)于樣本的隱層輸出矩陣,β表示輸出權(quán)值矩陣,T表示樣本集的目標(biāo)值矩陣
(3)
式中:H+為矩陣H的MP廣義逆。
對于ELM模型,其輸入權(quán)值矩陣和隱含層偏差是隨機(jī)確定的,從而使得一些隱含層的節(jié)點失效或不能滿足數(shù)據(jù)要求,降低了模型的預(yù)測精度和穩(wěn)定性。因此,提出選擇最佳的隱層節(jié)點數(shù)方法改進(jìn)以上不足。
布谷鳥搜索算法通過模擬某些種屬布谷鳥的寄生育雛過程,求解全局最優(yōu)化問題。CS采用Levy飛行搜索機(jī)制,使優(yōu)化算法更為有效。使用鳥巢位置代表解,該算法基于3個理想化的規(guī)則:①每個布谷鳥一次下一個蛋,堆放在一個隨機(jī)選擇的巢中;②最好的鳥巢將會保留到下一代;③巢的數(shù)量是固定的,布谷鳥的蛋被發(fā)現(xiàn)的概率為pa∈[0,1]。
(4)
CS算法結(jié)構(gòu)簡單,控制參數(shù)少、有較強(qiáng)的全局尋優(yōu)能力,并可以直接把鳥巢位置替換為最優(yōu)化問題的決策變量。CS-ELM直接可以把CS算法得到的鳥巢位置作為ELM的隱層節(jié)點數(shù),最終選擇的最優(yōu)鳥巢位置就是網(wǎng)絡(luò)結(jié)構(gòu)的隱層節(jié)點數(shù)。
在基本ELM模型中,隱層節(jié)點數(shù)固定后,網(wǎng)絡(luò)結(jié)構(gòu)的輸入權(quán)值和隱層偏差是隨機(jī)給定的,進(jìn)而影響模型的穩(wěn)定性。本文采用CS算法對ELM算法進(jìn)行改進(jìn),自適應(yīng)地選擇ELM模型的隱層節(jié)點數(shù)及輸入權(quán)值和閾值,流程如圖1所示。在CS算法中有N個種群即鳥巢,每個鳥巢位置代表一個有理數(shù),鳥巢位置取整后作為ELM的隱層節(jié)點數(shù)M;輸入樣本數(shù)據(jù),將產(chǎn)生一組ELM網(wǎng)絡(luò)的輸入權(quán)值矩陣W、隱層閾值b和輸入權(quán)值矩陣β,并計算樣本數(shù)據(jù)預(yù)測誤差作為當(dāng)前鳥巢位置的適應(yīng)度值。每次迭代搜索結(jié)束后,儲存最優(yōu)鳥巢位置和W、b、β。待滿足迭代終止條件時,比較鳥巢所對應(yīng)的適應(yīng)度值,輸出最優(yōu)鳥巢位置,及其所對應(yīng)的W、b、β。具體步驟如下所示。
圖1 CS-ELM模型流程
步驟1 數(shù)據(jù)歸一化處理。
步驟4 產(chǎn)生隨機(jī)數(shù)rand和pa比較,若rand 步驟5 若滿足迭代次數(shù),停止搜尋;否則返回步驟3。 步驟6 選取適應(yīng)度值最小的那個鳥巢位置作為ELM的隱層節(jié)點數(shù)M,并輸出所對應(yīng)的W、b、β。建立CS-ELM時間序列預(yù)測模型。 在對時間序列數(shù)據(jù)進(jìn)行預(yù)測時,為對預(yù)測性能更加客觀評價預(yù)測性能,本文采用規(guī)范化均方誤差NMSE(normalized mean square error)計算一次實驗的規(guī)范化后的誤差,采用平均絕對百分比誤差MAPE(mean absolute percentage error)測量預(yù)測結(jié)果的相對誤差。計算公式如下 (5) (6) 以上兩種評價參數(shù)是單次實驗的誤差,本文將P次實驗后預(yù)測誤差的平均值作為最終的預(yù)測誤差。但是這樣不能顯示多次預(yù)測中誤差的波動性,即不能反映出預(yù)測模型的穩(wěn)定性。因此,本文采用計算多次預(yù)測誤差的方差來反應(yīng)模型的穩(wěn)定性,計算公式如下 (7) 2.1.1 數(shù)據(jù)準(zhǔn)備與參數(shù)設(shè)置 對通信運營商,話務(wù)量是評價運營商經(jīng)營狀態(tài)的最重要的指標(biāo)之一[22]。本文中的數(shù)據(jù)選取某地州某運營商的移動話務(wù)量數(shù)據(jù),訓(xùn)練數(shù)據(jù)的是隨機(jī)選取2012年5月19日至2012年6月20日的整個地州話務(wù)量數(shù)據(jù),該話務(wù)量數(shù)據(jù)采樣間隔是1 h??偣?92個數(shù)據(jù),選取前700個數(shù)據(jù)作為訓(xùn)練樣本,其余的作為測試部分。 對于單步預(yù)測的CS-ELM模型,輸出層節(jié)點數(shù)為1,隱層節(jié)點數(shù)由CS算法自適應(yīng)的選擇,故而輸入層節(jié)點數(shù)的確定將影響模型的預(yù)測效果。用實驗法選擇輸入層節(jié)點數(shù),以規(guī)范化均方根誤差eNMSE作為評判準(zhǔn)則。如圖2所示。橫坐標(biāo)表示輸入層節(jié)點數(shù),縱坐標(biāo)表示經(jīng)過50次實驗后誤差的平均值。由圖2可知,當(dāng)輸入層節(jié)點m=26時,規(guī)范化均方根誤差取最小值eNMSE=0.000 854。所以本次實驗選取輸入節(jié)點是26個。 圖2 輸入層節(jié)點數(shù)對預(yù)測誤差的影響 2.1.2 實驗結(jié)果對比與分析 采用布谷鳥搜索算法對ELM進(jìn)行優(yōu)化,選取一組最佳的隱層節(jié)點數(shù)、輸入權(quán)值及閾值,對話務(wù)量預(yù)測如圖3所示??梢钥闯鯟S-ELM的預(yù)測值和實際的話務(wù)量值幾乎重合,其預(yù)測誤差MAPE=2.883 81;NMSE=0.000 85。 圖3 CS-ELM對話務(wù)量預(yù)測的預(yù)測值與實際值對比 采用傳統(tǒng)的遺傳算法優(yōu)化ELM的模型(GA-ELM)、ELM以及DBN模型作為對比模型。在GA-ELM模型中,GA算法的種群數(shù)、搜索迭代次數(shù)等參數(shù)與本文采用的CS算法設(shè)置相同;ELM模型同樣設(shè)輸入節(jié)點數(shù)為m=26,隱層節(jié)點數(shù)M=120;DBN模型中輸入層節(jié)點m=26,兩個隱含層節(jié)點分別為L1=38、L2=57。分別做50次實驗,預(yù)測誤差結(jié)果取平均值,見表1。 表1 ELM與CS-ELM預(yù)測性能對比 在表1中可以看出,CS-ELM的預(yù)測誤差MAPE=2.883 81、NMSE=0.000 85,而明顯小于ELM和CA-ELM的預(yù)測誤差值。這表明經(jīng)過CS算法改進(jìn)的ELM模型預(yù)測精度有了明顯的提高;CS算法的全局搜索能力要優(yōu)于傳統(tǒng)的GA算法。還可以看出,在預(yù)測誤差方面,傳統(tǒng)的DBN略差于本文提出的模型。但是在預(yù)測誤差的方差方面,CS-ELM要明顯優(yōu)于其它3種模型。對于NMSE的方差,CS-ELM處于10-8數(shù)量級,而DBN的方差處于10-7數(shù)量級,CS-ELM的方差明顯要小于DBN的方差,且也小于GA-ELM和ELM的方差。對于MAPE的方差,很清楚的可以看到本文提出的模型的方差時最小的。這說明CS-ELM的預(yù)測結(jié)果波動性小,模型穩(wěn)定性好。 在運行時間方面,見表2。CS-ELM算法耗時明顯少于GA-ELM和DBN算法。但是,CS-ELM與ELM相比,訓(xùn)練所需的時間要長一些。由于ELM模型的輸入權(quán)值和閾值 是隨機(jī)生成的,尋找最優(yōu)的隱層節(jié)點數(shù)、輸入權(quán)值和閾值可以提高模型的泛化能力。本文提出的模型是以訓(xùn)練時間為代價來提高模型的預(yù)測性能,故而在訓(xùn)練時間方面高于ELM模型。 表2 模型時間對比 2.1.3 模型舉例 為體現(xiàn)CS-ELM的普適性,本文選用在獻(xiàn)[3]中用到的GBP/USD匯率進(jìn)行預(yù)測,同文獻(xiàn)[3]中采用的評價指標(biāo)進(jìn)行比較。表3是CS-ELM與文獻(xiàn)[3]中提出的共軛梯度法改進(jìn)的DBN模型對GBP/USD匯率預(yù)測結(jié)果作對比。 表3 CS-ELM與DBN對GBP/USD匯率預(yù)測結(jié)果對比 從表3中可得知,本文提出的CS-ELM,在RMSE和MAPE方面稍優(yōu)于文獻(xiàn)[3]中提出的共軛梯度法改進(jìn)的DBN。此外在表3中可以看出,CS-ELM的方差明顯小于文獻(xiàn)[3],文獻(xiàn)[3]RMSE的方差處于10-8數(shù)量級,CS-ELM的結(jié)果處于10-9數(shù)量級;而MAPE的方差明顯優(yōu)于文獻(xiàn)[3]。所以CS-ELM的穩(wěn)定性要優(yōu)于文獻(xiàn)[3]的DBN模型,而CS-ELM模型預(yù)測精度可以接受但有待提高。 CS-ELM模型在時間序的列多步預(yù)測中也具有理想的預(yù)測效果,選擇本文2.1節(jié)中的2012年5月19日至2012年6月20日的整個烏魯木齊市話務(wù)量數(shù)據(jù)。選取輸入節(jié)點數(shù)m=26,預(yù)測未來的o1,o2,…,on(n≥2)的話務(wù)量數(shù)據(jù)。預(yù)測步數(shù)對預(yù)測精度的影響,如圖4和表4所示,可以看出來隨著預(yù)測步數(shù)的增加,預(yù)測精度越來越差。但是對于十步預(yù)測的預(yù)測時的NMSE=0.004 52、MAPE=6.494 429,依然可以清晰的看出未來數(shù)據(jù)的走勢,說明CS-ELM模型對時間序列多步預(yù)測的效果良好。 圖4 多步預(yù)測中步數(shù)與預(yù)測精度的關(guān)系 本文提出一種基于CS算法改進(jìn)的ELM的時間序列預(yù)測模型,采用CS算法自適應(yīng)地獲取最優(yōu)ELM的隱含層節(jié)點數(shù)及相應(yīng)的輸入其權(quán)值和閾值,避免了預(yù)測輸入權(quán)值和隱含層偏差隨機(jī)性對ELM預(yù)測的影響。話務(wù)量數(shù)據(jù)預(yù)測實驗結(jié)果顯示,本文提出的算法結(jié)構(gòu)簡單,預(yù)測精度高,并且預(yù)測穩(wěn)定性要優(yōu)于其它傳統(tǒng)的算法。并以匯率數(shù)據(jù)為例驗證了CS-ELM的預(yù)測性能。進(jìn)一步,通過話務(wù)量數(shù)據(jù)的多步預(yù)測,可以看出CS-ELM在多步預(yù)測中也有較好效果。 表4 不同預(yù)測步數(shù)的評價指標(biāo)值 但是,由于CS-ELM模型是以犧牲訓(xùn)練時間來提高預(yù)測性能,并且其預(yù)測誤差略優(yōu)于DBN,所以如何加快訓(xùn)練速度和提高預(yù)測精度將是下一步的研究重點。1.4 評價參數(shù)
2 基于CS-ELM的時間序列預(yù)測
2.1 CS-ELM對時間序列的單步預(yù)測
2.2 CS-ELM模型的多步預(yù)測
3 結(jié)束語