貝氏深度學習
隨機變分推論(SVI)
變分推論把後驗推論變成一個最佳化問題:你挑一族容易處理的分布,調整它直到最貼近真正的後驗。問題是它的目標函數——證據下界(ELBO)——古典做法每走一步梯度就要掃過整個資料集,當你有上百萬筆資料時根本做不到。隨機變分推論(SVI)之於推論,正如 SGD 之於一般訓練:它用一小批隨機的小批次來估計 ELBO 的梯度,再放大成整個總和的代表,然後走一步帶雜訊的更新。
形式上,獨立同分布資料的 ELBO 可分解為每筆資料的概似項相加,再加上對先驗的一個整體 KL 散度。SVI 抽出一個小批次,把它的概似貢獻乘上 N 除以批次大小,得到全資料梯度的無偏估計,再依 Robbins-Monro 的步長排程上升。Hoffman 等人最初對共軛模型在整體變分參數上用自然梯度更新;現代的黑盒版本把小批次與重參數化技巧結合,使同樣的想法適用於非共軛的深度模型。
SVI 讓「對大型神經網路做貝氏處理」變得可以想像——它是變分自編碼器以及大多數權重空間變分貝氏神經網路背後的主力。代價是變異數:小批次雜訊加上對期望值的蒙地卡羅取樣會使梯度很吵,因此控制變量法與重參數化技巧在實務上極為重要。
\hat{\mathcal{L}}=\frac{N}{|B|}\sum_{i\in B}\mathbb{E}_{q}[\log p(x_i\mid z)]-\mathrm{KL}\!\left(q\,\|\,p\right)
小批次對 ELBO 的無偏估計,把概似總和以 N 除以批次大小放大。
又稱
另見