iT邦幫忙

2025 iThome 鐵人賽

DAY 20
1

🌊 堰塞湖的危機與 AI Big Data 的預警力量

導讀

2025 年花蓮馬太鞍堰塞湖潰壩事件,造成多人傷亡,再次凸顯自然災害的威脅。
「堰塞湖」是由山崩或地震導致河道堵塞而形成的天然湖泊,看似壯麗,卻隱藏潰壩風險。
傳統監測依賴人工巡查與單點測量,如今在 AI 與 Big Data 的輔助下,我們能建構更精準的 災害預警系統。本文將以淺顯方式說明:什麼是堰塞湖?AI 和大數據如何運作?我們能從中學到什麼?

🌊 堰塞湖 AI 預警模型

步驟 專業名詞 小學生也懂 舉例比喻
1 問題定義 我們要做什麼? → 預測堰塞湖會不會「爆掉」 就像老師要考試,先說清楚考什麼科目
2 數據管線 (Data Pipeline) 把感測器收來的資料,清理乾淨,放進資料庫 像是把不同同學交來的作業,先擦乾淨、分類好,放進櫃子
3 特徵工程 (Feature Engineering) 找出重要線索(雨量、坡度、水位上升快不快) 偵探找破案線索,雨下太多、坡太陡就是危險提示
4 模型設計 (Model Design) 教電腦用不同方法學習,來判斷會不會潰壩 就像數學考題有加法、減法不同解法,最後還要比誰算得好
5 損失函數與評估 檢查電腦算得好不好,有沒有抓到危險的情況 像老師批改考卷,看誰抓到重點、誰漏掉
6 訓練與驗證 (Training) 拿舊資料來「教」電腦,測試它有沒有學會 像練習考,先看過去題目,再檢查會不會考好
7 閾值與告警邏輯 設定分數線,超過就發出紅色警報 像體育課,100 公尺跑太慢就要重練,跑超快就給獎品
8 MLOps 上線 把系統真的放在山區用,快速發警報 像把新遊戲上架給大家玩,要不卡頓才行
9 決策支援 給政府和救難人員地圖,告訴他們哪裡危險 像 Google 地圖,但標示「哪裡淹水」和「去哪裡避難」
10 資安與治理 保護資料,不能亂用,要能查紀錄 像考卷不能亂傳,要老師蓋章才行
11 快速檢核清單 最後檢查有沒有漏掉步驟 就像出門前的「三寶」:錢包、鑰匙、手機

一句總結
AI 預警模型就是一個「會算數的救難偵探」,靠收集線索(數據)、練習(訓練)、考試(驗證),最後幫大家提前知道堰塞湖會不會出事。

一、什麼是堰塞湖?

「堰塞湖」由「堰、塞、湖」三字組成:

堰:攔水的土石或壩體。

塞:堵塞住河流。

湖:積水成湖泊。

堰塞湖可能在短時間內蓄積巨量水體,一旦壩體鬆動或崩塌,將引發山洪、泥流與下游淹沒災害。


二、AI 與 Big Data 如何協助?

  1. 資料收集(Data Collection)

透過感測器、無人機與衛星收集多種參數:

水文資料:水位、流速、降雨量

地質資料:坡度、土壤含水量、微震監測

影像資料:航拍照片、即時攝影

社會資料:人口密度、避難所容量、交通路線

這些數據存放於 資料湖 (Data Lake),成為 AI 的「原料」。


  1. 資料處理與特徵工程(Data Processing & Feature Engineering)

清理 (Cleaning):移除缺值、修正單位差異(mm/hr → cm/hr)。

特徵設定:

降雨量累積值(24/48/72 小時)

水位上升速率(Δh/Δt)

壩體變形速率

雨量 × 坡度 → 土石流風險指標

這些「特徵 (Features)」讓 AI 能辨識危險模式。


  1. AI 模型建置(AI Modeling)

時間序列預測 (LSTM, GRU):預測未來水位變化。

分類模型 (Random Forest, XGBoost):判斷潰壩風險(低/中/高)。

異常偵測 (Anomaly Detection):發現水位或土壤含水量的突變。

數位分身 (Digital Twin):模擬不同降雨情境,推估洪水規模。


  1. 預警與決策(Warning & Decision-making)

當 AI 偵測到「超過臨界值」:

紅色警戒:水位 > 5 公尺/小時 + 壩體位移 > 3 公分。

行動建議:自動發送簡訊、導航至避難所。

資源調度:套用 VRP(Vehicle Routing Problem)最佳化演算法,規劃救援車輛路線。


三、AI Big Data 的挑戰

  1. 資料不足:山區感測器常受損。

  2. 臨界值難設定:不同堰塞湖有不同「安全線」。

  3. 跨單位整合:資料分散於水利署、氣象局、地方政府,需標準化。

  4. 模型解釋性:AI 預測結果需人類理解,才能形成可執行的決策。


四、專有名詞彙整

名詞 解釋 生活化比喻

堰塞湖 山崩或地震堵住河流形成的湖 水被「卡住」形成大池塘
資料湖 (Data Lake) 原始數據的集中存放地 像一口裝滿原料的大水池
特徵 (Feature) 提供給 AI 學習的數值或指標 考試前的「重點提示」
時間序列模型 (LSTM/GRU) 處理連續時間數據的 AI 模型 預測股市或水位曲線的「算命師」
數位分身 (Digital Twin) 虛擬模擬真實場景的模型 電玩中的「虛擬副本」
VRP (Vehicle Routing Problem) 最佳化配送路線的數學問題 宅配員怎麼送貨最省時


五、結語

堰塞湖提醒我們,大自然的力量雖然難以避免,但科技能幫助我們提早準備。
AI 與 Big Data 的價值在於:

將資料轉化為洞見,從水位數字中看見潰壩風險;

將預測轉化為行動,在洪水發生前就能疏散居民;

將災害轉化為教材,累積每次事件的經驗,提升未來防災能力。

當我們懂得善用資料,堰塞湖不再只是災難的代名詞,而是人類邁向 智慧防災社會 的起點。


堰塞湖 AI 預警模型:設計流程與數據訓練方式

Goal(目標):在「T+1小時內」預測潰決風險等級(低/中/高),並輸出行動建議(疏散/警戒/觀察)。


1) 問題定義(Problem Definition)

  • 輸入(X):連續時序感測資料 + 空間/社會脆弱度指標
  • 輸出(Y)risk_level ∈ {0:低, 1:中, 2:高}(或 p_collapse 機率)
  • 時窗(look-back / look-ahead)look_back=6hhorizon=1h

2) 數據管線(Data Pipeline)

mermaid
flowchart LR
S[Sensor/IOT/Drone/Weather]-->I[Ingest/Stream]
I-->DL[Data Lake (Raw)]
DL-->ETL[ETL/清理/對齊/補值]
ETL-->DW[Warehouse (Feature Store)]
DW-->TRN[Train]
DW-->INF[Online Inference]

清理:時間對齊(minutely/hourly)、補值(前向填補/插值)、去除離群點(MAD/IQR)

標準化:z-score(依測站/區域分層)


  1. 特徵工程(Feature Engineering)

水文時序:rain_1h, rain_3h, rain_24h, dH_dt(水位上升速率), Q(flow)

地質變形:slope, soil_moisture, tilt, micro_seismic_freq

交互項:rain_24h × slope、dH_dt × dam_height

空間脆弱度:pop_density, shelters_capacity, road_access(供決策排序)

聚合:滑動統計 mean/std/max/min、近期極值 max_6h/max_24h

標記目標(Y):以歷史事件/專家標註建 risk_level;或以「潰決/未潰決」做二元,再設等級閾值。


  1. 模型設計(Model Design)

路徑 A:時間序列預測

模型:LSTM/GRU/Temporal CNN → 預測 H(t+1)、dH_dt(t+1)

再以規則/校準樹將連續預測映射為 risk_level

路徑 B:端到端分類

模型:XGBoost/LightGBM/Random Forest(表格特徵強)

模型:LSTM(Classifier)(強時序依賴)

集成(Ensemble):risk = 0.6Clf_Prob + 0.4Rule(H_pred, dH_dt_pred, rain_24h, ...)


  1. 損失函數與評估(Loss & Metrics)

分類:Weighted Cross-Entropy(對“高風險”加權)

時序回歸(若用路徑A):MAE/MSE + 事件敏感 Pinball Loss

評估指標:Recall@HighRisk(主指標)、Precision、ROC-AUC、PR-AUC、F1

校準:Platt / Isotonic 校準機率 → 減少過警/漏警


  1. 訓練與驗證(Training)

偽代碼:表格+時序混合

X_train, y_train = build_dataset(look_back=6, horizon=1, stations=all)
model = xgboost.XGBClassifier(scale_pos_weight=pos_w, max_depth=6, n_estimators=800, learning_rate=0.05)
cv = TimeseriesSplit(n_splits=5)
for tr, va in cv.split(X_train):
model.fit(X_train[tr], y_train[tr],
eval_set=[(X_train[va], y_train[va])],
eval_metric="aucpr", verbose=False)

機率校準

calib = IsotonicRegression().fit(model.predict_proba(X_val)[:,1], y_val)

時間序列切分:TimeSeriesSplit(避免洩漏未來)

類別不平衡:scale_pos_weight 或 focal loss、SMOTE-Tomek(謹慎用於時序)

早停/正則:early_stopping_rounds、L1/L2

資料漂移檢查:PSI/KS 比較訓練與上線分佈


  1. 閾值與告警邏輯(Thresholding)

risk_policy:
red:
rules:
- "p_high >= 0.70"
- "dH_dt_pred >= 5 cm/h"
- "rain_24h >= 200 mm"
action: "立即疏散 + 啟動VRP物資/車輛調度"
orange:
rules:
- "p_high in [0.40, 0.70) or dH_dt_pred in [3,5)"
action: "預備疏散 + 工程加固"
yellow:
rules:
- "p_high in [0.20, 0.40)"
action: "加密監測 + 無人機巡檢"

多條件觸發:機率 + 物理量(雙保險)

區域化閾值:依流域/地質單元校準


  1. 上線推論與MLOps(Serving & MLOps)

架構:Edge(站點快速判斷) + Cloud(全域融合)

延遲:資料到警報 < 2 分鐘

監控:

模型:AUC/Recall@High、Calibration Error、data drift

業務:警報命中率、過警率、平均疏散時間

再訓練策略:事件後 T+7d 滾動重訓;或 data drift 觸發


  1. 決策支援(Decision Support)

地圖可視化:等值線(淹水範圍)、熱區(高風險格網)

最佳化調度:VRP(多車、多安置點、時間窗)

脆弱度排序:risk_score × pop_density × access_score


  1. 資安與治理(Governance)

資料權限:最小權限、分區匿名化

稽核:全鏈路日志(資料→特徵→版本→輸出)

解釋性:SHAP/特徵重要度面板 + 事件回放(提升信任)


  1. 快速檢核清單(Checklist)

[ ] 感測器時間對齊、缺值率 < 3%(關鍵變數)

[ ] Recall@HighRisk ≥ 0.9、過警率可控

[ ] 閾值區域化/季節化完成

[ ] 告警→動作 SLA < 2 分鐘

[ ] 事件後 7 天內完成回顧與再訓練

自發性志工人力整合:AI + Data 的應用

1) 問題背景

災害現場常有大量 自發性志工 出現,但人力、物資與官方指揮鏈條之間容易產生混亂:

  • 哪些志工在哪裡?
  • 有哪些技能(搬運、醫護、翻譯)?
  • 哪些需求(食物、醫藥、交通)最急迫?

這些問題若無法即時整合,會造成重複支援、資源浪費或錯失救援黃金時間。


2) AI + Data 的整合方案

  • 即時人力登錄:志工透過手機 App / LINE Bot 填寫「姓名、技能、可服務時段」 → 上傳至中央資料湖。
  • AI 人力匹配:利用分類與最佳化演算法(Matching / VRP)比對「志工技能」與「現場需求」。
  • 需求分析:自然語言處理 (NLP) 解析政府公告、社群訊息,提取「需求關鍵詞」(如:醫護、補給、交通)。
  • 動態排程:AI 演算「人力-需求-地點」三維最佳化 → 建議志工去哪裡、做什麼、何時報到。

3) 與組織/政府的協作流程

  1. 地方政府:提供安置點、人口分布、交通封閉資訊。
  2. 中央單位(災害應變中心):提供即時水文、氣象數據,決定「警戒區」與「優先區域」。
  3. NGO/民間組織:回報需求(醫藥、食物、物資),與政府數據打通。
  4. 志工平台(AI 中介)
    • 匯聚來自 LINE、App、網站的志工登錄。
    • AI 即時指派:
      • 例如「10 人搬運 → 佛祖街物資站」
      • 「5 名醫護 → 光復國小安置所」

4) 資料與演算法示例

  • 輸入 (X)志工技能, 時間, GPS位置, 災區需求, 路況資料
  • 輸出 (Y)最適合的地點與任務分配
  • 演算法
    • 任務分配 → Integer Programming / Hungarian Algorithm
    • 路線規劃 → Vehicle Routing Problem (VRP) + AI 強化學習
    • 需求預測 → 時序分析 (LSTM) 預測安置所人數變化

5) 成效

  • 減少 重複派遣(避免 50 人湧入同一安置點)
  • 提高 資源命中率(醫護志工送到真正缺醫療的區域)
  • 增加 政府-民間合作透明度(公開數據看得到分配邏輯)

結語

自發性志工是災害現場不可或缺的力量。
透過 AI + Big Data,我們能將這股「自發的能量」與政府、NGO 有效整合,
從混亂走向有序,讓每一份善意都能成為真正的救援。

志工人力整合流程圖 (AI + Data)

flowchart TD
V[🧑‍🤝‍🧑 志工登錄(App/LINE/網站)] --> D[📥 中央資料湖(Data Lake)]
D --> F[🧹 特徵處理技能/時間/位置]
F --> A[🤖 AI 人力匹配(Matching / ML Model)]
A --> G[🏢 政府與NGO需求(安置所/物資/醫療)]
G --> J[📊 AI 動態排程(VRP / Integer Programming)]
J --> T[📍 任務分派(何人→何地→何時)]
T --> O[✅ 即時回饋(更新平台/再訓練模型)]

志工先在手機或 LINE 登記資料,AI 把大家的技能、時間、位置收集起來,和政府、NGO 的需求比對,再用演算法幫忙排任務,決定誰要去什麼地方做什麼事,最後還會把結果回饋回去更新,讓下一輪分配更準確。


上一篇
2025 Gemini 八大模組重點
下一篇
🚚 用AI和Data玩轉Integer Programming:讓決策像拼積木一樣簡單
系列文
AI 與統計在醫療與長照的應用:連結教育、收入、婚姻與居住,建構健康與照護決策支持23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言