徐 韌,蘇懷智,楊立夫
(1.河海大學水文水資源與水利工程科學國家重點實驗室,江蘇 南京 210098;2.河海大學水利水電學院,江蘇 南京 210098)
大壩作為重要的基礎設施,其安全關乎民生,加強大壩性態監測是保障大壩安全的重要舉措,而壩體的變形情況能夠直觀反映其性態,是判斷大壩服役期間狀態的重要依據[1-2]。隨著自動監測設備投入使用,壩體變形監測數據延續性更好、時效性更強、穩定性更佳,樣本基數較人工觀測時更大。而傳統算法如灰色模型理論在大數據預測中效果欠佳[3],BP神經網絡在長周期數據預測中易過擬合[4],基于時間序列的模型其參數在大時間跨度預測時敏感性較差[5]。
近年來,隨機森林、AdaBoost、Bootstrap等集成學習算法因其速度快、精度高、魯棒性好的特點被學者運用在大壩變形預測領域。羅浩等[6]通過隨機森林算法,基于水壓分量、溫度分量、時效分量對拱壩位移進行了預測。沈晶鑫等[7]將AdaBoost算法與優化神經網絡相結合,利用AdaBoost算法將粒子群優化后的神經網絡模型集成,建立了大壩變形預測模型,并對向家壩第七壩段變形進行預測。王曉玲等[8]基于Bootstrap和改進布谷鳥算法建立了混合模型,利用混沌理論和慣性權重理論以改善模型易陷入局部最優的問題,成功實現了大壩性態評價。極端梯度提升 (extreme gradient boosting,XGBoost)算法由華盛頓大學陳天奇博士提出,是一種可進行并行計算的集成算法,通過加入正則項來控制模型復雜度,有效降低過擬合概率,能較好地解決傳統模型存在的過學習、預測效率低、訓練時間長、只適用于小集群樣本等問題[9],已在交通流量預測、商品銷售量預測、疾病診斷等領域取得成功應用[10-12],目前在大壩安全領域應用較少。
為提高大壩安全預測模型的預測精度及訓練速度,提升大壩安全監測系統對于數據噪音的響應能力,本文采用XGBoost算法對大壩變形數據進行預測,并引入貝葉斯優化,通過高斯過程(GP)對模型參數進行優化,建立基于GP-XGBoost的大壩變形預測模型,并結合原型觀測數據對模型擬合預測能力進行評價。
水壓、溫度等環境量的變化會導致壩體產生可逆變形,而時效因子則引起壩體材料劣化、力學性能下降從而形成不可逆影響[13]。構建大壩變形預測模型時常選擇水壓因子、溫度因子、時效因子作為影響因子[14-15]。壩體位移公式為
δ=δH+δT+δθ
(1)
式中:δ為壩體位移;δH、δT、δθ分別為位移的水壓分量、溫度分量和時效分量。
XGBoost算法是梯度提升機器(gradient boosting machine,GBM)算法的擴展,是一種同時具備線性模型和樹模型特點的優化模型,能夠同時完成回歸和分類任務。XGBoost算法由多棵決策樹(CART)組成,通過決策樹集成實現機器學習,所有決策樹的預測值相累加即為模型預測值,并由梯度提升決策樹(gradien boost decision Tree,GBDT)算法進行模型訓練[16]。與GBDT算法不同的是,XGBoost算法通過對損失函數進行二階泰勒展開以快速逼近目標函數,并加入了正則項調節參數以避免過擬合,訓練速度快,預測精度高[17]。
在構建大壩變形預測模型時,XGBoost算法通過在變形預測函數中不斷加入關于各因子的新函數來逼近實測變形值,即:
(2)

XGBoost算法目標函數定義如下:
(3)
式中:L為損失函數,用于評估變形預測值與真實值之間的損失;Ω(fK)為正則化函數,用于控制控制模型復雜度,避免過擬合。正則化函數定義如下:
(4)
式中:γ、λ為正則項懲罰系數;ω為葉子節點對應的權重;T為溫度。對(2)式改寫并作二階泰勒展開:
(5)
可以對公式(5)進行進一步簡化得:
式中:gi為損失函數的一階梯度統計;hi為損失函數的二階梯度統計。通過迭代找到f(x)使目標函數最小則模型訓練完成。
貝葉斯優化算法(Bayesian optimization)是一種高效的優化工具[18],其基于不同代理模型可分為3類:樹型評估器TPE、隨機森林回歸AMAC和高斯過程GP。大壩原型觀測數據集龐大,特選用迭代速度較快、質量較高的高斯過程作為優化模型內核。
以高斯過程為內核執行優化任務時,常對目標函數f(x)假設一個滿足高斯過程的先驗分布模型,即模型各參數任何有限維度的組合仍滿足高斯分布:
f(x)~GP(E(f(x)),COV(x,x′))
(8)
式中:E為f(x)的數學期望;COV(x,x′)為x的協方差。每個參數組合{x1,x2,…,xi}都屬于高斯分布,滿足以下公式:
(9)
在先驗分布函數確定后,采樣對模型進行修正。樣本越多,模型越精確。為提升采樣速度,優化算法通過定義采集函數確定下一個采樣點[19]。采集函數將權衡模型優化方向為探索(exploration)或開發(exploitation),探索將在新的區域采樣以避免局部最優,開發則在現有局部最優解附近開展進一步搜索,嘗試尋求全局最優解[20]。優化目標則是在全集Α中尋找使f(x)值達到最大或最小的X集合如下式所示:
x*=argmaxx∈Αf(x)
(10)
交叉驗證值CV常作為模型優劣評價指標。K-折交叉驗證(K-fold cross-validation)是交叉驗證的一種。調用交叉驗證函數時,先將數據集均分為K份,選擇其中一份作為驗證集,其余K-1份則用于訓練模型,如此執行K次,將得到的K個評價值求和平均即為交叉驗證值CV[21-22]。評價值的類型根據大壩觀測數據特點選用均方根誤差RMSE(Root Mean Square Error)。
建模流程如圖1所示,具體步驟如下。

圖1 基于GP-XGBoost算法的建模流程
步驟1對上游水位、壩體上下游方向水平位移及時效數據進行處理,整理為合適影響因子作為輸入樣本集,并將其劃分為訓練集、驗證集、測試集1、測試集2,其中驗證集由交叉驗證函數從訓練集中劃分。
步驟2劃分好的訓練集與驗證集通過交叉驗證產生評價指標CV,確定各參數優化范圍,帶入貝葉斯優化算法進行優化迭代。由于驗證集取自訓練集內部,為避免局部最優和預測值突變的情況,選取CV值小于最大CV值10%(本次選取0.2)的參數組構建預測模型[23],對訓練集1進行預測,若所選參數組均出現局部最優或預測值突變則適當放寬CV閾值,綜合選取最優參數組。綜合評價各參數組訓練速度與預測精度,選取最優參數組構建基于GP-XGBoost的大壩變形預測模型。
步驟3將測試集2中的數據帶入步驟2中構建的模型,用于模型評價,通過與基于默認參數的XGBoost算法、線性回歸方法、BP神經網絡所建立的模型進行比較,對GP-XGBoost模型做出評價。
某水庫為混凝土雙支墩肋墩壩,控制流域面積570 km2,總庫容3.47億m3,是一座具有防洪、灌溉、發電、養殖等綜合功能的年調節的大(2)型水庫。選取2015年1月至2018年3月共1 174組上游水位數據及PL5測點在上下游方向的水平位移測值作為初始數據集進行分析。其中PL5測點位于5號壩段壩頂,為自動測點,采用垂線法采集水平位移數據。
PL5測點上下游方向水平位移、上游水位均為一天一測,數據較完整,自2015年1月至2017年12月,水平位移與上游水位一一對應,其中水平位移與水位過程線如圖2所示。

圖2 磨子潭水庫PL5 測點位移與上游水位過程線

將輸入樣本集前600項劃分為為訓練集,601~800項劃分為測試集1,其余劃分為測試集2。驗證集由內置交叉驗證函數在訓練集中自動生成,并在訓練過程中生成模型評價指標CV。
對各關鍵參數進行初值定義,選定優化范圍,具體參數含義、初值及取值范圍如表1所示。

表1 參數優化初值、范圍及含義
將表1中的參數組帶入貝葉斯算法中迭代2 000次,取出2 000種參數組合中CV值小于0.2的5組,如表2所示。

表2 最優參數組
將5組參數分別帶入XGBoost建模并對測試集1進行預測,迭代次數設置為600。各參數組對測試集1預測情況如圖3所示,其中第2參數組預測RMSE值最小為0.904 91。其中11月至12月變形預測數據出現小范圍突變,其原因歸結為此時段內壩體水壓分量突然增大,模型參數max_depth對于突變數據較為敏感,當參數max_depth取值偏大時,預測值突變較明顯,通過貝葉斯優化調整參數取值,選取合適的max_depth值可以緩解預測值突變的情況,如第2參數組所示。若根據條件CV<0.2所選參數組建模預測均出現明顯突變,則應適當擴大參數組選取范圍,權衡各參數在合適范圍做出選擇。

圖3 不同參數組預測結果
5組參數組訓練迭代收斂情況如圖4所示。由圖4可知,第4組參數建模收斂速度最快,但第2組參數建模在預測精度較高的條件下也滿足了運算速度需求,綜上所述,將選擇第2參數組構建變形預測模型,用于精度評價。
圖4說明預測模型最多經過200次迭代即可收斂,在后續的運算中將迭代次數縮減為300次以提升學習效率。

圖4 模型訓練迭代過程
針對回歸模型選用均方根誤差(RMSE)、平均絕對誤差(MAE)、擬合優度(R2)作為精度評價指標,分別用于評價模型穩定性、精確度及擬合效果。
將基于GP-XGBoost算法的預測模型與未經過參數優化的XGBoost預測模型、線性回歸模型、BP神經網絡模型訓練并對測試集2進行預測,對各模型的精度進行比較,評價模型性能。具體模型訓練結果、預測結果及殘差計算結果如圖5所示,預測精度評價結果如表3所示。

表3 各模型預測精度評價
由圖5可知,基于GP-XGBoost建立的預測模型在水位突變的時段能夠很好地對壩體水平位移進行預測,且整體精度高,擬合效果好,收斂速度快。BP神經網絡模型在預測階段有時會出現過擬合的現象,而XGBoost模型加入了正則項參數,通過選擇合適的參數值有效避免過擬合。由表3可以看出線性回歸模型的擬合優度也較高,但線性回歸模型優勢在于反映線性趨勢,呈現局部復雜變化較為困難,如6月底及12月初的線性回歸模型預測數據難以體現壩體變形短期的波動,而基于GP-XGBoost所建立的大壩變形預測模型,預測值可以較好吻合壩體實際變形波動過程(圖5),有助于大壩性態分析。實例中基于GP-XGBoost所建立的模型預測誤差相較于傳統模型明顯較小,擬合更平滑、精度更高、模型更穩定,對于大變形預測將更具優勢。參數優化能夠進一步提升XGBoost算法模型的精確度,優化擬合效果,使模型能夠很好地滿足大壩變形預測的工作需求。

圖5 各模型預測結果對比
選擇特征分裂率、特征平均收益率、特征平均覆蓋率3個特征來衡量各分量在基于GP-XGBoost構建的大壩變形預測模型中占水平位移的比重。其中特征分裂率表示因子對大壩變形的參與度,通過統計某個特征的分裂次數確定。特征平均收益率表示因子對大壩變形的影響率,通過損失函數的變化ΔL度量。特征平均覆蓋率表示因子對大壩變形的貢獻度,通過節點的二階梯度hi表征,特征平均收益率與特征平均覆蓋率的計算方法如式(11)(12)所示。其中各因子互相獨立,分別進行計算。

(11)
(12)
結果通過交叉驗證互相比對,本次計算各因子交叉驗證結果一致,具體結果如表4所示。由表4可知,溫度分量占大壩變形最大比重,其特征平均收益率達98%,選擇溫度因子作為分裂結點可以使預測函數快速接近真實值,且溫度分量對大壩變形的速率影響最大。同時溫度因子特征分裂率、特征平均覆蓋率都接近50%,表明溫度分量與大壩變形聯系較強,對變形的貢獻較大。水壓與時效分量對大壩變形速率影響較小,但對變形的大小有一定的影響。

表4 各因子特征重要性 單位:%
結果表明,對壩體溫度進行實時監測、控制可以有效幫助大壩健康服役,控制大壩變形速率,減少變形量,增加大壩維護工作的容錯率,增強大壩變形的可控性。應對冷卻管道等溫控設施進行定期檢查,對于壩體溫度較高部分重點防護,降低壩體開裂風險。
a.XGBoost算法通過加入正則項參數,限制擬合程度,有效避免過擬合。且多決策樹疊加保證了計算精度,對目標函數進行二階泰勒展開大幅提升迭代速度,能夠很好地適應大壩原型監測數據周期長、數據量大、精度要求高的特點。
b.基于高斯過程的貝葉斯優化函數能夠探索開發最優參數組,進一步提高模型的精度、穩定性,擬合更加平滑。基于磨子潭水庫原型觀測數據建立的大壩變形監測模型的成功應用證明, GP-XGBoost為大壩安全監測提供了一種良好的思路。
c.XGBoost是一種集成算法結合的樹型算法,其包含了樹型算法在預測過程中難以突破訓練樣本峰值的缺點。大壩上游水位在汛期上漲迅速,極有可能超過訓練樣本峰值,峰值限制問題將是今后的研究方向。