基于 attention 机制的 LSTM 神经网络 超短期负荷预测方法学习记录
LSTM(long short-term memory)長短期記憶
模型基礎(chǔ)介紹
在標(biāo)準(zhǔn)LSTM體系結(jié)構(gòu)中,有1個(gè)記憶單元狀態(tài)和3個(gè)門,即更新門Γu、遺忘門Γf和輸出門Γo,標(biāo)準(zhǔn)LSTM的體系結(jié)構(gòu)如圖2所示。采用X1
, X2 , …, XT 表示LSTM網(wǎng)絡(luò)中的典型輸入序列,則其中 X{t} 表示時(shí)間 t
時(shí)的輸入特征。為了實(shí)現(xiàn)重要信息長時(shí)間存儲(chǔ),在LSTM的整個(gè)周期內(nèi)設(shè)立并維護(hù)一個(gè)記憶單元c。根據(jù)前一時(shí)間的激活單元at–1和當(dāng)前時(shí)間的輸入
Xt ,通過3個(gè)門確定更新、維護(hù)或遺忘內(nèi)部狀態(tài)向量的具體元素。
標(biāo)準(zhǔn)LSTM網(wǎng)絡(luò)采用編碼器—解碼器(encode-decode)結(jié)構(gòu),將輸入序列編碼成固定長度的向量表示。當(dāng)輸入序列長度較短時(shí),有較好的學(xué)習(xí)效果,但當(dāng)輸入序列長度較長時(shí),容易造成信息丟失,難以學(xué)到輸入序列合理的向量表示。
優(yōu)勢(shì)
相較于傳統(tǒng)的RNN,其克服了存在的梯度消失和梯度爆炸問題。
不足
LSTM網(wǎng)絡(luò)的預(yù)測(cè)效果遠(yuǎn)優(yōu)于RNN。然而LSTM網(wǎng)絡(luò)是將所有輸入特征編碼成固定長度的向量表示,忽視了其與待預(yù)測(cè)負(fù)荷之間的關(guān)聯(lián)性大小,因而無法有側(cè)重地對(duì)歷史數(shù)據(jù)加以利用。
改進(jìn)
本文針對(duì)LSTM算法存在的不足,提出一種基于attention機(jī)制的LSTM神經(jīng)網(wǎng)絡(luò)。
實(shí)驗(yàn)過程
實(shí)驗(yàn)主要需確定網(wǎng)絡(luò)的輸入輸出變量、數(shù)據(jù)預(yù)處理方法、網(wǎng)絡(luò)結(jié)構(gòu)、模型訓(xùn)練方法以及網(wǎng)絡(luò)評(píng)價(jià)指標(biāo)。
輸入輸出變量的確定
確定網(wǎng)絡(luò)的輸入輸出變量是確定網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)。假定負(fù)荷采樣頻率為每小時(shí)1次,可獲得的網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)集為每天24h的歷史負(fù)荷數(shù)據(jù),為提高網(wǎng)絡(luò)的預(yù)測(cè)效果及處理效率,需選擇合理的階數(shù)。因負(fù)荷值具有一定的隨機(jī)性,可采用計(jì)算樣本自相關(guān)系數(shù)的方法來確定輸入變量時(shí)間序列的階數(shù)。各階自相關(guān)系數(shù)反映了各滯時(shí)狀態(tài)間的相關(guān)關(guān)系,可反映序列的周期規(guī)律。時(shí)間序列h階自相關(guān)系數(shù)的計(jì) 算公式為:
簡(jiǎn)要而言,即我們不能確定哪個(gè)時(shí)間段與我們當(dāng)前時(shí)間的關(guān)系最為密切,故采用自相關(guān)系數(shù)計(jì)算來確定。
通過找到自相關(guān)系數(shù)衰減為0的階數(shù),可確定采用 特定時(shí)段的歷史負(fù)荷數(shù)據(jù),進(jìn)行超短期負(fù)荷預(yù)測(cè),實(shí)現(xiàn)
負(fù)荷歷史數(shù)據(jù)的充分利用。繪制得到負(fù)荷歷史數(shù)據(jù)集的 自相關(guān)系數(shù)如圖3所示。由圖可以看出,當(dāng)階數(shù)取168
時(shí),自相關(guān)系數(shù)衰減為0,即預(yù)測(cè)點(diǎn)負(fù)荷值只與預(yù)測(cè)時(shí) 刻前168 h的負(fù)荷相關(guān),因而輸入變量選為預(yù)測(cè)時(shí)刻前 168 h的負(fù)荷數(shù)據(jù)。
此外,本文目的是預(yù)測(cè)未來某天某整點(diǎn)時(shí)刻的負(fù)荷值,則輸出變量選為預(yù)測(cè)點(diǎn)的負(fù)荷預(yù)測(cè)結(jié)果。
輸入數(shù)據(jù)預(yù)處理
數(shù)據(jù)采集過程中,存在設(shè)備故障、人為操作失誤等情況,可能會(huì)得到偏差較大 的數(shù)據(jù)或空數(shù)據(jù),因而可進(jìn)行壞數(shù)據(jù)辨別及修正,降低個(gè)別偏差較大、分布稀疏的壞數(shù)據(jù)對(duì)預(yù)測(cè)準(zhǔn)確度的影響。
那么主要便分為壞數(shù)據(jù)辨別,壞數(shù)據(jù)修正,歸一化三個(gè)步驟
數(shù)據(jù)歸一化。為方便后續(xù)處理,對(duì)完成修正的負(fù)荷數(shù)據(jù)進(jìn)行歸一化處理,將負(fù)荷數(shù)據(jù)集矩陣各元素取
值轉(zhuǎn)換在[0,1]內(nèi)。歸一化公式為:
基于attention機(jī)制的LSTM網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)
attention機(jī)制模擬人腦注意力模型,其主要思想是針對(duì)輸入序列中影響輸出結(jié)果的關(guān)鍵部分分配較多的注意力,以更好地學(xué)習(xí)輸入序列中的信息。本文將attention機(jī)制作為2個(gè)LSTM網(wǎng)絡(luò)的接口,首先通過一個(gè)LSTM網(wǎng)絡(luò)處理輸入序列,實(shí)現(xiàn)高層次的特征學(xué)習(xí);隨后通過合理分配注意力權(quán)重,實(shí)現(xiàn)記憶單元求解;最后通過再運(yùn)行一個(gè)LSTM網(wǎng)絡(luò)實(shí)現(xiàn)超短期負(fù)荷預(yù)測(cè)。
模型展示
這是一個(gè)Seq2Seq模型,即編碼器-解碼器模型。
模型訓(xùn)練方法
損失函數(shù)
均方誤差(mean squared error,MSE)用于反映估計(jì)量與被估計(jì)量之間的差異程度,將其作為本網(wǎng)絡(luò)的目標(biāo)損失函數(shù),其計(jì)算公式為:
優(yōu)化器
選用Adam算法替代傳統(tǒng)隨機(jī)梯度下降過程,基于訓(xùn)練數(shù)據(jù)和損失函數(shù)計(jì)算各參數(shù)的一階矩估計(jì)及二階矩估計(jì),并針對(duì)計(jì)算結(jié)果動(dòng)態(tài)調(diào)整每個(gè)參數(shù)的學(xué)習(xí)速率,實(shí)現(xiàn)網(wǎng)絡(luò)權(quán)重的迭代更新。訓(xùn)練過程采用學(xué)習(xí)速度(learning rate,Ir)呈指數(shù)規(guī)律下降的方式,實(shí)現(xiàn)訓(xùn)練后期最優(yōu)解的確定。經(jīng)多次訓(xùn)練后,選取最佳優(yōu)化結(jié)果。
關(guān)于Adam
Adam 是一種可以替代傳統(tǒng)隨機(jī)梯度下降(SGD)過程的一階優(yōu)化算法,它能基于訓(xùn)練數(shù)據(jù)迭代地更新神經(jīng)網(wǎng)絡(luò)權(quán)重。
Adam介紹
網(wǎng)絡(luò)評(píng)價(jià)指標(biāo)
平均絕對(duì)百分誤差(mean absolute percentage error,MAPE)是一種常用于衡量預(yù)測(cè)準(zhǔn)確性的指標(biāo)。本文通過該指標(biāo)對(duì)網(wǎng)絡(luò)的負(fù)荷預(yù)測(cè)結(jié)果做出評(píng)判,其計(jì)算公式為:
之后,該模型與標(biāo)準(zhǔn)BP網(wǎng)絡(luò)相對(duì)比,在性能上有了明顯提升。
總結(jié)
以上是生活随笔為你收集整理的基于 attention 机制的 LSTM 神经网络 超短期负荷预测方法学习记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android程序的入口点,常见andr
- 下一篇: android手机deviceowner