馮鵬宇,金 韜,沈一選,但 俊
(浙江大學信息與電子工程學院,浙江 杭州 310027)
近些年,城市內澇一直是城市管理部門非常棘手的問題,尤其在雨季,嚴重妨礙了城市居民的日常生活。已有研究者開展對水位實時監測技術的研究[1],但對水位未來變化趨勢預測的研究較少。如果對城市地下水位能進行準確預測,市政水利部門能及時采取相關措施,對緩解城市內澇問題具有重要價值。傳統的水位預測模型通常用線性函數表征水位的動態變化過程,忽略了復雜的外部條件因素,無法得到精確的預測結果。因此,研究者們將一些傳統的灰色模型、季節性差分自回歸滑動平均模型(SARIMA)等隨機模型用于水位的預測[2,3]。這些傳統的隨機模型能夠提取水位數據的非線性特性,一定程度上提升了水位預測的精確度,但是這些模型的建立需要大量復雜的降雨量、溫度、物理因素等參數,限制了它們的實際應用。近幾年,隨著機器學習技術的不斷發展,研究人員開始將支持向量回歸(SVR)、人工神經網絡(ANN)等機器學習方法用于提取水位數據里蘊含的各種信息[4,5]。相比于傳統的模型,這些機器學習方法很大程度上簡化了預測模型的構造難度,并且在預測精度上得到了提升。但是這些模型不能獲取輸入水位數據之間的關聯性,隨著預測時間的增加,預測精度會顯著下降。
水位數據本質上是時間序列,科研者們嘗試用循環神經網絡(RNN)進行水位預測[6]。并且針對傳統RNN訓練過程中梯度消失和爆炸的問題,科研者們進一步應用長短時記憶網絡(LSTM)以及門控循環單元(GRU)對這些問題進行改進[7,8]。這使得在較長的時間序列預測中,獲得比以往更高的精度。但是LSTM與GRU并行運算能力差,并且在訓練過程中,它們無法將權重精準地分配給重要的信息,預測精度依然有進一步提升的空間。
Transformer模型利用其自注意力(Self-attention)機制進行快速并行運算,改善了RNN、LSTM并行計算能力差的缺點。地下水位數值作為一個時間序列,也可以引入Transformer模型進行預測[9,10]。本文中基于多頭注意力和位置編碼機制,提出了一種適用于地下水位預測的Transformer模型,在此基礎上將卷積神經網絡(CNN)與Transformer模型相結合,提出了CNN-Transformer地下水位預測模型。利用開源的地下水位數據集對模型進行訓練以及仿真。首先,通過單個監測站點的地下水位數據集對Transformer模型進行訓練,然后對該站點地下水位進行預測,預測結果表明Transformer模型相比于RNN系列的時間序列模型,能夠實現對地下水位數據更長時間、更高精度的預測。隨后,通過多個監測站點的地下水位數據集對CNN-Transformer模型進行訓練,從空間、時間兩個角度提取水位數據中蘊含的各種復雜信息,預測其中一個站點的地下水位。預測結果表明,CNN-Transformer模型獲得了比Transformer更高的地下水位預測精度。
2.1.1 注意力機制(Attention)
注意力(Attention)機制思想由Bahdanau D等人提出[11],該思想的提出受到人對所看到的視覺圖像注意力通常集中在特定的部分的啟發。之后科研者對注意力機制進行了一系列研究,取得了眾多成果。


圖1 多頭注意力機制結構(Multi-Head Attention)

(1)
得到的權重再與向量v相乘。在計算注意力時,將所有m個輸入變換得到的向量qi、ki、vi組合成矩陣Q=[q1q2…qm]T、K=[k1k2…km]T、V=[v1v2…vm]T,得到權重的求和表示,整個過程可以用式(2)表示


(2)
自注意力機制在對話系統、推薦系統等方面已經證明了其優勢[13-15]。在時間序列數據預測方面,相比于神經網絡中其它可以用于時間序列數據預測的模型,如RNN、LSTM、GRU,自注意力機制也有其優勢。RNN系列的神經網絡模型,主要依賴兩個輸入,即當前時刻的輸入以及前一時刻隱藏層狀態的輸出。時間序列的歷史信息是從前往后傳輸的,當前時刻的計算必須在之前時刻的數據都處理完成后才可以進行,序列之間存在依賴關系,并行計算能力較差。在自注意力機制處理時間序列時,無論兩個時刻時間相差多少,做注意力計算時“距離”都是相同的,并且當前時刻的計算并不依賴前一時刻的輸入,這使得自注意力機制具有強大的并行計算能力。除此之外,注意力機制能將更多的權重分配給時間序列上更重要的信息。這兩方面使得自注意力機制在處理時間序列數據上相比于其它神經網絡更具優勢。

MultiHead(Q,K,V)=Concat(Head1,…,Headh)Wo

(3)
Headi=Attention(Qi,Ki,Vi)

(4)

對于多頭注意力機制相比于單個自注意力機制的優勢,科研者們進行了一系列的研究和討論[16-18]。多頭注意力模型相比于單個自注意力模型,它可以形成多個子空間,這樣可以讓注意力模型關注輸入數據不同方面的信息,模型可以從輸入數據中提取更豐富的特征。因此,在Transformer模型中,采用了多頭注意力機制。通常情況下,頭數h越大,模型的性能越強大,但相應的參數會增加,模型的訓練時間也會加長。在水位預測模型的設計過程中,經過調試比較發現h為3時,可以在訓練時間可以接受的范圍內獲得較好的預測效果,因此設定h=3,即設計成3頭注意力機制。
2.1.2 網絡設計
圖2是Transformer預測模型的網絡結構,模型包含編碼器與解碼器兩個部分。

圖2 Transformer地下水位預測模型
編碼器(Encoder)由輸入層、位置編碼以及3個相同的編碼層組成。輸入的水位數據在輸入層中經過一個全連接網絡映射成dmodel維向量,與位置編碼所得的向量相加輸入到編碼層中。每個編碼層由1個多頭注意力模塊和1個前饋神經網絡組成,并且多頭注意力模塊和前饋神經網絡的輸出都進行了歸一化處理。其中前饋神經網絡由兩個線性變換組成,中間是一個線性整流激活函數relu(x)=max(0,x),前饋神經網絡可由式(5)表示,其中W1、W2、b1、b2分別為兩次線性變換的變換矩陣和偏置項。
FFN(x)=relu(x)W2+b2=max(0,xW1+b1)W2+b2
(5)
前兩個編碼層的輸出都作為下一個編碼層的輸入,最后一個編碼層輸出dmodel維向量,輸入到解碼器中。
多頭注意力機制具有強大并行運算能力的同時,由于每個時刻輸入數據的運算并不受之前時刻輸入數據的影響,使得其在提取時間序列數據信息時忽略了數據之間的時間排序。因此,在Transformer模型的輸入數據中必須加上表示時間排序信息的位置信息PE(pos)。在位置編碼方式中,正弦曲線函數位置編碼能為每一個時刻數據提供獨一無二的編碼,相比于Gehring J等人提出的方法[19],正弦曲線函數是有界函數,可以讓模型接收時間跨度更長的時間序列數據。并且,正弦曲線函數中PE(pos+k) 可以表示成PE(pos) 的線性函數,這使得正弦曲線函數位置編碼除了能讓模型獲得時間序列的絕對位置信息,還可以讓模型關注時間序列數據的相對位置信息。綜上,采用正弦曲線函數來編碼輸入數據的位置信息,

(6)
式中pos為輸入數據的位置,i表示輸入數據的維度,位置編碼得到dmodel維的位置編碼向量。
解碼器(Decoder)由輸入層、位置編碼以及3個相同的解碼層組成。相比于編碼層,解碼層在多頭注意力機制之前插入了一個掩膜多頭注意力機制(Masked Multi-Head Attention)。相比于多頭注意力機制,掩膜多頭注意力機制增加了掩膜機制,即當處理T 時刻的特征向量時,模型看不到未來的時間序列,只能看到T-1 時刻及之前的結果。設計Transformer模型的解碼器輸入與目標輸出相差1個時刻位置的偏移,通過先前時刻位置的特征向量來預測之后時刻位置的特征向量,即解碼器的上一刻的輸出向量作為掩膜多頭注意力機制的輸入,輸入到解碼器中。解碼器輸出向量經過一個全連接神經網絡直接映射得到最終的目標數值。
在時間序列的預測方面,Transformer模型相比于RNN系列模型能更好更快地找到時間序列數據之間的關系,從數據中提取大量和地下水位有關的信息。但所設計的Transformer預測模型主要是從地下水位數據的時間角度來獲取有關地下水位的信息,不同監測站點地下水位的空間信息依然未知。如果在水位時間序列數據預測的基礎上進一步尋求獲取不同站點之間地下水位數據的空間關聯性,地下水位的預測精度會進一步提高。
因為CNN在空間特征提取上有非常強大的性能[20],所以其在圖像等眾多領域應用廣泛[21,22]。將Transformer模型與CNN結合,這樣可以從時間和空間兩個角度提取水位數據中的信息。使用地勢相關性較強的4個水位監測站點的數據,每次輸入4個站點20天連續60個不同時刻的地下水位數據,卷積過程如圖3所示。

圖3 地下水位數據卷積處理過程
以第一次卷積計算為例,尺寸為1×2的卷積核在維度為[60,4]的輸入數據上向右、向下分別和對應的矩陣元素相乘并求和,經過線性整流激活函數得到維度為[60,3]的數據,第一次卷積使用了32個卷積核,最終得到數據的尺寸為[60,4,32],卷積計算過程可由式(7)表示。

(7)
式中a為卷積運算輸出,x為輸入的地下水位數據,w為卷積核參數,b為偏置參數。
基于CNN-Transformer的地下水位預測模型如圖4所示,輸入為4個監測站點20天60個時刻的地下水位數據,維度為[None,60,4,1],這里的None 表示輸入數據的批次。所設計的CNN模型由3個卷積層組成,第一個卷積層有32個卷積核,輸出數據維度為[None,60,3,32];第二個卷積層有64個卷積核,輸出數據維度為[None,60,2,64],第三個卷積層有1個卷積核,輸出數據維度為[None,60,1,1]。設計的CNN每個卷積層的輸出不需要進行池化(Pooling)操作,第三個卷積層輸出的數據為CNN模型的最終輸出,這樣得到的數據中包含了4個不同區域地下水位之間的空間關聯信息。CNN輸出數據作為Transformer模型的輸入數據在Transformer中進行進一步運算得到預測結果。

圖4 基于CNN和Transformer的地下水位預測模型
從開源網站https:∥github.com/jdkj dk111/Groundwater-level-monitoring-data-in-Hangzhou獲取杭州市四個監測點的開源地下水位數據集。其地下水位采集方式如圖5所示,采用超聲波液位傳感器進行地下水位數據采集,定義超聲波傳感器發送端與液面的距離h 為地下水位值。該數據采集時間為2018年3月7日到2020年5月27日每天8時、16時、24時3個時刻如圖6所示的四個站點的地下水位值。本文中將使用該數據集進行模型訓練與仿真。

圖5 地下水位數據采集示意圖

圖6 地下水位監測站點示意圖
首先驗證所設計的Transformer預測模型預測地下水位的能力。選取數據集中監測站點C的數據集進行仿真驗證。
因為Transformer模型對數據的尺度非常敏感,在模型訓練之前將數據集中所有數據進行歸一化處理,將所有水位數據歸一化到[0,1]的范圍內,歸一化公式為

(8)
式中xi是原始的水位數據,xmax、xmin分別為數據集中的最大水位值與最小水位值,x′ 為歸一化后的地下水位數據。


(9)

之后對訓練后的模型進行測試。每次輸入連續20天60個時刻的地下水位值,預測之后連續4天12個時刻的地下水位值,連續預測15次,預測60天共180個時間點的地下水位值。預測結果如圖7所示,兩條曲線分別表示監測點C地下水位原始數據和預測值。從預測結果可以看出,預測模型對未來的地下水位變化趨勢有較好的預判。

圖7 基于單站點數據的地下水位預測
選取4個監測站點A、B、C、D的地下水位數據集。與單站點同樣的方法,數據集經過歸一化處理后,分為8:2的訓練集和驗證集。
模型訓練時,輸入由4個站點在同一時刻的數值組成的維度為4 的向量[x′A,x′B,x′C,x′D]。每次輸入連續20天60個時刻4個站點的地下水位值,預測之后連續4天12個時刻站點C的地下水位值,訓練批次大小為40。輸入X′n經過CNN網絡得到CNN(X′n),再輸入到Transformer模型中得到預測結果。訓練過程中同樣采用如下L2范數損失函數,

(10)
并采用Adam作為優化器,設置學習率為0.005,設置訓練次數為100次。
之后對訓練后的模型進行測試。每次輸入4個站點連續20天60個時刻的地下水位值,預測之后站點C連續4天12個時刻的地下水位值,連續預測15次,預測站點C 60天共180個時間點的地下水位值。預測結果如圖8所示,其中5條曲線分別表示4個站點地下水位原始數據以及站點C的地下水位預測值。可以看出基于多站點地下水位的預測曲線擬合度優于基于單站點的地下水位預測曲線。

圖8 基于多站點數據的站點C地下水位預測
為了比較所設計模型的地下水位預測效果,選取RMSE(均方根誤差)和NSE(納什效率系數)來對所設計的預測模型進行評價。RMSE、NSE的定義分別為[24],

(11)

(12)

同時,為了比較CNN-Transformer模型與Transformer模型以及RNN系列的水位預測模型之間的預測效果,分別利用傳統RNN、LSTM、GRU三個模型,通過單站點C的地下水位數據集進行訓練,同樣每次預測4天12個時刻,預測15次共60天的站點C的地下水位值。將預測結果與所設計的兩個模型進行比較。表1是5個模型之間RMSE、NSE的比較。

表1 不同模型RMSE、NSE比較
通過表1的結果可以說明,提出的CNN-Transformer與Transformer模型的預測精度明顯優于RNN系列的地下水位預測模型,并且CNN-Transformer模型預測結果要略優于Transformer預測模型,說明利用CNN可以從多站點地下水位數據獲取數據之間的空間關聯性,能夠進一步優化從時間角度進行信息提取的Transformer模型。
再對每個時刻5個模型的RMSE值進行比較,結果見表2。

表2 各個模型不同時刻RMSE比較
圖9是5個模型在12個時刻RMSE的變化趨勢比較。可以觀察到,在短期的預測時各模型的預測效果均較好,相互間的差異也較小,隨著預測時間的增加,各個模型預測精度會越來越差,相互間的差異也增大。Transformer系列模型在長時間預測的精度明顯優于RNN系列模型,Transformer系列模型相比于RNN系列模型在長時間的地下水位預測中更有優勢。并且CNN-Transformer地下水位預測模型由于在時間角度之外考慮到了地下水位數據之間的空間關聯性,其預測效果整體優于Transformer地下水位預測模型。

圖9 不同模型每個時刻RMSE的變化
Transformer模型可以從時間角度提取地下水位數據的信息,CNN可以從空間角度提取多站點地下水位數據之間的關聯性,吸取了兩者的優點,提出了基于CNN-Transformer的地下水位預測模型。實驗基于CNN-Transformer模型獲得預測結果的RMSE值和NSE值分別可以達到0.1427米和0.9651,顯著優于其它預測模型。