「一個數字」的問題
一個訓練好的網路只給你一組權重向量,對每個輸入只給一個預測。拿一張它從沒見過的圖去問它——一張雜訊、一張壞掉的掃描、一個訓練時根本不存在的類別——它會用對訓練集一樣輕鬆的自信回答你。softmax 輸出看起來像機率,但那只是「某一個被任意挑出來的函數」所給的機率。它完全沒告訴你:那個函數是不是該被挑中的那一個。
這正是最大概似估計訓練留下的缺口。最小化損失只找到一個好的擬合;它從不量化還有多少別的同樣好的擬合存在,也不告訴你它們在離開資料的地方會多麼劇烈地彼此分歧。每當模型必須棄答、轉交給人、主動蒐集更多標註,或在真實世界中行動時,這個缺席的量——我該多信任這個預測?——就是整場賽局的核心。
在權重上放一個分布
貝氏的做法是:不再把權重當成要被最佳化的數字,而是當成要被推論的隨機變數。在權重上放一個先驗 p(w),把概似 p(D|w) 寫成你平常那個損失的偽裝,於是後驗 p(w|D) 就由貝氏定理推出。一個貝氏神經網路正是如此:它不是一個網路,而是一個在網路上的後驗分布,每個網路依「它把資料解釋得多好」以及「它先驗上多合理」來加權。
交互式贝叶斯信念更新:随着证据到来,先验分布逐步变为后验分布。
於是預測是一個平均,而不是單一次前向傳遞。要對新的 x 預測 y,你把每一個合理網路的預測對後驗積分起來——這就是後驗預測分布。在資料把權重釘死的地方,這些網路全都同意,你得到一個銳利、自信的答案;在資料沉默的地方,它們散開,而那份分歧就是你的不確定性。注意:帶權重衰減的普通訓練其實已經在算這個後驗的峰頂——最大後驗(MAP)估計就是把貝氏的積分換成它最高的那一個點。
预测变成对每个可能网络的平均——后验预测把每个网络的输出对后验加权积分。
兩種「不知道」
並非所有不確定性都有相同的解藥,而把兩者混為一談是這個領域最常見的觀念錯誤。知識不確定性(epistemic)是關於模型的不確定性——哪一個函數才對——它是可化約的:在對的區域蒐集更多資料,它就往零收縮。偶然不確定性(aleatoric)則是資料本身無法化約的雜訊——模糊的影像、本質上就有歧義的標註、感測器抖動——再多資料也消不掉它。
權重上的分布捕捉的是知識那一半:離開資料時網路彼此分歧,於是知識不確定性很大——這正是你想要的訊號,用於分布外偵測與主動學習。偶然那一半則住在概似裡:你讓網路輸出自己的雜訊水準(一個預測的變異數,或某個分布的集中度),這樣它才能說「這個輸入本來就很吵」。良好的不確定性量化會把兩者分開、各自回報。
為何精確貝氏在這裡毫無希望
貝氏定理有一個分母:邊際概似,也就是概似對先驗在所有權重設定上的積分。對一個共軛的玩具模型,這個積分是漂亮的公式;對一個有數百萬權重的網路,它是一個在極度多峰、非共軛地景上的高維積分——徹底難解。這條學習路徑上的每一個方法,本質上都是「閃避那個積分」的不同辦法。
权重的贝叶斯定理——分母是边缘似然,对所有权重的积分,对真实网络无法精确计算。
有兩大策略。近似:用某個你寫得出來、又能最佳化的可解物件去逼近後驗——一個高斯、一個流、一個低秩曲率——它快,但只在「逼近族」夠誠實的範圍內誠實。或取樣:用一條蒙地卡羅鏈從後驗取樣,不需要任何封閉形式,但代價是計算量與混合時間。實務上真正管用的,多半是兩者之間某個聰明又便宜的折衷。
接下來的路
這條路徑就是在攀爬那個折衷。指南 2 用變分推論——這匹主力馬——把近似路線講精確。指南 3 收集大家真正會上線的便宜好用近似:MC-dropout、拉普拉斯近似,以及強得讓人尷尬的深度集成。指南 4 走取樣路線,再邁出激進的一步:在函數而非權重上做推論。指南 5 則追問這一切究竟能不能被信任——用校準、共形保證,以及那些尚未解決的謎題。