之前連載的負(fù)荷預(yù)測(cè),都是使用傳統(tǒng)機(jī)器學(xué)習(xí)的方法,這一期我們將使用工業(yè)領(lǐng)域中大放異彩的循環(huán)神經(jīng)網(wǎng)絡(luò):長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)。
LSTM是一種時(shí)間遞歸神經(jīng)網(wǎng)絡(luò),適用于處理和預(yù)測(cè)時(shí)間序列,基于LSTM的系統(tǒng)可以進(jìn)行機(jī)器翻譯,語音識(shí)別,文本識(shí)別,詩歌合成,自動(dòng)駕駛等任務(wù)。電量的負(fù)荷值也是一個(gè)時(shí)間序列,使用LSTM的預(yù)測(cè)效果如何?今天小編帶大家來看一下。
相對(duì)RNN,LSTM的結(jié)構(gòu)更復(fù)雜。如圖一所示:LSTM由三個(gè)門組成:遺忘門,輸入門和輸出門。遺忘門決定有多少信息被忘記,輸入門決定保留哪些信息,輸出門輸出結(jié)果。LSTM就是在RNN的基礎(chǔ)上,增加了對(duì)過去狀態(tài)的過濾,從而可以選擇哪些狀態(tài)對(duì)當(dāng)前更有影響,而不是簡(jiǎn)單的選擇最近的狀態(tài)。
在訓(xùn)練的過程中,RNN的訓(xùn)練特別困難,因?yàn)镽NN梯度被表示為連成積的形式,導(dǎo)致梯度消失。而LSTM則很好的解決了這個(gè)問題:如圖二公式展示的那樣,最終的細(xì)胞狀態(tài)是由遺忘門和輸入門的計(jì)算結(jié)果求和得到的,這樣的梯度表示為累加的形式,避免了梯度消失。
圖一: RNN和LSTM結(jié)構(gòu)圖
圖二: 細(xì)胞狀態(tài)更新
除了上圖展示的LSTM以外,還出現(xiàn)了一些LSTM的變體。
如圖三所示:?jiǎn)蜗騆STM和反向的LSTM結(jié)合成雙向BiLSTM(雙向LSTM)。單向LSTM關(guān)注的是過去對(duì)未來的影響,而反向LSTM關(guān)注的是未來對(duì)過去的影響,兩個(gè)方向的網(wǎng)絡(luò)結(jié)合到一起就能關(guān)聯(lián)歷史與未來。
舉個(gè)例子:我明天去___一天。假如有2個(gè)選擇項(xiàng):喝水,上班。如果是單向的LSTM,只考慮前面的詞,兩個(gè)選項(xiàng)都滿足條件,但是從后面的詞看,"喝水一天"顯然不合常規(guī),而反向的LSTM就可以考慮后面語句對(duì)前面選項(xiàng)的影響。
圖三: BiLSTM結(jié)構(gòu)圖
LSTM 是我們?cè)?RNN 中獲得的重要成功。很自然地,我們也會(huì)考慮:哪里會(huì)有更加重大的突破呢?——那就是注意力模型。注意力模型借鑒了人類的注意力機(jī)制,人的大腦在掃描全局圖像時(shí),獲得需要關(guān)注的目標(biāo)區(qū)域,然后把焦點(diǎn)投入到目標(biāo)區(qū)域,以獲取更多的目標(biāo)區(qū)域的信息,同時(shí)抑制其他目標(biāo)區(qū)域的信息。
如圖四所示:在LSTM的輸入層前加入AM(注意力模型),對(duì)歷史的輸入序列進(jìn)行篩選,計(jì)算所有歷史輸入序列的權(quán)重, 權(quán)重高的信息會(huì)被關(guān)注,權(quán)重低的信息會(huì)被抑制,然后將歷史輸入序列的加權(quán)結(jié)果輸入到LSTM模型中。
圖四: LSTM with AM
梯度消失和梯度爆炸是神經(jīng)網(wǎng)絡(luò)模型的通病。LSTM模型本身克服了梯度消失的問題,對(duì)于梯度爆炸,有以下兩種做法:
在損失函數(shù)中加入正則項(xiàng):把模型參數(shù)的范數(shù)作為損失函數(shù)的一部分,會(huì)使梯度更新時(shí)減小模型參數(shù)的大小,有效避免參數(shù)過大。
正則項(xiàng)實(shí)現(xiàn)方式:
梯度裁剪:梯度更新過程中,把梯度的大小限制在一個(gè)范圍內(nèi),當(dāng)梯度超出限制時(shí),將梯度更新為范圍內(nèi)的最大值或最小值。
梯度裁剪實(shí)現(xiàn)方式:
對(duì)于任何神經(jīng)網(wǎng)絡(luò)模型,都需要避免過擬合和欠擬合。從模型本身的結(jié)構(gòu)考慮,可以通過增加正則項(xiàng)和dropout避免過擬合。
dropout實(shí)現(xiàn)方式:
除此之外,對(duì)訓(xùn)練過程的控制也會(huì)對(duì)過擬合和欠擬合產(chǎn)生影響??梢酝ㄟ^對(duì)學(xué)習(xí)率的調(diào)整和設(shè)置恰當(dāng)?shù)挠?xùn)練結(jié)束時(shí)機(jī)來控制訓(xùn)練過程。
如圖五所示:當(dāng)學(xué)習(xí)率過高時(shí),損失值快速變小,然后很快停止變小,甚至變大;當(dāng)學(xué)習(xí)率過低,損失值緩慢減小,訓(xùn)練的非常慢;而好的學(xué)習(xí)率會(huì)使損失值先快速減小然后緩慢減小。根據(jù)訓(xùn)練過程損失值的變化規(guī)律,可以先設(shè)置一個(gè)較大的學(xué)習(xí)率,讓損失值快速減小,然后隨著epoch增大,不斷減小學(xué)習(xí)率的大小,使損失值不斷收斂到最小值。
圖五: 學(xué)習(xí)率對(duì)訓(xùn)練效果的影響
學(xué)習(xí)率設(shè)置的實(shí)現(xiàn)方式
隨著epoch的增加,訓(xùn)練集的準(zhǔn)確率會(huì)不斷增加,測(cè)試集的準(zhǔn)確率先增加后減小,這時(shí)候模型會(huì)出現(xiàn)過擬合的情況。當(dāng)epoch=N的時(shí)候,模型已經(jīng)訓(xùn)練好了。所以可以設(shè)置一下,當(dāng)模型的測(cè)試集的準(zhǔn)確率不再連續(xù)增加或損失值不再連續(xù)減小時(shí),停止訓(xùn)練,保存模型。
圖六: epoch對(duì)訓(xùn)練效果的影響
訓(xùn)練停止設(shè)置的實(shí)現(xiàn)方式
這一期我們選擇了化學(xué)制品行業(yè),使用該行業(yè)下所有用戶2018年4月開始的電力負(fù)荷數(shù)據(jù),對(duì)2019年1月10號(hào)到2019年1月17號(hào)連續(xù)8天的逐時(shí)負(fù)荷值進(jìn)行預(yù)測(cè)。
圖七是待測(cè)時(shí)間段的真實(shí)值負(fù)荷曲線,可以看到數(shù)據(jù)相對(duì)平穩(wěn),但是沒有明顯的周期性規(guī)律,并且在某些時(shí)間點(diǎn)上負(fù)荷會(huì)出現(xiàn)驟降。
圖七: 待測(cè)時(shí)間段的真實(shí)值負(fù)荷曲線
為了對(duì)比神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)機(jī)器學(xué)習(xí)方式的優(yōu)劣,我們選擇了三個(gè)傳統(tǒng)的機(jī)器學(xué)習(xí)算法,作為神經(jīng)網(wǎng)絡(luò)的對(duì)比組。選取了十組與負(fù)荷相關(guān)性大的特征作為輸入,可以看到三組算法的平均準(zhǔn)確率相差不大,逐日的準(zhǔn)確率基本都在百分之九十以上,唯有17號(hào)的準(zhǔn)確率較低,因?yàn)檫@一天的真實(shí)負(fù)荷值相對(duì)歷史負(fù)荷值出現(xiàn)驟降。
圖八: 傳統(tǒng)機(jī)器學(xué)習(xí)預(yù)測(cè)曲線
圖九: 傳統(tǒng)機(jī)器學(xué)習(xí)準(zhǔn)確率
我們分別構(gòu)建LSTM,BiLSTM,AttLSTM三種模型進(jìn)行負(fù)荷預(yù)測(cè),使用和上面的傳統(tǒng)機(jī)器學(xué)習(xí)算法相同的特征作為輸入。可以看到,三種模型的平均預(yù)測(cè)準(zhǔn)確率也都達(dá)到百分之90以上。
其中,LSTM和BiLSTM的預(yù)測(cè)平均準(zhǔn)確率相差很少,而AttLSTM模型的準(zhǔn)確率會(huì)高一些。這說明對(duì)于該組數(shù)據(jù),負(fù)荷值并不受未來的影響,而對(duì)于歷史數(shù)據(jù)的篩選有助于預(yù)測(cè)準(zhǔn)確率的提高。
圖十: 神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)曲線
圖十一: 神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)確率
通過本次實(shí)驗(yàn),我們看到在NLP領(lǐng)域大放異彩的LSTM,相對(duì)傳統(tǒng)機(jī)器學(xué)習(xí)算法在時(shí)間序列的預(yù)測(cè)上并沒有很明顯的提高,但是對(duì)特征的挖掘能力,決不亞于傳統(tǒng)機(jī)器學(xué)習(xí)算法,所以在時(shí)間序列的預(yù)測(cè)上,也能夠獲得比較好的結(jié)果。
當(dāng)然,這是在該行業(yè)數(shù)據(jù)下的結(jié)果,后續(xù)我們會(huì)依托匯電的大數(shù)據(jù)平臺(tái)和自身豐富的算法庫對(duì)更多的行業(yè)做測(cè)試,敬請(qǐng)關(guān)注。
本文版權(quán)歸“匯電云聯(lián)”所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者。
聯(lián)系客服