本發(fā)明涉及信息技術(shù)領(lǐng)域,具體地說是一種基于彈性scad罰函數(shù)的回聲狀態(tài)網(wǎng)絡(luò)時(shí)間序列預(yù)測方法。
背景技術(shù):
回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)是一種新型的遞歸神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方法。其通過引入一個(gè)隨機(jī)生成、且保持不變的,稱作為儲(chǔ)備池的內(nèi)部網(wǎng)絡(luò),來取代經(jīng)典神經(jīng)網(wǎng)絡(luò)中的中間隱含層。當(dāng)外部輸入的時(shí)間序列進(jìn)入回聲狀態(tài)網(wǎng)絡(luò)時(shí),便在內(nèi)部建立起復(fù)雜多樣的非線性映射關(guān)系,起到存儲(chǔ)歷史信息的作用,最后再通過一個(gè)簡單的輸出連接矩陣得到網(wǎng)絡(luò)輸出。
整個(gè)回聲狀態(tài)網(wǎng)絡(luò)的儲(chǔ)備池內(nèi)部連接權(quán)值是固定不變的,調(diào)整僅僅針對輸出連接矩陣進(jìn)行,克服了一般遞歸神經(jīng)網(wǎng)絡(luò)收斂速度慢、容易陷入局部最優(yōu)和梯度消退等問題,克服了遞歸神經(jīng)網(wǎng)絡(luò)內(nèi)在梯度和記憶漸消問題,同時(shí)也極大降低了訓(xùn)練階段的計(jì)算量,達(dá)到估計(jì)精度和計(jì)算復(fù)雜度的折中。
回聲狀態(tài)網(wǎng)絡(luò)通過儲(chǔ)備池的規(guī)模來保證系統(tǒng)的動(dòng)態(tài)性,但在儲(chǔ)備池規(guī)模設(shè)置的過大,訓(xùn)練數(shù)據(jù)存在野點(diǎn)情況下,極有可能導(dǎo)致輸出矩陣共線性和過擬合問題;反之如果儲(chǔ)備池規(guī)模設(shè)置的過小,就可能導(dǎo)致其對真實(shí)系統(tǒng)的估計(jì)精度不足。
為了保證回聲狀態(tài)網(wǎng)絡(luò)的動(dòng)態(tài)性,在無法事先確知真實(shí)系統(tǒng)的復(fù)雜程度情況下,通常都設(shè)置較大的儲(chǔ)蓄池規(guī)模,然后通過正則化方法對輸出連接矩陣做出約束,建立稀疏解,克服可能存在的共線性和過擬合問題。
目前常用的正則化方法包括嶺回歸(l2范數(shù))、l1范數(shù)、彈性網(wǎng)等,但是嶺回歸對于變量沒有選擇性,l1范數(shù)對于相關(guān)向量無效,并且這些方法對輸出連接矩陣中的大權(quán)值系數(shù)施加更大的懲罰,對于這些大權(quán)值系數(shù)屬于有偏估計(jì)。
技術(shù)實(shí)現(xiàn)要素:
針對上述現(xiàn)有的回聲狀態(tài)網(wǎng)絡(luò)中共線性和過擬合等問題,本發(fā)明提供一種基于彈性scad罰函數(shù)的回聲狀態(tài)網(wǎng)絡(luò)時(shí)間序列預(yù)測方法。
為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
一種基于彈性scad罰函數(shù)的回聲狀態(tài)網(wǎng)絡(luò)時(shí)間序列預(yù)測方法,包括以下步驟:
步驟一:對原始數(shù)據(jù)進(jìn)行預(yù)處理,包括去除異常數(shù)據(jù)及消除數(shù)據(jù)的趨勢性;
步驟二:建立回聲狀態(tài)網(wǎng)絡(luò)模型
將時(shí)間序列訓(xùn)練數(shù)據(jù)送入回聲狀態(tài)網(wǎng)絡(luò)中,儲(chǔ)蓄池回聲狀態(tài)向量x(t)和輸出向量y(t)模型如下:
式中win、wx和wback分別為輸入矩陣、儲(chǔ)備池連接矩陣和后向反饋矩陣,它們是已知的;wout為儲(chǔ)備池輸出連接矩陣,是回聲狀態(tài)網(wǎng)絡(luò)中唯一需要訓(xùn)練求解的;t時(shí)刻的儲(chǔ)備池內(nèi)部狀態(tài)向量x(t)由當(dāng)前輸入uin(t)、上一時(shí)刻狀態(tài)向量x(t-1)以及后向反饋向量y(t)共同激發(fā)產(chǎn)生;輸出連接矩陣使用最小二乘法求解得到:
其中
步驟三:彈性scad罰函數(shù)
為了應(yīng)對回聲狀態(tài)網(wǎng)絡(luò)輸出矩陣多重共線性和過擬合問題,采用彈性scad罰函數(shù)估計(jì)權(quán)值,其具體模型如下:
式中第二項(xiàng)和第三項(xiàng)分別是scad罰函數(shù)和l2范數(shù)罰函數(shù),其組成彈性scad罰函數(shù),其中scad罰函數(shù)模型如下:
其中可調(diào)超參數(shù)
式(5)中scad罰函數(shù)在原點(diǎn)近似奇異值,能夠產(chǎn)生稀疏解;對于
步驟四:基于彈性scad罰函數(shù)的局部二次近似求解
scad罰函數(shù)在原點(diǎn)處不可微,不能直接用凸函數(shù)優(yōu)化方法進(jìn)行迭代;使用局部二次近似來近似分解scad罰函數(shù),從而能求解該模型的近似解;設(shè)初始值
式中
得到scad罰函數(shù)的近似表達(dá)后,對式(4)執(zhí)行重復(fù)嶺回歸解得到:
其中:
實(shí)際中,
步驟五:粒子群優(yōu)化回聲狀態(tài)網(wǎng)絡(luò)
基于彈性scad的回聲狀態(tài)網(wǎng)絡(luò)包含較多的超參數(shù),網(wǎng)格搜索法難以確定最優(yōu)的超參數(shù)值,采用粒子群算法進(jìn)行超參數(shù)優(yōu)化;假設(shè)粒子用速度矢量v和位置矢量p進(jìn)行描述,在時(shí)間步中,粒子通過更新速度矢量vi來搜尋全局最優(yōu)位置矢量pi,同時(shí)每個(gè)粒子根據(jù)適應(yīng)度和速度決定它自身的飛行方向,逐步移到較優(yōu)區(qū)域,最終搜索到全局最優(yōu)位置矢量,模型如下:
式中vi(t)和pi(t)分別為第i個(gè)粒子t時(shí)刻的速度分量和位置矢量;lbi(t)為第i粒子t時(shí)刻的最優(yōu)位置分量;gb(t)為t時(shí)刻整個(gè)粒子群的最優(yōu)位置分量;w為慣性權(quán)重,c1和c2為加速常數(shù);rand1和rand2是介于0和1之間的隨機(jī)數(shù);
步驟六:下一時(shí)刻時(shí)間序列預(yù)測
通過下式獲取所述預(yù)測數(shù)據(jù):
其中,
所述彈性scad罰函數(shù)用于變量選擇,克服儲(chǔ)備池網(wǎng)絡(luò)輸出的共線性和過擬合問題,并用粒子群算法進(jìn)行超參數(shù)估計(jì),其具體步驟如下:
1)采集時(shí)間序列,并對數(shù)據(jù)進(jìn)行預(yù)處理;
2)初始化儲(chǔ)備池超參數(shù)、輸入連接矩陣win、儲(chǔ)備池連接矩陣wx和反饋矩陣wback和測試誤差閾值;
3)確定輸入矩陣大小n和稀疏度sd值,設(shè)定回聲狀態(tài)網(wǎng)絡(luò)中輸入單元尺度is、輸入單元位移ish、教師信號(hào)尺度ts、教師信號(hào)位移tsh及彈性scad罰函數(shù)中g,l1,l2超參數(shù)范圍;設(shè)置粒子群算法中的超參數(shù),包括最大迭代次數(shù)m、測試誤差閾值err,粒子群大小npop、慣性權(quán)重w、c1和c2加速常數(shù);
4)確定搜索空間,在搜索空間中隨機(jī)初始化粒子群算法中各粒子的速度矢量v和位置矢量p;
5)輸入訓(xùn)練樣本(x,y),根據(jù)式(3)估計(jì)初始輸出連接矩陣
6)使用式(9)計(jì)算最終的儲(chǔ)備池輸出連接矩陣
7)采用均方根誤差函數(shù)評價(jià)各粒子的適應(yīng)度;
8)根據(jù)式(11)和式(12)更新各粒子的速度矢量v和位置矢量p;
9)判斷迭代是否達(dá)到最大迭代次數(shù)或設(shè)定測試誤差閾值err;若是,停止程序,輸出最后的gb作為最優(yōu)超參數(shù)選擇,否則重復(fù)執(zhí)行步驟4)-步驟6),直到滿足設(shè)定條件為止;
10)使用式(13)對下一個(gè)時(shí)刻值進(jìn)行預(yù)測。
本發(fā)明的有益效果:
本發(fā)明提供的基于彈性scad罰函數(shù)的回聲狀態(tài)網(wǎng)絡(luò)時(shí)間序列預(yù)測方法,結(jié)合scad罰函數(shù)和l2范數(shù)建立稀疏模型,該模型具有無偏估計(jì)、良好處理共線性和過擬合問題能力,從而提高模型的預(yù)測精度;針對該方法中的非凸函數(shù)優(yōu)化問題,也給出基于局部二次近似的求解方法以及基于粒子群算法的超參數(shù)估計(jì)方法。
附圖說明
圖1為本發(fā)明的整體實(shí)現(xiàn)流程圖;
圖2為彈性scad罰函數(shù)的回聲狀態(tài)網(wǎng)絡(luò)示意圖;
圖3為lorenz時(shí)間序列的一步預(yù)測結(jié)果。
具體實(shí)施方式
下面結(jié)合具體實(shí)施方式對本發(fā)明做進(jìn)一步的闡述。
本發(fā)明技術(shù)的整體實(shí)現(xiàn)流程如附圖1所示,具體步驟如下:
步驟1):數(shù)據(jù)采集和預(yù)處理
采集時(shí)間序列,包括輸入數(shù)據(jù)x和輸出時(shí)間序列y;數(shù)據(jù)采集后,對其進(jìn)行預(yù)處理,包括消除數(shù)據(jù)趨勢性和去除異常數(shù)據(jù);將預(yù)處理后的數(shù)據(jù)按時(shí)間點(diǎn)劃分為訓(xùn)練數(shù)據(jù)集和預(yù)測數(shù)據(jù)集,其中遠(yuǎn)離當(dāng)前時(shí)間點(diǎn)的數(shù)據(jù)劃分為訓(xùn)練數(shù)據(jù)集,當(dāng)前時(shí)間點(diǎn)前的一段時(shí)間內(nèi)的數(shù)據(jù)劃分為預(yù)測數(shù)據(jù)集。
步驟2):初始化儲(chǔ)備池超參數(shù)、輸入連接矩陣win和儲(chǔ)備池連接矩陣wx和反饋矩陣wback和測試誤差閾值;
步驟3):粒子群算法中的超參數(shù)初始化
本發(fā)明采用粒子群算法進(jìn)行超參數(shù)優(yōu)化,需要估計(jì)的超參數(shù)包括esn和scad罰函數(shù)中的超參數(shù),其中esn中的超參數(shù)包括is(inputscaling)、輸入單元位移ish(inputshift)、教師信號(hào)尺度ts(teacherscaling)、教師信號(hào)位移tsh(teachershift)以及彈性scad罰函數(shù)中的g,l1,l2等7個(gè)超參數(shù);
步驟4):確定搜索空間,在搜索空間中隨機(jī)初始化粒子群算法中各粒子的速度矢量v和位置矢量p。
步驟5):將時(shí)間序列訓(xùn)練數(shù)據(jù)(x,y)送入回聲狀態(tài)網(wǎng)絡(luò)中,儲(chǔ)蓄池回聲狀態(tài)向量x(t)和輸出向量y(t)模型如下:
其中win、wx和wback分別為輸入矩陣、儲(chǔ)備池連接矩陣和后向反饋矩陣,它們是已知的;wout為儲(chǔ)備池輸出連接矩陣,是回聲狀態(tài)網(wǎng)絡(luò)中唯一需要訓(xùn)練求解的;t時(shí)刻的儲(chǔ)備池內(nèi)部狀態(tài)向量x(t)由當(dāng)前輸入uin(t)、上一時(shí)刻狀態(tài)向量x(t-1)共同激發(fā)產(chǎn)生;
估計(jì)初始輸出連接矩陣
步驟6):執(zhí)行嶺回歸解估計(jì)非零元素的輸出連接矩陣:
步驟7):利用均方根誤差(nrmse)函數(shù)計(jì)算各粒子的適應(yīng)度:
步驟8):更新每個(gè)粒子的速度矢量v和位置矢量p:
式中vi(t)和pi(t)分別為第i個(gè)粒子t時(shí)刻的速度分量和位置矢量;lbi(t)為第i粒子t時(shí)刻的最優(yōu)位置分量;gb(t)為t時(shí)刻整個(gè)粒子群的最優(yōu)位置分量;w為慣性權(quán)重,c1和c2為加速常數(shù);rand1和rand2是介于0和1之間的隨機(jī)數(shù);
步驟9):判斷迭代是否達(dá)到最大迭代次數(shù)或設(shè)定測試誤差閾值;若是,停止程序,輸出最后的gb作為彈性scad回聲狀態(tài)網(wǎng)絡(luò)的最優(yōu)超參數(shù)選擇,否則重復(fù)執(zhí)行步驟4)-步驟6),直到滿足設(shè)定條件為止;
步驟10):使用估計(jì)輸出矩陣
其中,