宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

給天氣預報裝上一個「我有多確定」的按鈕

2026年09月10日 首頁 » 熱門科技

2022年之後,AI天氣預報模型給天氣預報裝上一個我有多確定的按鈕突然變得很能打。谷歌的GraphCast、華為的盤古氣象,一個接一個地在預測精度上超越了傳統的數值天氣預報給天氣預報裝上一個我有多確定的按鈕模式,而且算得更快、更省錢。這些模型有一個共同的軟肋:它們全都是確定性的,也就是說,你問它明天下不下雨,它只會甩給你一個答案,不會告訴你"我有六成把握"還是"我瞎猜的"。

這事兒聽起來好像不算大問題,天氣預報不就是該給個準話嗎?但真正做決策的人知道這遠遠不夠。

一個航空公司要不要因為可能的雷暴取消航班,一個保險公司要不要為可能的洪水調整定價,一個電網公司要不要為可能的寒潮提前調度電力,這些決策背後都有一本自己的成本賬。取消航班的成本和延誤的成本不一樣,不同的人對"多大概率該採取行動"這件事有完全不同的答案。

如果天氣預報只給一個確定的數字,等於要求所有人都按同一個標準做決策,這在經濟學上被證明是不划算的。這也是為什麼傳統數值天氣預報幾十年來一直在搞集合預報給天氣預報裝上一個我有多確定的按鈕,同時跑幾十次模擬,用結果的分散程度來表示不確定性。

而這批跑得很快的AI模型,恰恰在這件事上集體交了白卷。

更麻煩的是,最近出現了一類新的AI天氣模型,叫端到端模型給天氣預報裝上一個我有多確定的按鈕

端到端模型:不依賴傳統數值天氣預報的資料同化給天氣預報裝上一個我有多確定的按鈕流程,直接從衛星、地面站、氣球、船舶等原始觀測數據出發,一步到位生成預報結果的AI系統。傳統流程里,原始觀測數據需要先經過資料同化,也就是把七零八落的觀測數據和一個背景預報融合成一張完整的大氣狀態圖,這個過程本身就很燒計算資源。

端到端模型跳過了這一步,直接吃觀測數據吐預報結果,省下了一大塊計算成本。英國的Aardvark Weather給天氣預報裝上一個我有多確定的按鈕和歐洲中期天氣預報中心給天氣預報裝上一個我有多確定的按鈕的GraphDOP給天氣預報裝上一個我有多確定的按鈕都是這條路線上的代表。問題是,這類模型的不確定性來源更複雜了。它不再是從一個現成的、別人已經算好的大氣分析場出發,而是自己一邊消化觀測數據一邊構建對大氣狀態的理解,同時還要往前推演天氣演變。這就好比一個既要當偵探又要當預言家的人,你很難說他最後給出的答案里,有多少不確定性來自線索本身不夠清楚,有多少來自他推理能力的局限。

這篇論文要解決的,就是這個問題:能不能讓端到端模型不僅給出預報,還能說清楚自己的不確定性從哪兒來。

把一個"啞巴"模型改造成會說"我不確定"的模型

論文的團隊選擇在Aardvark Weather這個模型上動手術。之所以選它,是因為Aardvark的架構是模組化的,分成編碼器、處理器、解碼器三段,權重和訓練數據也是公開的,方便動刀子。

編碼器:負責把衛星、船舶、氣球、地面站這些五花八門的觀測數據,揉合成一張完整的初始大氣狀態圖,相當於傳統流程里的資料同化步驟。

處理器:拿著這張初始狀態圖,一步一步往前推演,模擬大氣隨時間的演變,生成未來若干天的預報。

解碼器:把處理器算出來的全球格點預報,翻譯成具體某個氣象站位置的天氣數字。

研究團隊的思路很直接:給這三段流水線里的前兩段,各裝一個隨機擾動的機關,讓原本確定的輸出變成一個概率分布。

編碼器這邊裝的是可學習的、和輸入相關的高斯噪聲。簡單說,就是讓模型自己學會在哪些地方該"抖動"得厲害一點,哪些地方該穩一點。觀測數據稀疏或者質量差的區域,模型會自動給自己留更大的不確定性空間。這個設計對應的是氣象學裡的一個概念

資料同化不確定性給天氣預報裝上一個我有多確定的按鈕:觀測數據本身存在誤差、覆蓋不全,再加上把觀測數據和背景預報融合時引入的誤差,導致最終生成的大氣初始狀態本身就帶著不確定性,這是傳統氣象學裡的老問題,如今被搬到了AI模型的編碼器環節。

處理器這邊用的是一種叫蒙特卡洛丟棄給天氣預報裝上一個我有多確定的按鈕的技巧。

蒙特卡洛丟棄:訓練神經網路時常用的一種正則化手段是隨機"丟棄"一部分神經元不參與計算,本來這只在訓練階段用來防止過擬合,推理階段就關掉了。這篇論文的做法是把丟棄機制在推理階段也保持開啟,而且每往前推演一步就重新隨機丟棄一次。這樣同一個初始狀態,用不同的隨機丟棄方式走一遍推演流程,會得到略微不同的結果,這些結果之間的差異就代表了模型自身對大氣演變規律理解上的不確定性。

這兩個機關分別對應著不確定性研究里兩個經典概念

偶然不確定性:由被觀測系統本身的隨機性帶來的、原則上無法通過收集更多數據消除的不確定性,比如觀測儀器的固有誤差、大氣本身的混沌特性。

認知不確定性:源自模型本身的局限,比如訓練數據不夠、架構設計不完美,這類不確定性原則上可以通過更多訓練、更好的架構來降低。

論文把編碼器的噪聲對應偶然不確定性,把處理器的丟棄對應認知不確定性,但作者很謹慎地強調,這個對應關係是一種設計選擇,需要用實驗去驗證,而不是拍腦袋認定的真理。

這裡有一個類比能說清楚為什麼要用兩套不同的機關,而不是隨便找一個統一的噪聲源糊弄過去。

想像你要預測一場足球比賽的比分。第一層不確定性來自你對場上球員實力和狀態的了解程度,比如你根本不知道主力前鋒今天是不是感冒了,這是資訊缺失帶來的模糊。第二層不確定性來自你對足球這項運動本身規律的理解,比如你到底懂不懂什麼樣的戰術組合更容易進球,這是理解能力帶來的模糊。如果你只用一個籠統的"這場比賽不好預測"來表達不確定性,教練根本不知道該去打聽球員傷病情況,還是該去請更懂戰術的分析師。只有把這兩層拆開,才能知道該往哪個方向努力。論文如果只在某一處加一個統一的隨機擾動,就相當於把這兩種完全不同性質的模糊攪在一起,沒法回答"到底該加觀測站還是該換模型"這個實際問題。

至於解碼器,論文選擇保持它完全確定,不加任何隨機性。這個設計其實是為了保證整個不確定性的拆分是乾淨利落的兩分法,如果三個環節都摻了隨機性,最後就很難說清楚每一份不確定性到底是從哪兒冒出來的。

不確定性怎麼拆分:一個嵌套集合的設計

光裝兩個隨機機關還不夠,還得想辦法把最終預報里的總體不確定性,拆解成分別歸功於編碼器和處理器的兩部分。

論文用的方法叫嵌套集合

嵌套集合:先固定住一次編碼器的隨機噪聲抽樣,得到一個初始狀態,然後在這個初始狀態基礎上,用處理器的丟棄機制重新推演很多次,得到一組"內層"預報結果。接著換一次編碼器的噪聲抽樣,重複上面的步驟,得到另一組內層預報結果。這樣反覆做上好幾輪外層抽樣,就形成了一個"外層套內層"的兩層集合結構。

論文裡用的具體配置是外層抽樣7次,每次內層再推演7次,一共產生49個預報成員,這個規模和歐洲中期預報中心業務系統里50個成員的集合預報差不多。

這樣一套嵌套結構做出來之後,就可以用統計學裡的方差分析方法,把總方差乾淨地拆成兩塊:同一組內層結果的散布程度,代表處理器丟棄機制帶來的不確定性;不同組之間均值的散布程度,代表編碼器噪聲帶來的不確定性。這套公式叫全方差定律,本質上就是說總的不確定性等於組內變化加組間變化。

這個設計可以類比成一個連鎖餐廳想搞清楚顧客口味滿意度差異到底來自哪裡。總部先派出7位不同風格的主廚,每位主廚按自己的理解定一套菜譜,這是外層的抽樣。然後每套菜譜又交給7位不同手法的廚師去實際炒菜,每位廚師手法略有差異,這是內層的抽樣。如果不這樣拆開做實驗,直接把49份菜端上桌收集顧客評分,你得到的只是一個籠統的滿意度方差,根本分不清是菜譜設計得不好,還是廚師手藝參差不齊。只有嚴格控制外層菜譜不變、只變內層廚師,才能算出廚藝本身貢獻了多少差異,反過來也才能算出菜譜設計貢獻了多少差異。這正是論文裡嵌套結構存在的意義,不嵌套就沒法拆分。

改造之後,預報到底變准了還是變差了

這是最實際的問題:加了這麼多隨機擾動進去,會不會把原本還不錯的確定性預報給搞砸了?

結果是不但沒砸,反而變好了。

論文裡報告的數據顯示,經過概率化改造之後的集合預報均值,在六個關鍵氣象變量(地表兩米溫度、850百帕高空溫度、10米高度的南北和東西風速、500百帕位勢高度、海平面氣壓)上,相比原來的確定性Aardvark模型,均方根誤差平均降低了4.2%。第一天的預報改善了6.1%,第十天的預報改善了8.1%,中間三到五天的改善幅度最小但也沒有變差。

這個反直覺的結果背後有個機制解釋:編碼器學會的輸入相關噪聲,客觀上起到了損失衰減的作用,訓練過程中會自動給那些天生就很難預測準的目標降低權重,不逼著模型在這些註定算不準的地方死磕,反而騰出精力把容易預測準的地方做得更好。

如果換成概率評分的角度看,進步幅度就更大了。論文用了一種叫CRPS的評分標準

CRPS(連續分級概率評分):一種衡量概率預報質量的標準評分方法,對於只給一個確定答案的預報,CRPS就退化成普通的絕對誤差。這個指標既能獎勵預報准,又能獎勵預報的不確定性表達得恰當。

用CRPS衡量,改造後的集合預報比原來的確定性預報提升了24%到38%,而且在所有變量、所有預報時長上都有統計學意義上的顯著改善。

不過和歐洲中期預報中心的業務集合預報系統比,端到端模型還是有明顯差距,第一天的CRPS差距高達80%,到第十天差距縮小到18%到36%。差距最大的是氣壓場相關的變量,論文分析原因是這些變量在傳統業務系統里高度依賴探空氣球、飛機報告和無線電掩星觀測,而端到端模型的編碼器壓根沒吃到飛機和掩星數據,探空氣球數據的權重也很低。這說明差距的根源可能不在概率化機制本身,而在於原始觀測數據餵得不夠豐富。

預報到底準不準,這套系統有沒有說實話

一個概率預報光是數字好看還不夠,還得看它說的"不確定性"到底靠不可靠。這裡有個專門的檢驗指標

離散度技巧比:集合預報里各個成員之間的分散程度,除以集合均值預報的實際誤差,如果這個比值等於1,說明模型說的不確定性和它實際犯錯的程度是匹配的,如果遠大於1說明模型過于謹慎,喊得比實際情況可怕,如果遠小於1則說明模型盲目自信,實際比它說的更容易出錯。

論文測出來的結果是,從第一天到第十天,平均下來這個比值是0.98,非常接近完美的1,走勢也和歐洲中期預報中心的業務集合預報很像,第一天略微保守,中間幾天最接近完美,第十天又略微回升。

但這個平均數字掩蓋了一個細節:在預報的最初那一刻,也就是編碼器剛生成初始狀態還沒開始推演的時候,它的離散度技巧比只有0.78,明顯偏自信了,說明編碼器學到的噪聲只覆蓋了觀測數據本身遺留下來的那部分不確定性,沒能完全代表整個資料同化過程應有的誤差。等處理器的丟棄機制一介入,只推演一步之後,整體校準立刻變好,說明丟棄機制在校準這件事上扛了大頭。

拿到氣象站層面去驗證,結果基本一致:站點預報的均方根誤差和原來的確定性模型相比,差距控制在2.4%以內,同時CRPS在每個預報時長、每個地區(包括觀測站點稀疏的西非和太平洋地區)都顯著更好。不過站點層面的校準就沒有格點層面那麼理想,模型在所有預報時長上都顯得有點自信過頭,論文推測這和解碼器完全沒有加隨機性有關,觀測誤差和代表性誤差這類"最後一公里"的不確定性根本沒被建模進去。

不確定性到底是誰的鍋:一次因果驗證實驗

前面說編碼器管觀測不確定性、處理器管模型不確定性,這只是設計初衷,得拿實驗去驗真假。

論文設計了一個很巧妙的驗證方法,思路借鑑自傳統氣象學裡的觀測系統實驗

觀測系統實驗:通過人為拿掉某一種觀測數據源,重新跑一遍整個預報流程,看看結果會受到多大影響,從而判斷這種觀測數據到底有多重要。傳統方式做這種實驗代價很高,得跑完整的資料同化和預報循環,耗時數月。而在這個端到端集合系統里,做一次這樣的實驗只需要重新編碼加重新跑一遍集合預報,一塊GPU幾個小時就搞定。

論文選了兩個觀測數據源做測試:一個是IASI衛星紅外探測儀,這是對模型影響最大的觀測數據源;另一個是IGRA探空氣球網路,是影響最小的數據源。

結果非常乾脆。拿掉IASI之後,編碼器分支貢獻的不確定性在前三天內直接翻倍(增幅96%到111%),隨著預報天數增加,這種影響逐漸被處理器的推演過程"遺忘",到第十天只剩5%的增幅。而在整個過程中,處理器分支貢獻的不確定性幾乎沒有反應,最大波動也不超過8%。反過來,拿掉影響力最弱的探空氣球數據,兩個分支的變化都在1%以內,幾乎可以忽略。

這個結果就像一次精確制導的實驗:動了哪根線,只有對應的那個儀錶盤會跳。這說明編碼器分支和處理器分支確實各自守著自己的領地,拿掉一個關鍵觀測源,只會讓"我們對當前大氣狀態了解多少"這個指標變差,而不會莫名其妙地影響"我們對大氣演變規律理解多少"這個指標。

這個驗證之所以重要,是因為如果沒有這層因果檢驗,前面所有關於"編碼器代表觀測不確定性、處理器代表模型不確定性"的說法都只是一廂情願的命名遊戲。就像給兩個抽屜貼了標籤"文件"和"雜物",但從沒真正打開檢查過裡面裝的是不是對得上標籤。這次拿掉觀測源的實驗,相當於真的打開抽屜驗證了一次,結果發現標籤貼對了。

從這個結果往前想一步,其實這套機制天然適合用來規劃未來的觀測網路。想知道某個新增的衛星傳感器對提升預報信心有多大幫助,或者某個老舊地面站網路退役會造成多大損失,理論上都可以用這種"拿掉再看反應"的方式快速估算,而不需要真的花幾個月去跑傳統的觀測系統實驗。

不確定性的真相:一個反直覺的發現

論文裡有一個結果,我覺得值得單獨拎出來說。

傳統氣象學裡有個根深蒂固的直覺:預報的頭一兩天,誤差主要來自初始條件沒定準(也就是觀測和資料同化環節的問題),越往後推演,模型自身動力學理解上的偏差才會越來越占主導。這個直覺支撐了幾十年的集合預報設計思路。

論文的結果部分符合這個直覺,部分完全推翻了它。

方向是對的:從第一天到第十天,處理器分支(對應模型/動力學不確定性)占總不確定性的比例,確實從86%一路漲到96%,越往後模型不確定性確實越占主導。

但程度完全出乎意料:即便是在第一天,理論上應該是初始條件誤差唱主角的時刻,編碼器分支貢獻的不確定性占比也只有14%,剩下86%全都來自處理器的動力學推演。換句話說,從一開始,這套系統里的大部分不確定性都被歸因到模型本身,而不是觀測數據的問題。

論文對這個結果保持了相當審慎的態度,沒有直接下結論說"模型不確定性遠比觀測不確定性重要",而是把它解讀成一對邊界:編碼器分支給出的是觀測不確定性的下限,處理器分支給出的是純模型不確定性的上限。真實情況可能介於兩者之間,因為至少有三種因素可能扭曲這個比例。第一種可能是編碼器學到的噪聲本身就低估了觀測和資料同化環節的真實誤差,這一點從編碼器單獨拿出來看時明顯偏自信(離散度技巧比只有0.46到0.19)就能看出端倪。第二種可能是這套方差分解方法在數學處理順序上,把編碼器和處理器之間的交互效應全部算進了處理器那一份賬里。第三種可能是每一步都重新抽取的丟棄掩碼,其實更像是一種沿途累積的隨機擾動機制,而不是對模型參數不確定性的一次性快照。

這種坦誠地把自己方法的局限性和可能的解釋偏差擺在檯面上討論,比一上來就宣稱"我們發現了真理"要可靠得多。

寫在後面

讀完這篇論文,最讓我意外的不是技術設計本身,而是那個"14% vs 86%"的數字。

我原本以為,端到端模型既然是直接從原始觀測數據出發構建大氣狀態,它的不確定性理應大部分來自觀測這一端,畢竟省掉了傳統資料同化那套精密的誤差處理流程。結果論文告訴我,哪怕在預報剛開始的那一刻,絕大部分不確定性依然算在了模型動力學頭上。這提醒我一件事:一個系統"從哪裡獲取資訊"和"它對這些資訊有多大把握",其實是兩回事,前者決定輸入渠道,後者取決於處理這些資訊的機制本身設計得多嚴謹。觀測數據再豐富,如果編碼器學到的置信度評估本身偏樂觀,這份不確定性就會被系統性低估,而不是自動反映在最終結果里。

另一個值得琢磨的地方是,論文反覆強調"編碼器分支約等於觀測不確定性,處理器分支約等於模型不確定性"這個說法只是一種近似,而不是精確對應。這種謹慎其實挺難得的,在一個動輒用"可解釋AI"當賣點的領域裡,願意承認自己的解釋框架有邊界、有局限,反而更讓人信服。

論文最後提到一個還沒做的實驗:把編碼器學到的觀測噪聲,拿去和歐洲中期預報中心那套專門用來評估資料同化不確定性的集合系統做對比。這個對比如果做出來,可能會告訴我們編碼器的置信度評估到底低估了多少,低估在哪些具體的氣象要素上。這事兒現在還是空白,但答案應該不難猜,大概率還是偏樂觀的那一邊。

Q&A

Q1:端到端天氣預報模型和傳統AI天氣預報模型有什麼區別?

A:端到端模型跳過了傳統的資料同化環節,直接從衛星、地面站、氣球等原始觀測數據生成預報,而傳統AI天氣預報模型(如GraphCast)依然依賴ERA5這類經過資料同化處理的再分析數據集作為輸入和訓練目標。

Q2:這套不確定性拆分方法會不會讓原本的預報準確率變差?

A:不會,反而變好了。論文數據顯示,改造後的集合預報均值相比原始確定性模型,均方根誤差平均降低4.2%,用CRPS概率評分衡量則提升了24%到38%,且沒有任何變量在任何預報時長上出現顯著變差。

Q3:為什麼說編碼器分支和處理器分支的不確定性來源是真實分開的,而不是湊出來的說法?

A:論文做了觀測系統拿掉實驗驗證,拿掉最重要的IASI衛星數據後,編碼器分支的不確定性在前三天翻倍,而處理器分支幾乎不受影響;拿掉影響最小的探空氣球數據後,兩個分支變化都在1%以內,證明兩者確實各自對應不同的不確定性來源。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2026 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新