李森林, 唐 波, 鄧小武
(懷化學院1.計算機科學與工程學院;2.武陵山片區(qū)生態(tài)農(nóng)業(yè)智能控制技術(shù)湖南省重點實驗室,湖南懷化418008)
神經(jīng)網(wǎng)絡(luò)模型的時序預(yù)測是一個重要的研究分支.隨著移動互聯(lián)網(wǎng)普及,不同領(lǐng)域的應(yīng)用都會產(chǎn)生大量的時間序列數(shù)據(jù),探究這些數(shù)據(jù)背后有價值的信息對人類的生活意義重大.比如時序預(yù)測模型在天氣預(yù)測中的應(yīng)用與農(nóng)業(yè)的生產(chǎn)、耕作關(guān)系密切.武陵山片區(qū)是我國中西部以武陵山及周邊地帶命名的貧困地區(qū),片區(qū)以山地為主、氣候變化大,農(nóng)業(yè)生態(tài)脆弱,受天氣變化影響較大[1].因此研究探索一種混合神經(jīng)網(wǎng)絡(luò)的武陵山片區(qū)氣候預(yù)測模型,對武陵山片區(qū)農(nóng)民生產(chǎn)、生活的決策至關(guān)重要.
事實上,研究人員已經(jīng)提出或改進了不同類型的時間序列預(yù)測方法.早期人工神經(jīng)網(wǎng)絡(luò)技術(shù)的出現(xiàn)和發(fā)展,為時序預(yù)測提供了技術(shù)支持,尤其反饋神經(jīng)網(wǎng)絡(luò)[2](BP)在預(yù)測中的應(yīng)用非常廣泛.BP模型具有模擬任何非線性函數(shù)的能力,但提取數(shù)據(jù)特征偏弱.深度學習(DL)是一種多層的神經(jīng)網(wǎng)絡(luò)模型,在提取數(shù)據(jù)特征和模型訓練方面,具有端到端的自學習功能.近年來,研究人員提出了許多DL構(gòu)建的時序預(yù)測模型,如RNN[3]、CNN[4]、LSTM[5]等,這些模型在預(yù)測領(lǐng)域表現(xiàn)優(yōu)異.基于武陵山片區(qū)氣候數(shù)據(jù)特征,我們提出一種混合神經(jīng)網(wǎng)絡(luò)預(yù)測模型.該模型由兩個子模型組成,一個子模型訓練文本數(shù)據(jù),另一個訓練圖像數(shù)據(jù);然后再將兩個子模型合并輸入到多層感知預(yù)測模型中.
本文主要有三點貢獻:
(1)獲取武陵山片區(qū)氣候數(shù)據(jù),并進行清理、規(guī)范化等預(yù)處理.
(2)深度分析了單變量、多變量、單步長、多步長時序數(shù)據(jù)在單神經(jīng)網(wǎng)絡(luò)(BP、LSTM、CNN)預(yù)測模型中的預(yù)測過程.
(3)提出了多類型輸入的混合神經(jīng)網(wǎng)絡(luò)武陵山片區(qū)氣候預(yù)測模型,并完成了與單神經(jīng)網(wǎng)絡(luò)BP、LSTM、CNN的實驗結(jié)果對比.
測量數(shù)據(jù)是有時間維度的,時間序列數(shù)據(jù)是指一些隨時間變化的檢測值.這些數(shù)據(jù)除具有一般數(shù)據(jù)的特征維度外,還具有時間依賴性、近似性等特點.時間序列數(shù)據(jù)表現(xiàn)形式如下:
對于變量Xi(i=0,1,2,3,…,t-1,t),有:
Xt-n,…,Xt-3,Xt-2,Xt-1,Xt
Time-------------->
監(jiān)督學習是機器學習的一種方式.訓練神經(jīng)網(wǎng)絡(luò)過程是利用一組具有已知標簽的樣本調(diào)整神經(jīng)網(wǎng)絡(luò)模型的參數(shù),從而達到性能要求.因此,時間序列數(shù)據(jù)必須先轉(zhuǎn)換為監(jiān)督學習數(shù)據(jù)格式才能用于神經(jīng)網(wǎng)絡(luò)模型的訓練,即按照時間步長重新構(gòu)建輸入數(shù)據(jù)和標簽數(shù)據(jù).
神經(jīng)網(wǎng)絡(luò)是由大量感知器連接而成的計算模型.一般包括輸入層、中間層和輸出層,具有模擬非線性函數(shù)的強大能力.單個感知器結(jié)構(gòu)如圖1所示,xi為輸入數(shù)據(jù)、wi為連接權(quán)重,f(·)為激活函數(shù)(如sigmoid、tanx、softmax、relu).在神經(jīng)網(wǎng)絡(luò)搭建過程中,輸入節(jié)點和輸出節(jié)點感知器數(shù)量是固定的,由輸入數(shù)據(jù)特征數(shù)和輸出數(shù)據(jù)標簽數(shù)決定,可通過調(diào)整中間層深度和節(jié)點數(shù)來滿足用戶的要求.
圖1 單個感知器
預(yù)測誤差的大小是評價一個模型可行性或性能的重要指標,通常是對一組測試數(shù)據(jù)通過模型計算出預(yù)測值,然后與實際值進行比較從而求得兩者之間的誤差.本文采用常用的平均絕對誤差(MAE)和均方誤差(MSE)來評價各模型,數(shù)值越小則效果越好.
本節(jié)將對不同類型的時間序列數(shù)據(jù)和單神經(jīng)網(wǎng)絡(luò)預(yù)測模型進行分析研究,包括數(shù)據(jù)格式轉(zhuǎn)換、分割訓練數(shù)據(jù)集和測試數(shù)據(jù)集,基本模型分三部分.
基本的時序數(shù)據(jù)是單變量時序數(shù)據(jù),在用于神經(jīng)網(wǎng)絡(luò)預(yù)測模型時,需要重新構(gòu)建為監(jiān)督學習數(shù)據(jù)格式.例如,單變量時序數(shù)據(jù)如表1所示,包括時間和測量數(shù)據(jù).針對表1中的數(shù)據(jù)(假設(shè)用變量X表示),在時間步長為3、預(yù)測下一個時間點數(shù)值的情況下,需要將X數(shù)據(jù)轉(zhuǎn)換為以下監(jiān)督數(shù)據(jù)格式,如表2所示.
表1 單變量時序數(shù)據(jù)
一個常用于預(yù)測的淺層BP神經(jīng)網(wǎng)絡(luò)模型,一般包括一個輸入層、一個隱藏層和一個輸出層.針對表2數(shù)據(jù)集構(gòu)建的BP神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖2所示,其中輸入層節(jié)點數(shù)為3由輸入數(shù)據(jù)的特征數(shù)量決定;標簽數(shù)據(jù)的特征數(shù)量決定了輸出層節(jié)點數(shù)1.需要強調(diào)的是該模型必須將原始的時序測量數(shù)據(jù)格式轉(zhuǎn)換為監(jiān)督學習數(shù)據(jù)格式.
圖2 淺層BP神經(jīng)網(wǎng)絡(luò)
表2 監(jiān)督學習數(shù)據(jù)格式
LSTM是一種遞歸神經(jīng)網(wǎng)絡(luò)的改進模型,能通過神經(jīng)元門獲得需保留的歷史信息來幫助對未來的預(yù)測.LSMT模型的輸入數(shù)據(jù)的維度為3D,所以需要把二維數(shù)據(jù)(樣本數(shù)、特征數(shù))格式轉(zhuǎn)換為三維數(shù)據(jù)(樣本數(shù)、步長、特征數(shù))格式.多變量多步長的時間序列格式要求如表3所示.根據(jù)步長滑動窗口得到需要的數(shù)據(jù)樣例,并重構(gòu)維度,這樣才可以用于模型訓練.
表3 多特征與標簽
從表3中可以看到時序數(shù)據(jù)處理后轉(zhuǎn)換為輸入數(shù)據(jù)集和標簽數(shù)據(jù)集,設(shè)定步長為3,輸入數(shù)據(jù)特征數(shù)量為4,則滑動窗口大小為3*4.窗口從首行開始滑動至行尾(-1行),構(gòu)建了維度為(4*3*4)的輸入數(shù)據(jù)樣本,標簽列y1,y2,y3,y4分別與之對應(yīng),這種格式是根據(jù)模型的輸入要求確定的.
LSTM模型是一種RNN結(jié)構(gòu),RNN的基本神經(jīng)元結(jié)構(gòu)如圖3所示,其隱藏層神經(jīng)元s(t時刻)的輸入即來自t時刻的x輸入單元,又來自上一時間(t-1時刻)的s神經(jīng)元,設(shè)U和W分別表示對應(yīng)的權(quán)重矩陣,即St=f(U*Xt+W*St-1).對圖3展開后得到如圖4所示的結(jié)構(gòu),即一個由三層網(wǎng)絡(luò)構(gòu)建在t-1時刻和t時刻的隱藏層連接圖.
圖3 LSTM基本神經(jīng)元結(jié)構(gòu)
圖4 RNN隱藏層神經(jīng)元連接結(jié)構(gòu)
LSTM適合于處理和預(yù)測時間序列中間隔和延遲較長的事件,對RNN模型中的神經(jīng)元進行改進增加三個門,分別表示忘記門、輸入門和輸出門.其中輸入門學習來決定何時讓激活傳入存儲單元,而輸出門學習決定何時讓激活傳出存儲單元,遺忘門決定要從上一時刻的細胞狀態(tài)中丟棄什么信息,保留哪些信息.
CNN卷積網(wǎng)絡(luò)模型在圖像識別領(lǐng)域的性能非常顯著[6].1998年紐約大學Yann LeCun提出的CNN,本質(zhì)上是一個采用局部連接和共享權(quán)值的多層感知機.與BP多層感知機層與層之間神經(jīng)元全連接不同的是,卷積神經(jīng)網(wǎng)絡(luò)層與層之間的神經(jīng)元節(jié)點是局部連接形式,充分利用了層間局部空間相關(guān)性,將相鄰每一層的神經(jīng)元節(jié)點只和它相近的上層神經(jīng)元節(jié)點連接;另一個特點是卷積層的每一個卷積濾波器(一般采用多個濾波器)重復作用于整個感受野中,對輸入圖像進行卷積,卷積結(jié)果構(gòu)成了輸入數(shù)據(jù)的特征.這種局部感知和共享權(quán)重的特點是:一方面減少了權(quán)值的數(shù)量,使得網(wǎng)絡(luò)易于優(yōu)化;另一方面降低了過擬合的風險.常用的最大池化采樣方法的價值體現(xiàn)在兩個方面:(1)它降低了來自上層隱藏層的計算復雜度;(2)這些池化單元具有平移不變性,增強了對位移的魯棒性.CNN卷積模型能有效獲取二維數(shù)據(jù)的重要特征,這對于多步長和多變量的時間序列數(shù)據(jù)特征提取非常重要.對于CNN模型在時間序列預(yù)測中的應(yīng)用,假如時間序列數(shù)據(jù)(有3個特征)構(gòu)建預(yù)測監(jiān)督學習數(shù)據(jù)格式和卷積池化過程(如圖5所示),其時間序列數(shù)據(jù)的特征數(shù)量為3、時間步長為2;通過CNN卷積獲取時序數(shù)據(jù)的特征并池化,之后作為預(yù)測模型的輸入數(shù)據(jù).該方法用于混合神經(jīng)網(wǎng)絡(luò)的武陵山片區(qū)氣候預(yù)測模型的子模型之一.
圖5 CNN時序數(shù)據(jù)卷積和特征池化
CNN模型的訓練算法包括兩個階段:
第一階段,向前傳播階段:
(1)從樣本集中取一個樣本,輸入網(wǎng)絡(luò);
(2)計算相應(yīng)的實際輸出.在此階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層.這個過程也是網(wǎng)絡(luò)在完成訓練后正常執(zhí)行時的過程.
第二階段,向后傳播階段:
(1)計算實際輸出與相應(yīng)理想輸出的差;
(2)按極小化誤差的方法調(diào)整權(quán)矩陣.
移動互聯(lián)網(wǎng)的快速發(fā)展,導致數(shù)據(jù)量急劇增加,并且淺層神經(jīng)網(wǎng)絡(luò)或單神經(jīng)網(wǎng)絡(luò)模型在時序預(yù)測方面的應(yīng)用明顯能力不足.本文武陵山片區(qū)的氣候序列數(shù)據(jù)提出了一種深度混合神經(jīng)網(wǎng)絡(luò)預(yù)測模型[7](DHNN).該模型主要由LSTM和CNN子模型組合而成,實現(xiàn)了端到端的學習和訓練,節(jié)省了人工成本和人為誤差.DHNN模型的基本結(jié)構(gòu)如圖6所示,LSTM子模型接受氣候時間序列文本數(shù)據(jù),CNN子模型接受氣候圖像數(shù)據(jù),之后對兩個子模型進行合并輸入到淺層神經(jīng)網(wǎng)絡(luò)預(yù)測層[9].
圖6 混合神經(jīng)網(wǎng)絡(luò)
多步長和多特征的時序氣候數(shù)據(jù)張量表示,能表達數(shù)據(jù)的結(jié)構(gòu)信息、時序信息和內(nèi)在特征.構(gòu)建的DHNN模型中的LSTM子模型和CNN子模型可以有效抽取時序氣候張量數(shù)據(jù)不同維度的特征.因此對獲取的武陵山片區(qū)氣候數(shù)據(jù),首先要轉(zhuǎn)換為具有監(jiān)督學習的高維張量數(shù)據(jù)格式,滿足模型的輸入要求.用于深度混合神經(jīng)預(yù)測模型的實驗數(shù)據(jù)來自武陵山片區(qū)天氣預(yù)報部門.
為了評估各模型在實驗數(shù)據(jù)上的性能,本文將混合神經(jīng)網(wǎng)絡(luò)模型與單模型MLP、LSTM和CNN進行了實驗性能對比.實驗采用了回歸代價函數(shù)平均絕對誤差(MAE)和均方誤差(MSE).
(1)MAE是一種用于回歸模型的損失函數(shù),計算目標值和預(yù)測值之差的絕對值期望,能更好地反映預(yù)測值誤差的實際情況.MAE定義如下式,其中yi為實際值為預(yù)測值.
(2)MSE是最常用的回歸損失函數(shù),計算預(yù)測值與真實值之差平方和的期望,MSE可以評價數(shù)據(jù)的變化程度,MSE的值越小,說明預(yù)測模型描述實驗數(shù)據(jù)具有更好的精確度.MSE定義如下式,其中yi為實際值為預(yù)測值.
武陵山片區(qū)是中國中西部以武陵山命名的多山區(qū)域,面積達17.18萬平方公里,位于湖南、湖北、重慶和貴州的交界處.該片區(qū)因為平地少、多梯田,農(nóng)業(yè)收入受天氣影響較大.獲取跨度2011年至2020年每天的氣候信息,構(gòu)成了一個三維的(時間*地點*數(shù)據(jù))張量數(shù)據(jù)集[10],如圖7所示.這里的數(shù)據(jù)分為文本數(shù)據(jù)和圖像數(shù)據(jù).下面以武陵山片區(qū)懷化為例,給出相關(guān)部分實驗數(shù)據(jù),如圖8為懷化2011年至2020年的溫度變化曲線,可以看出2019年的冬季數(shù)據(jù)有異常,為此本實驗進行了適當調(diào)整.
圖7 張量數(shù)據(jù)
圖8 懷化2011年至2020年溫度變化
實驗過程中數(shù)據(jù)和模型結(jié)構(gòu)(深度和節(jié)點數(shù))對預(yù)測性能影響較大.首先對獲取的時間序列數(shù)據(jù)需要進行預(yù)測處理:(1)空值處理,采取均值填充和刪除策略;(2)字符串序列進行數(shù)字化;(3)對數(shù)據(jù)進行0-1的標準化;(4)分割數(shù)據(jù)集,訓練集數(shù)據(jù)占比80%,驗證集數(shù)據(jù)為10%,檢驗數(shù)據(jù)集占比10%;(5)時序數(shù)據(jù)監(jiān)督化,因為時序數(shù)據(jù)不能滿足監(jiān)督學習模型的輸入要求,所以需要將原始數(shù)據(jù)進行監(jiān)督學習格式化;(6)時間步長選擇,不同的時間步長決定了樣本數(shù)的數(shù)量和訓練結(jié)果.其次由于神經(jīng)網(wǎng)絡(luò)模型深度和各層神經(jīng)元數(shù)量的不同,預(yù)測結(jié)果也不同,采取網(wǎng)格搜索方法調(diào)整優(yōu)化各類參數(shù)(如深度、各層神經(jīng)元數(shù)等),從而找出理想的參數(shù)組合.梯度消失和爆炸是神經(jīng)網(wǎng)絡(luò)模型的先天不足,是反向傳播過程中激活函數(shù)求導所致,這是需要注意和解決一個問題.本文使用Relu激活函數(shù)和Batchnorm來防止該現(xiàn)象的發(fā)生.相反,SLTM模型由于其神經(jīng)元中設(shè)置門操作,不會出現(xiàn)梯度問題.
本小節(jié)將使用BP、LSTM、CNN和DHNN四種模型完成實驗和數(shù)據(jù)對比.
圖10 LSTM模型預(yù)測
圖11 CNN模型預(yù)測
根據(jù)模型評估尺度MAE和MSE,表4給出了各模型相關(guān)數(shù)據(jù).
表4 預(yù)測數(shù)據(jù)集上的評估數(shù)據(jù)
從表4可以看出,BP模型的性能最差,混合模型的性能最好,這主要是各模型對數(shù)據(jù)特征的提取能力不同所致.
模型訓練后,測試集上數(shù)據(jù)的表現(xiàn)能反映模型的泛化能力.如圖9至圖12分別反映BP、LSTM、CNN和DHNN模型的預(yù)測能力.可以看出,DHNN模型擬合較好.
圖9 BP模型預(yù)測
圖12 HDNN模型預(yù)測
時序預(yù)測模型是對具有時間維度和依賴性特征的張量數(shù)據(jù)進行建模.本文根據(jù)武陵山片區(qū)的數(shù)據(jù)特征,給出了單個模型和混合模型預(yù)測的相關(guān)實驗.對時序模型預(yù)測的誤差進行了評估和比較,發(fā)現(xiàn)數(shù)據(jù)和模型具有同等重要性.清洗和標準化后的數(shù)據(jù)能有效提高模型的泛化性能,不同深度或各層節(jié)點神經(jīng)元數(shù),也同樣嚴重影響模型的預(yù)測效果.誤差梯度的爆炸和消失一直是神經(jīng)網(wǎng)絡(luò)模型固有的特征,不利于模型的訓練和預(yù)測,這方面還需要認真研究和探討.