馮鵬宇,金 韜,沈一選,但 俊
(浙江大學(xué)信息與電子工程學(xué)院,浙江 杭州 310027)
近些年,城市內(nèi)澇一直是城市管理部門非常棘手的問題,尤其在雨季,嚴(yán)重妨礙了城市居民的日常生活。已有研究者開展對(duì)水位實(shí)時(shí)監(jiān)測(cè)技術(shù)的研究[1],但對(duì)水位未來變化趨勢(shì)預(yù)測(cè)的研究較少。如果對(duì)城市地下水位能進(jìn)行準(zhǔn)確預(yù)測(cè),市政水利部門能及時(shí)采取相關(guān)措施,對(duì)緩解城市內(nèi)澇問題具有重要價(jià)值。傳統(tǒng)的水位預(yù)測(cè)模型通常用線性函數(shù)表征水位的動(dòng)態(tài)變化過程,忽略了復(fù)雜的外部條件因素,無法得到精確的預(yù)測(cè)結(jié)果。因此,研究者們將一些傳統(tǒng)的灰色模型、季節(jié)性差分自回歸滑動(dòng)平均模型(SARIMA)等隨機(jī)模型用于水位的預(yù)測(cè)[2,3]。這些傳統(tǒng)的隨機(jī)模型能夠提取水位數(shù)據(jù)的非線性特性,一定程度上提升了水位預(yù)測(cè)的精確度,但是這些模型的建立需要大量復(fù)雜的降雨量、溫度、物理因素等參數(shù),限制了它們的實(shí)際應(yīng)用。近幾年,隨著機(jī)器學(xué)習(xí)技術(shù)的不斷發(fā)展,研究人員開始將支持向量回歸(SVR)、人工神經(jīng)網(wǎng)絡(luò)(ANN)等機(jī)器學(xué)習(xí)方法用于提取水位數(shù)據(jù)里蘊(yùn)含的各種信息[4,5]。相比于傳統(tǒng)的模型,這些機(jī)器學(xué)習(xí)方法很大程度上簡(jiǎn)化了預(yù)測(cè)模型的構(gòu)造難度,并且在預(yù)測(cè)精度上得到了提升。但是這些模型不能獲取輸入水位數(shù)據(jù)之間的關(guān)聯(lián)性,隨著預(yù)測(cè)時(shí)間的增加,預(yù)測(cè)精度會(huì)顯著下降。
水位數(shù)據(jù)本質(zhì)上是時(shí)間序列,科研者們嘗試用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)進(jìn)行水位預(yù)測(cè)[6]。并且針對(duì)傳統(tǒng)RNN訓(xùn)練過程中梯度消失和爆炸的問題,科研者們進(jìn)一步應(yīng)用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)以及門控循環(huán)單元(GRU)對(duì)這些問題進(jìn)行改進(jìn)[7,8]。這使得在較長(zhǎng)的時(shí)間序列預(yù)測(cè)中,獲得比以往更高的精度。但是LSTM與GRU并行運(yùn)算能力差,并且在訓(xùn)練過程中,它們無法將權(quán)重精準(zhǔn)地分配給重要的信息,預(yù)測(cè)精度依然有進(jìn)一步提升的空間。
Transformer模型利用其自注意力(Self-attention)機(jī)制進(jìn)行快速并行運(yùn)算,改善了RNN、LSTM并行計(jì)算能力差的缺點(diǎn)。地下水位數(shù)值作為一個(gè)時(shí)間序列,也可以引入Transformer模型進(jìn)行預(yù)測(cè)[9,10]。本文中基于多頭注意力和位置編碼機(jī)制,提出了一種適用于地下水位預(yù)測(cè)的Transformer模型,在此基礎(chǔ)上將卷積神經(jīng)網(wǎng)絡(luò)(CNN)與Transformer模型相結(jié)合,提出了CNN-Transformer地下水位預(yù)測(cè)模型。利用開源的地下水位數(shù)據(jù)集對(duì)模型進(jìn)行訓(xùn)練以及仿真。首先,通過單個(gè)監(jiān)測(cè)站點(diǎn)的地下水位數(shù)據(jù)集對(duì)Transformer模型進(jìn)行訓(xùn)練,然后對(duì)該站點(diǎn)地下水位進(jìn)行預(yù)測(cè),預(yù)測(cè)結(jié)果表明Transformer模型相比于RNN系列的時(shí)間序列模型,能夠?qū)崿F(xiàn)對(duì)地下水位數(shù)據(jù)更長(zhǎng)時(shí)間、更高精度的預(yù)測(cè)。隨后,通過多個(gè)監(jiān)測(cè)站點(diǎn)的地下水位數(shù)據(jù)集對(duì)CNN-Transformer模型進(jìn)行訓(xùn)練,從空間、時(shí)間兩個(gè)角度提取水位數(shù)據(jù)中蘊(yùn)含的各種復(fù)雜信息,預(yù)測(cè)其中一個(gè)站點(diǎn)的地下水位。預(yù)測(cè)結(jié)果表明,CNN-Transformer模型獲得了比Transformer更高的地下水位預(yù)測(cè)精度。
2.1.1 注意力機(jī)制(Attention)
注意力(Attention)機(jī)制思想由Bahdanau D等人提出[11],該思想的提出受到人對(duì)所看到的視覺圖像注意力通常集中在特定的部分的啟發(fā)。之后科研者對(duì)注意力機(jī)制進(jìn)行了一系列研究,取得了眾多成果。
圖1 多頭注意力機(jī)制結(jié)構(gòu)(Multi-Head Attention)
(1)
得到的權(quán)重再與向量v相乘。在計(jì)算注意力時(shí),將所有m個(gè)輸入變換得到的向量qi、ki、vi組合成矩陣Q=[q1q2…qm]T、K=[k1k2…km]T、V=[v1v2…vm]T,得到權(quán)重的求和表示,整個(gè)過程可以用式(2)表示
(2)
自注意力機(jī)制在對(duì)話系統(tǒng)、推薦系統(tǒng)等方面已經(jīng)證明了其優(yōu)勢(shì)[13-15]。在時(shí)間序列數(shù)據(jù)預(yù)測(cè)方面,相比于神經(jīng)網(wǎng)絡(luò)中其它可以用于時(shí)間序列數(shù)據(jù)預(yù)測(cè)的模型,如RNN、LSTM、GRU,自注意力機(jī)制也有其優(yōu)勢(shì)。RNN系列的神經(jīng)網(wǎng)絡(luò)模型,主要依賴兩個(gè)輸入,即當(dāng)前時(shí)刻的輸入以及前一時(shí)刻隱藏層狀態(tài)的輸出。時(shí)間序列的歷史信息是從前往后傳輸?shù)?當(dāng)前時(shí)刻的計(jì)算必須在之前時(shí)刻的數(shù)據(jù)都處理完成后才可以進(jìn)行,序列之間存在依賴關(guān)系,并行計(jì)算能力較差。在自注意力機(jī)制處理時(shí)間序列時(shí),無論兩個(gè)時(shí)刻時(shí)間相差多少,做注意力計(jì)算時(shí)“距離”都是相同的,并且當(dāng)前時(shí)刻的計(jì)算并不依賴前一時(shí)刻的輸入,這使得自注意力機(jī)制具有強(qiáng)大的并行計(jì)算能力。除此之外,注意力機(jī)制能將更多的權(quán)重分配給時(shí)間序列上更重要的信息。這兩方面使得自注意力機(jī)制在處理時(shí)間序列數(shù)據(jù)上相比于其它神經(jīng)網(wǎng)絡(luò)更具優(yōu)勢(shì)。
MultiHead(Q,K,V)=Concat(Head1,…,Headh)Wo
(3)
Headi=Attention(Qi,Ki,Vi)
(4)
對(duì)于多頭注意力機(jī)制相比于單個(gè)自注意力機(jī)制的優(yōu)勢(shì),科研者們進(jìn)行了一系列的研究和討論[16-18]。多頭注意力模型相比于單個(gè)自注意力模型,它可以形成多個(gè)子空間,這樣可以讓注意力模型關(guān)注輸入數(shù)據(jù)不同方面的信息,模型可以從輸入數(shù)據(jù)中提取更豐富的特征。因此,在Transformer模型中,采用了多頭注意力機(jī)制。通常情況下,頭數(shù)h越大,模型的性能越強(qiáng)大,但相應(yīng)的參數(shù)會(huì)增加,模型的訓(xùn)練時(shí)間也會(huì)加長(zhǎng)。在水位預(yù)測(cè)模型的設(shè)計(jì)過程中,經(jīng)過調(diào)試比較發(fā)現(xiàn)h為3時(shí),可以在訓(xùn)練時(shí)間可以接受的范圍內(nèi)獲得較好的預(yù)測(cè)效果,因此設(shè)定h=3,即設(shè)計(jì)成3頭注意力機(jī)制。
2.1.2 網(wǎng)絡(luò)設(shè)計(jì)
圖2是Transformer預(yù)測(cè)模型的網(wǎng)絡(luò)結(jié)構(gòu),模型包含編碼器與解碼器兩個(gè)部分。
圖2 Transformer地下水位預(yù)測(cè)模型
編碼器(Encoder)由輸入層、位置編碼以及3個(gè)相同的編碼層組成。輸入的水位數(shù)據(jù)在輸入層中經(jīng)過一個(gè)全連接網(wǎng)絡(luò)映射成dmodel維向量,與位置編碼所得的向量相加輸入到編碼層中。每個(gè)編碼層由1個(gè)多頭注意力模塊和1個(gè)前饋神經(jīng)網(wǎng)絡(luò)組成,并且多頭注意力模塊和前饋神經(jīng)網(wǎng)絡(luò)的輸出都進(jìn)行了歸一化處理。其中前饋神經(jīng)網(wǎng)絡(luò)由兩個(gè)線性變換組成,中間是一個(gè)線性整流激活函數(shù)relu(x)=max(0,x),前饋神經(jīng)網(wǎng)絡(luò)可由式(5)表示,其中W1、W2、b1、b2分別為兩次線性變換的變換矩陣和偏置項(xiàng)。
FFN(x)=relu(x)W2+b2=max(0,xW1+b1)W2+b2
(5)
前兩個(gè)編碼層的輸出都作為下一個(gè)編碼層的輸入,最后一個(gè)編碼層輸出dmodel維向量,輸入到解碼器中。
多頭注意力機(jī)制具有強(qiáng)大并行運(yùn)算能力的同時(shí),由于每個(gè)時(shí)刻輸入數(shù)據(jù)的運(yùn)算并不受之前時(shí)刻輸入數(shù)據(jù)的影響,使得其在提取時(shí)間序列數(shù)據(jù)信息時(shí)忽略了數(shù)據(jù)之間的時(shí)間排序。因此,在Transformer模型的輸入數(shù)據(jù)中必須加上表示時(shí)間排序信息的位置信息PE(pos)。在位置編碼方式中,正弦曲線函數(shù)位置編碼能為每一個(gè)時(shí)刻數(shù)據(jù)提供獨(dú)一無二的編碼,相比于Gehring J等人提出的方法[19],正弦曲線函數(shù)是有界函數(shù),可以讓模型接收時(shí)間跨度更長(zhǎng)的時(shí)間序列數(shù)據(jù)。并且,正弦曲線函數(shù)中PE(pos+k) 可以表示成PE(pos) 的線性函數(shù),這使得正弦曲線函數(shù)位置編碼除了能讓模型獲得時(shí)間序列的絕對(duì)位置信息,還可以讓模型關(guān)注時(shí)間序列數(shù)據(jù)的相對(duì)位置信息。綜上,采用正弦曲線函數(shù)來編碼輸入數(shù)據(jù)的位置信息,
(6)
式中pos為輸入數(shù)據(jù)的位置,i表示輸入數(shù)據(jù)的維度,位置編碼得到dmodel維的位置編碼向量。
解碼器(Decoder)由輸入層、位置編碼以及3個(gè)相同的解碼層組成。相比于編碼層,解碼層在多頭注意力機(jī)制之前插入了一個(gè)掩膜多頭注意力機(jī)制(Masked Multi-Head Attention)。相比于多頭注意力機(jī)制,掩膜多頭注意力機(jī)制增加了掩膜機(jī)制,即當(dāng)處理T 時(shí)刻的特征向量時(shí),模型看不到未來的時(shí)間序列,只能看到T-1 時(shí)刻及之前的結(jié)果。設(shè)計(jì)Transformer模型的解碼器輸入與目標(biāo)輸出相差1個(gè)時(shí)刻位置的偏移,通過先前時(shí)刻位置的特征向量來預(yù)測(cè)之后時(shí)刻位置的特征向量,即解碼器的上一刻的輸出向量作為掩膜多頭注意力機(jī)制的輸入,輸入到解碼器中。解碼器輸出向量經(jīng)過一個(gè)全連接神經(jīng)網(wǎng)絡(luò)直接映射得到最終的目標(biāo)數(shù)值。
在時(shí)間序列的預(yù)測(cè)方面,Transformer模型相比于RNN系列模型能更好更快地找到時(shí)間序列數(shù)據(jù)之間的關(guān)系,從數(shù)據(jù)中提取大量和地下水位有關(guān)的信息。但所設(shè)計(jì)的Transformer預(yù)測(cè)模型主要是從地下水位數(shù)據(jù)的時(shí)間角度來獲取有關(guān)地下水位的信息,不同監(jiān)測(cè)站點(diǎn)地下水位的空間信息依然未知。如果在水位時(shí)間序列數(shù)據(jù)預(yù)測(cè)的基礎(chǔ)上進(jìn)一步尋求獲取不同站點(diǎn)之間地下水位數(shù)據(jù)的空間關(guān)聯(lián)性,地下水位的預(yù)測(cè)精度會(huì)進(jìn)一步提高。
因?yàn)镃NN在空間特征提取上有非常強(qiáng)大的性能[20],所以其在圖像等眾多領(lǐng)域應(yīng)用廣泛[21,22]。將Transformer模型與CNN結(jié)合,這樣可以從時(shí)間和空間兩個(gè)角度提取水位數(shù)據(jù)中的信息。使用地勢(shì)相關(guān)性較強(qiáng)的4個(gè)水位監(jiān)測(cè)站點(diǎn)的數(shù)據(jù),每次輸入4個(gè)站點(diǎn)20天連續(xù)60個(gè)不同時(shí)刻的地下水位數(shù)據(jù),卷積過程如圖3所示。
圖3 地下水位數(shù)據(jù)卷積處理過程
以第一次卷積計(jì)算為例,尺寸為1×2的卷積核在維度為[60,4]的輸入數(shù)據(jù)上向右、向下分別和對(duì)應(yīng)的矩陣元素相乘并求和,經(jīng)過線性整流激活函數(shù)得到維度為[60,3]的數(shù)據(jù),第一次卷積使用了32個(gè)卷積核,最終得到數(shù)據(jù)的尺寸為[60,4,32],卷積計(jì)算過程可由式(7)表示。
(7)
式中a為卷積運(yùn)算輸出,x為輸入的地下水位數(shù)據(jù),w為卷積核參數(shù),b為偏置參數(shù)。
基于CNN-Transformer的地下水位預(yù)測(cè)模型如圖4所示,輸入為4個(gè)監(jiān)測(cè)站點(diǎn)20天60個(gè)時(shí)刻的地下水位數(shù)據(jù),維度為[None,60,4,1],這里的None 表示輸入數(shù)據(jù)的批次。所設(shè)計(jì)的CNN模型由3個(gè)卷積層組成,第一個(gè)卷積層有32個(gè)卷積核,輸出數(shù)據(jù)維度為[None,60,3,32];第二個(gè)卷積層有64個(gè)卷積核,輸出數(shù)據(jù)維度為[None,60,2,64],第三個(gè)卷積層有1個(gè)卷積核,輸出數(shù)據(jù)維度為[None,60,1,1]。設(shè)計(jì)的CNN每個(gè)卷積層的輸出不需要進(jìn)行池化(Pooling)操作,第三個(gè)卷積層輸出的數(shù)據(jù)為CNN模型的最終輸出,這樣得到的數(shù)據(jù)中包含了4個(gè)不同區(qū)域地下水位之間的空間關(guān)聯(lián)信息。CNN輸出數(shù)據(jù)作為Transformer模型的輸入數(shù)據(jù)在Transformer中進(jìn)行進(jìn)一步運(yùn)算得到預(yù)測(cè)結(jié)果。
圖4 基于CNN和Transformer的地下水位預(yù)測(cè)模型
從開源網(wǎng)站https:∥github.com/jdkj dk111/Groundwater-level-monitoring-data-in-Hangzhou獲取杭州市四個(gè)監(jiān)測(cè)點(diǎn)的開源地下水位數(shù)據(jù)集。其地下水位采集方式如圖5所示,采用超聲波液位傳感器進(jìn)行地下水位數(shù)據(jù)采集,定義超聲波傳感器發(fā)送端與液面的距離h 為地下水位值。該數(shù)據(jù)采集時(shí)間為2018年3月7日到2020年5月27日每天8時(shí)、16時(shí)、24時(shí)3個(gè)時(shí)刻如圖6所示的四個(gè)站點(diǎn)的地下水位值。本文中將使用該數(shù)據(jù)集進(jìn)行模型訓(xùn)練與仿真。
圖5 地下水位數(shù)據(jù)采集示意圖
圖6 地下水位監(jiān)測(cè)站點(diǎn)示意圖
首先驗(yàn)證所設(shè)計(jì)的Transformer預(yù)測(cè)模型預(yù)測(cè)地下水位的能力。選取數(shù)據(jù)集中監(jiān)測(cè)站點(diǎn)C的數(shù)據(jù)集進(jìn)行仿真驗(yàn)證。
因?yàn)門ransformer模型對(duì)數(shù)據(jù)的尺度非常敏感,在模型訓(xùn)練之前將數(shù)據(jù)集中所有數(shù)據(jù)進(jìn)行歸一化處理,將所有水位數(shù)據(jù)歸一化到[0,1]的范圍內(nèi),歸一化公式為
(8)
式中xi是原始的水位數(shù)據(jù),xmax、xmin分別為數(shù)據(jù)集中的最大水位值與最小水位值,x′ 為歸一化后的地下水位數(shù)據(jù)。
(9)
之后對(duì)訓(xùn)練后的模型進(jìn)行測(cè)試。每次輸入連續(xù)20天60個(gè)時(shí)刻的地下水位值,預(yù)測(cè)之后連續(xù)4天12個(gè)時(shí)刻的地下水位值,連續(xù)預(yù)測(cè)15次,預(yù)測(cè)60天共180個(gè)時(shí)間點(diǎn)的地下水位值。預(yù)測(cè)結(jié)果如圖7所示,兩條曲線分別表示監(jiān)測(cè)點(diǎn)C地下水位原始數(shù)據(jù)和預(yù)測(cè)值。從預(yù)測(cè)結(jié)果可以看出,預(yù)測(cè)模型對(duì)未來的地下水位變化趨勢(shì)有較好的預(yù)判。
圖7 基于單站點(diǎn)數(shù)據(jù)的地下水位預(yù)測(cè)
選取4個(gè)監(jiān)測(cè)站點(diǎn)A、B、C、D的地下水位數(shù)據(jù)集。與單站點(diǎn)同樣的方法,數(shù)據(jù)集經(jīng)過歸一化處理后,分為8:2的訓(xùn)練集和驗(yàn)證集。
模型訓(xùn)練時(shí),輸入由4個(gè)站點(diǎn)在同一時(shí)刻的數(shù)值組成的維度為4 的向量[x′A,x′B,x′C,x′D]。每次輸入連續(xù)20天60個(gè)時(shí)刻4個(gè)站點(diǎn)的地下水位值,預(yù)測(cè)之后連續(xù)4天12個(gè)時(shí)刻站點(diǎn)C的地下水位值,訓(xùn)練批次大小為40。輸入X′n經(jīng)過CNN網(wǎng)絡(luò)得到CNN(X′n),再輸入到Transformer模型中得到預(yù)測(cè)結(jié)果。訓(xùn)練過程中同樣采用如下L2范數(shù)損失函數(shù),
(10)
并采用Adam作為優(yōu)化器,設(shè)置學(xué)習(xí)率為0.005,設(shè)置訓(xùn)練次數(shù)為100次。
之后對(duì)訓(xùn)練后的模型進(jìn)行測(cè)試。每次輸入4個(gè)站點(diǎn)連續(xù)20天60個(gè)時(shí)刻的地下水位值,預(yù)測(cè)之后站點(diǎn)C連續(xù)4天12個(gè)時(shí)刻的地下水位值,連續(xù)預(yù)測(cè)15次,預(yù)測(cè)站點(diǎn)C 60天共180個(gè)時(shí)間點(diǎn)的地下水位值。預(yù)測(cè)結(jié)果如圖8所示,其中5條曲線分別表示4個(gè)站點(diǎn)地下水位原始數(shù)據(jù)以及站點(diǎn)C的地下水位預(yù)測(cè)值??梢钥闯龌诙嗾军c(diǎn)地下水位的預(yù)測(cè)曲線擬合度優(yōu)于基于單站點(diǎn)的地下水位預(yù)測(cè)曲線。
圖8 基于多站點(diǎn)數(shù)據(jù)的站點(diǎn)C地下水位預(yù)測(cè)
為了比較所設(shè)計(jì)模型的地下水位預(yù)測(cè)效果,選取RMSE(均方根誤差)和NSE(納什效率系數(shù))來對(duì)所設(shè)計(jì)的預(yù)測(cè)模型進(jìn)行評(píng)價(jià)。RMSE、NSE的定義分別為[24],
(11)
(12)
同時(shí),為了比較CNN-Transformer模型與Transformer模型以及RNN系列的水位預(yù)測(cè)模型之間的預(yù)測(cè)效果,分別利用傳統(tǒng)RNN、LSTM、GRU三個(gè)模型,通過單站點(diǎn)C的地下水位數(shù)據(jù)集進(jìn)行訓(xùn)練,同樣每次預(yù)測(cè)4天12個(gè)時(shí)刻,預(yù)測(cè)15次共60天的站點(diǎn)C的地下水位值。將預(yù)測(cè)結(jié)果與所設(shè)計(jì)的兩個(gè)模型進(jìn)行比較。表1是5個(gè)模型之間RMSE、NSE的比較。
表1 不同模型RMSE、NSE比較
通過表1的結(jié)果可以說明,提出的CNN-Transformer與Transformer模型的預(yù)測(cè)精度明顯優(yōu)于RNN系列的地下水位預(yù)測(cè)模型,并且CNN-Transformer模型預(yù)測(cè)結(jié)果要略優(yōu)于Transformer預(yù)測(cè)模型,說明利用CNN可以從多站點(diǎn)地下水位數(shù)據(jù)獲取數(shù)據(jù)之間的空間關(guān)聯(lián)性,能夠進(jìn)一步優(yōu)化從時(shí)間角度進(jìn)行信息提取的Transformer模型。
再對(duì)每個(gè)時(shí)刻5個(gè)模型的RMSE值進(jìn)行比較,結(jié)果見表2。
表2 各個(gè)模型不同時(shí)刻RMSE比較
圖9是5個(gè)模型在12個(gè)時(shí)刻RMSE的變化趨勢(shì)比較??梢杂^察到,在短期的預(yù)測(cè)時(shí)各模型的預(yù)測(cè)效果均較好,相互間的差異也較小,隨著預(yù)測(cè)時(shí)間的增加,各個(gè)模型預(yù)測(cè)精度會(huì)越來越差,相互間的差異也增大。Transformer系列模型在長(zhǎng)時(shí)間預(yù)測(cè)的精度明顯優(yōu)于RNN系列模型,Transformer系列模型相比于RNN系列模型在長(zhǎng)時(shí)間的地下水位預(yù)測(cè)中更有優(yōu)勢(shì)。并且CNN-Transformer地下水位預(yù)測(cè)模型由于在時(shí)間角度之外考慮到了地下水位數(shù)據(jù)之間的空間關(guān)聯(lián)性,其預(yù)測(cè)效果整體優(yōu)于Transformer地下水位預(yù)測(cè)模型。
圖9 不同模型每個(gè)時(shí)刻RMSE的變化
Transformer模型可以從時(shí)間角度提取地下水位數(shù)據(jù)的信息,CNN可以從空間角度提取多站點(diǎn)地下水位數(shù)據(jù)之間的關(guān)聯(lián)性,吸取了兩者的優(yōu)點(diǎn),提出了基于CNN-Transformer的地下水位預(yù)測(cè)模型。實(shí)驗(yàn)基于CNN-Transformer模型獲得預(yù)測(cè)結(jié)果的RMSE值和NSE值分別可以達(dá)到0.1427米和0.9651,顯著優(yōu)于其它預(yù)測(cè)模型。