第三章 理論概述
3.4 回饋式類神經網路(RNN)
3.4.1 回饋式含外變數的非線性自迴歸模式(R-NARX)
回饋式含外變數的非線性自迴歸(recurrent nonlinear autoregressive with exogenous input, R-NARX)模式屬於一種 RNN,內為多個隱藏層與 單一輸出層之 FFNN 結構,回饋的狀態值𝑆𝑡為 FFNN 輸出值𝑂𝑡 。R-NARX 模式結構如圖 3.4.4 所示,主要特徵為輸入向量與前次回饋狀態 值合併及輸出向量與回饋狀態值相同。此外也有其他研究以其他神經 網路結構取代 FFNN,例如 Zhou 等人(2019 B)以 ANFIS 建立類似於 R-NARX 結構之回饋式 ANFIS 模式(R-ANFIS),應用於多步長洪水預報。
整體而言,R-NARX 具有回饋前次模式輸出值的特性,使其具有良好 學習(real-time recurrent learning, RTRL)及老師介入(teacher forcing, TF) 兩種演算法:RTRL 使用前次模式輸出值做為訓練時的模式回饋輸出值 𝑂𝑡−1,訓練時權重調整過程如同將模式在時間軸上展開(如圖 3.4.2 所 示),每個神經元的權重的誤差梯度每次修正量將與所有訓練範本中的 資料有關,其優勢為可減少因模式回饋造成的誤差累積(沈,2013),詳
doi:10.6342/NTU202003855
39
細計算過程可參考 Chang 等人(2002)的文獻。TF 使用訓練範本中前次 模式目標輸出值做為訓練時的模式回饋輸出值𝑂′𝑡−1,因此訓練過程中 修正權重的複雜度較低,但這樣訓練完成的模式於線上使用時可能會 因為模式回饋輸出序列與訓練時使用的不一致,使其預測性能較差 (Lamb 等人,2016)。此外亦有在模式訓練階段混合使用前次模式輸出 值𝑂𝑡−1與目標輸出值𝑂′𝑡−1的學習法,例如 Bengio 等人(2015)在開始訓 練時完全使用目標輸出值𝑂′𝑡−1做為模式回饋值,並在疊代次數增加時 漸漸將模式回饋值由前次模式輸出值𝑂𝑡−1取代,使模式在疊代初期能 快速掌握輸入向量與輸出向量間的映射關係;於疊代後期學習修正模 式回饋造成的誤差累積問題。
圖 3.4.4 R-NARX 模式結構 3.4.2 長短期記憶體(LSTM)
Hochreiter and Schmidhuber (1997)提出長短期記憶體(long short-term memory, LSTM)網路神經元架構,在回饋式類神經網路的基礎上 增加一個獨立記憶變數𝐶𝑡與三個閥單元(gate unit),加上核心單元(core unit)組成共有四個子獨立全連結層的特殊結構(圖 3.4.5),每個全連結層
doi:10.6342/NTU202003855
40
神經元與圖 3.2.1 之神經元結構相同。LSTM 回饋的狀態值包含網路輸 出向量𝑂𝑡與獨立儲存變數𝐶𝑡,分別代表著短期記憶與長期記憶,因此 該神經元的輸出值特性更趨向於在過去的輸出資訊上累加新資訊,避 免回饋過程中前次輸出值經過神經元與活化函數計算後被大幅改變。
此外,LSTM 在長期記憶處理上有遺忘閥(forgot gate)的機制,透過當前 輸入資訊決定要保留多少從獨立儲存變數回饋之長期記憶資訊,使模
3. 計算輸入閥(input gate)、遺忘閥(forgot gate)與輸出閥(output gate)等 相應的輸出閥值:
𝐺𝑖 = 𝑓𝑔(𝑊𝑖 ∙ 𝐼𝑡+ 𝑏𝑖) (3-40) 𝐺𝑓 = 𝑓𝑔(𝑊𝑓 ∙ 𝐼𝑡 + 𝑏𝑓) (3-41)
doi:10.6342/NTU202003855
41
42
圖 3.4.5 LSTM 神經元結構 3.5 SAE-RNN 區域淹水預報模式
本研究提出以 SAE 結合 RNN 之複合模式 SAE-RNN 預測維度相 當大的區域網格淹水深數值。先以 SAE 將高維度區域淹水數據降維成 淹水特徵編碼,接著以 RNN 建立該特徵編碼多時刻預測模式,最後以 SAE 解碼器做為淹水特徵編碼還原模式,將 RNN 預測之多時刻淹水特 徵編碼還原成區域淹水網格淹水深數值。整體架構如圖 3.1 所示。
3.5.1 以主成份分析協助訓練 SAE 模式
考量區域網格淹水深數值維度高達 169,797,為了分析每次 SAE 堆 疊 時 最 佳 編 碼 維 度 , 本 研 究 使 用 主 成 分 分 析 (Principal components analysis, PCA)之累積貢獻比率(cumulative proportion, CP)為評估參考,
並與預先決定的門檻值 L 進行比較較以決定每次 SAE 堆疊後的最佳編
doi:10.6342/NTU202003855
43
碼維度 j。此外,考量具有高維度輸入資料之 SAE 模式將有大量的連結 權重需要初始化,採用隨機初始化法容易於訓練初期產生不穩定的情 況導致收斂困難,故以具有相同維度之 PCA 特徵向量(eigenvector, 𝜈) 做為新增網路層(𝑒𝑛𝑐𝑜𝑑𝑒𝑟𝑚與𝑑𝑒𝑐𝑜𝑑𝑒𝑟𝑚)的權重初始值,配合偏權值 (bias)以 0 初始化及使用 ReLU 做為活化函數,即可讓 SAE 在訓練前具 有與 PCA 同等之降維還原能力。整個初始化過程如圖 3.5.1 所示,共 分為 4 步驟說明過程。
圖 3.5.1 以 PCA 協助訓練 SAE 模式示意圖
1. PCA 特徵值及特徵向量計算
PCA 是一種用於簡化數據的降維方法,利用正交轉換讓可能相 關的變數進行線性變換,從而投影為一系列線性不相關變數之數值,
這些轉換後的不相關變數即為主成分(principal components)。假設原 始資料為多筆由 n 個維度的向量𝒙且每個維度資料的均值為 0,PCA 的目的為尋找某個投影權重向量𝒗,可讓𝒙投影後的新向量𝒚(即主成 分),具有共變異數矩陣𝑪內的變異數最大之特性,如下所示:
𝒗 = 𝑎𝑟𝑔𝑚𝑎𝑥𝒗𝑇𝑪𝒗 (3-47)
doi:10.6342/NTU202003855
44
𝒗 ∈ 𝑅𝑑, ‖𝒗‖ = 1 求解後可得 3-48 式:
𝑪𝒗 = 𝜆𝒗 (3-48)
‖𝒗‖ = 1
式中λ即為特徵值(eigenvalue);投影權重𝒗即 d 維度之特徵向量 (eigenvector)。
45
46
47
48
圖 3.5.3 本研究 SAE 訓練流程圖
doi:10.6342/NTU202003855
49
3.5.2 以編碼器-解碼器框架建立淹水特徵編碼預測模式
本研究以編碼器-解碼器框架建立預測模式,可分為處理雨量資訊 之 FFNN 編碼器及輸出多步長淹水特徵編碼預測結果之 LSTM-R-NARX 解碼器,整體如圖 3.5.4 所示。
圖 3.5.4 RNN 淹水特徵編碼預測模式架構圖
1. LSTM-FFNN 編碼器
本研究降雨資訊輸入序列為長度 m 個時刻,每時刻包含 p 個測 站之𝑚 × 𝑝維雨量數值序列,考量降雨-逕流過程中雨量具有累積的特 性,使用 LSTM 與 FFNN 兩層網路層組成編碼器,將𝑚 × 𝑝維雨量資 訊轉換為1 × 𝑟維代表雨量時空特徵之編碼向量,編碼器架構如圖 3.5.5 所示。LSTM 層由時間最早的 m 時刻資料開始,每次輸入同一 時刻之所有測站雨量值,並重複使用 LSTM 層於下一次輸入。此外,
doi:10.6342/NTU202003855
50
本研究以零向量做為 LSTM 層在輸入第一筆資料時使用的初始狀態 值。FFNN 層為單層全連結層,將前一層輸出之數值再進行一次非線 性轉換以增加模式複雜度,整個編碼器運算具有更好的非線性轉換效 果。
圖 3.5.5 LSTM-FFNN 編碼器架構圖
LSTM 層的計算過程會將輸入雨量資訊以時間越近所占比例越 大的方式累積,這與降雨逕流過程中流量匯聚相似。於 Kao 等人 (2020)應用 LSTM 及編碼器-解碼器框架模式於石門水庫入流量預報 的研究中,已證明使用 LSTM 處理多時刻雨量資料有助於降雨-逕流 模式掌握雨量變化時間特徵。此外,LSTM 於長期記憶中有遺忘部分 資訊的功能(遺忘閥)使其更能讓長期記憶中重要的部分保留下來。對 於降雨-逕流模式而言,使用 LSTM 更能模擬雨水在集水區匯聚累積 與逕流的過程,故本研究使用 LSTM 做為處理雨量資訊的編碼器。
doi:10.6342/NTU202003855
51
2. LSTM-R-NARX 解碼器
本研究淹水特徵輸出序列為長度 n 個時刻,每時刻包含 q 個特 徵值之𝑛 × 𝑞維特徵值序列。考量淹水深變化應有明顯的時序關係,
即前時刻淹水深為下一時刻的關鍵影響因子,故以 R-NARX 為解碼 器架構,並將 LSTM 與 FFNN 做為隱藏層及輸出層置入其中,如圖 3.5.6 所示。LSTM 層每次使用時會輸入相同的1 × 𝑟維代表雨量時空 特徵之編碼向量,並藉由回饋狀態值使每次輸出的解碼器內淹水特徵 暫存值𝑌𝑑′產生差異,即在前一時刻之輸出結果上進行微調以符合淹 水歷程之時間連續性,接著再以 FFNN 輸出層將該暫存值轉換成符 合 SAE-RNN 區域淹水預報模式需求之淹水特徵編碼,同時此層亦有 增加模式複雜度之用途。因此,本研究修改圖 3.4.5 中 LSTM 神經元 結構狀態值,將回饋 LSTM 輸出值部分改以解碼器輸出值(即 FFNN 輸出層輸出值)取代,使前時刻解碼器輸出之淹水特徵編碼能直接影 響 LSTM 中核心單元、輸入閥、遺忘閥及輸出閥的運算結果,讓解碼 器具有 R-NARX 模式在多時刻淹水預報模式中使用自身回饋值帶來 的優勢。
doi:10.6342/NTU202003855
52
圖 3.5.6 LSTM-R-NARX 解碼器架構圖
將 LSTM-FFNN 編碼器與 LSTM-R-NARX 解碼器結合後即為本研 究 RNN 淹水特徵編碼預測模式,該模式中可調整之超參數包含:(1)雨 量時空特徵編碼向量維度、(2)編碼器 LSTM 層神經元個數、(3)解碼器 LSTM 層神經元個數、(4)編碼器 LSTM 初始狀態值𝑆𝑒0及(5)解碼器 LSTM 初始狀態值𝑆𝑑0,以下為各項超參數設定說明:
1. 雨量時空特徵編碼向量維度及 LSTM 神經元個數
為減少超參數試誤次數,本研究將模式中兩個 LSTM 層神經元 個數((2)及(3))設定為雨量時空特徵編碼維度(1),並假設這三個數值 任一個超過描述問題所需的複雜度(涵容能力)後,多出來的部分在充 分訓練模式後不會影響其準確度,僅影響訓練效率。
2. LSTM 層初始狀態值
為減少模式訓練學習演算法複雜度,本研究將編碼器 LSTM 層 之初始狀態值𝑆𝑒0設定為 0,並將模式輸入之雨量序列時間長度增加至
doi:10.6342/NTU202003855
53 (coefficient of determination, R2)評價不同模式的預測結果,並以平均絕 對誤差(mean absolute error, MAE)展示研究區域中的預測誤差分布情
54
式輸出值一致。MAE 值越接近 0,代表模式誤差越低。RMSE 計算方 式如下:
MAE = 1
𝑁∑|𝑑𝑖 − 𝑦𝑖|
𝑁
𝑡=1
(3-56) 其符號與 3-54 式一致。
doi:10.6342/NTU202003855
55
第四章 研究案例
4.1 研究區域
宜蘭縣是台灣東北部以農業為主之縣市,共有 12 個行政區,由北 至南分別為頭城鎮、礁溪鄉、壯圍鄉、員山鄉、宜蘭市、五結鄉、三星 鄉、羅東鎮、冬山鄉、蘇澳鎮、大同鄉及南澳鄉,總面積約 2,143 平方 公里,2019 年統計總人口為 454,178 人,人口密度為 212 人/平方公 里。宜蘭縣人口密集處主要位於具商業中心性質之羅東鎮與行政中心 宜蘭市,其地理位置分別位於蘭陽溪南岸與北岸。
宜蘭縣地形為高程由東南向西北遞減之沖積平原,主要河川為蘭 陽溪,地形與河川分布如圖 4.1.1 所示。蘭陽溪為台灣東北部最大河川,
幹流全長約 73.06 公里,流域面積 978.63 平方公里,發源於海拔 3,740 公尺之南湖大山北麓,平均坡度為 1:21,主要支流包含清水溪、羅東 溪、大礁溪、小礁溪、宜蘭河、冬山河等。此外,該縣北部礁溪鄉與頭 城鎮另有發源於東北部雪山山脈之得子口溪水系,向東於頭城鎮竹安 里匯入太平洋。
doi:10.6342/NTU202003855
56
圖 4.1.1 研究區域地形與河川分布
目前宜蘭縣研究區域中包含蘭陽溪與得子口溪流域內共有 11 個雨 量測站,最大日雨量為 1967 年 10 月新寮站之 1672.6mm 紀錄;最大月
目前宜蘭縣研究區域中包含蘭陽溪與得子口溪流域內共有 11 個雨 量測站,最大日雨量為 1967 年 10 月新寮站之 1672.6mm 紀錄;最大月