变分贝叶斯深度学习综述
?PaperWeekly 原創 ·?作者 |?薛博陽
單位 |?香港中文大學
研究方向?|?語言模型
引言
近年來,貝葉斯深度學習(Bayesian Deep Learn-ing)在諸多領域得到廣泛關注應用,效果顯著。本文將針對貝葉斯深度學習框架進行系統性的概述,包括模型不確定性的引入;貝葉斯神經網絡(Bayesian Neural Network)、高斯過程(Gaussian Process)、變分自編碼器(Variational Auto-Encoder)三個主流模型的介紹,以及如何使用變分推斷(Variational In-ference)求解上述模型的潛在變量分布;最后對相關參考文獻進行總結。
深度學習的不確定性
首先談下為什么要引入貝葉斯深度學習方法。貝葉斯深度學習能夠對傳統深度學習模型的不確定性(Model Uncertainty)建模,隨著近年來卷積神經網絡,Transformer 等發展,主流深度學習框架變得越來越復雜,網絡深度可達成百甚至上千層,參數量也超過數千億。這些大規模的神經網絡雖然對信息感知和特征提取能力越來越強,但也存在在有限數據集上容易過擬合及模型泛化能力弱的隱患。
針 對 這 個 問 題, 一 種 常 用 的 方 法 是 引入 Dropout,在模型訓練時使用由一個超參數控制的伯努利分布對所有網絡節點隨機選擇丟棄,使每次訓練迭代的網絡都不完全相同,引入了模型結構的不確定性;而在預測時則考慮所有節點,可看作所 有訓練中不同網絡的集成(Ensemble)或平均,從而有效減小了過擬合,Dropout 中的超參數通常需要手動調節。
另一種方法是在網絡參數上加入隨機噪聲,這相當于引入參數的不確定性。然而這些不確定 性建模方法都只是簡單的正則化,缺乏嚴謹的數學表述推理論證。深度學習任務通常有兩種不確定性,一種是來源于數據噪聲的隨機不確定性(Aleatoric Uncertainty),另一種就是重點關注的模型不確定性,在不同模型框架上又可分為參數不確定性,結構不確定性以及隱變量的不確定性。下面使用一個更直觀的例子來說明引入不確定性如何有效提升模型泛化能力。
傳統深度學習模型都是確定函數的點估計(Point Estimation),對于一個鑒別狗品種的圖像分類模型,如果輸入一張訓練集分布外的圖像,如一只貓的照片,那樣識別結果將很離譜。于是我們希望能在模型返回預測結果時附帶不確定性信息,也可以看做對結果的置信度。這需要引入能對不確定性建模的概率模型(Probabilistic Model),如下圖所示的二氧化碳濃度預測模型,藍色虛線左邊是觀測數據,右邊是測試數據;對于測試部分的數據點 ,傳統的深度學習模型會給出確定的預測,如左圖紅色虛線所示;而概率模型則會對未知的測試部分均采用概率分布來表示,如右圖藍色陰影部分所示,在數據集不能學習到準確的數據分布的情況下(當然實際所用的所有數據集都是有限的),很顯然引入不確定性更合理,這也是能有效提升模型泛化能力的原因。
▲ 圖1. 傳統深度學習模型(左)與概率模型(右)對二氧化碳濃度的預測
這里的概率模型就是用的貝葉斯方法建模,假設存在數據集 和標簽集 ,在預測測試數據對 的概率分布時,根據邊緣概率計算,我們有
其中 為模型參數,問題就轉換為求參數 在訓練集 上的最大后驗分布的問題。根據貝葉斯公式,有
傳統深度學習通常是對參數 進行定參估計,而貝葉斯模型把參數看做概率分布,需要對所有 值進行積分,按照 Bishop 的《Pattern Recognition and Machine Learning》的定義,這種積分是貝葉斯方法的核心,在深度學習模型上應用貝葉斯方法就統稱為貝葉斯深度學習。我們對公式(2)分母部分進行歸一化積分,有
這部分也稱作模型證據(Model Evidence)或邊緣似然(Marginal Likelihood) 分布。由于積分的存在,通常很難求得解析解,這就需要用到一些近似推斷方 法。至此,我們從不確定性,概率模型,貝葉斯方法的基本思路著手,明確了貝葉斯深度學習和不確定性的關系,下面就來講貝葉斯深度學習里最經典的模型——貝葉斯神經網絡。
貝葉斯神經網絡
廣義的貝葉斯深度學習在不同文章課題中定義略有不同,但狹義的貝葉斯深度學習公認是指貝葉斯神經網絡。結合上文不確定性,再來詳細討論貝葉斯神經網絡和傳統神經網絡的區別:傳統神經網絡中,我們認為模型參數 是定值,如圖二左所示,并且在一個任務上存在最優參數 ;訓練時,給模型參數賦一組初值 ,基于觀測數據集 訓練模型不斷更新 ,訓練時可以使用最大似然估計
或者加入正則項將最大似然變為最大后驗估計
其中 正則項是將 假設為拉普拉斯先驗, 正則項是高斯先驗,不論 MLE 還是 MAP,最終學習目標都是讓參數無限逼近 。
▲ 圖2. 參數固定的傳統神經網絡(左)以及參數服從概率分布的貝葉斯神經網絡(右)
需要指出雖然最大后驗估計也引入先驗,但仍屬于定參估計,沒有引入概率模型,不需要對參數積分,因此不屬于貝葉斯方法。傳統神經網絡無法對不確定性建模,在監督學習中往往對預測結果過于自信,很容易發生過擬合。
順著前文在參數上引入不確定性的思路,我們 認為 服從某種概率分布而非固定參數,如圖二右所示,為了最大化不確定性,我們先假設 服從高 斯分布,這樣訓練的也不再是單一網絡,而是無數個相同位置節點參數服從同一概率分布的集成網絡。此時參數 的先驗分布不再是簡單的正則項,而是對應的共軛分布,高斯分布的共軛先驗也應該是一 個高斯分布,對應的后驗分布也是一個高斯分布。模型的優化目標就是最大化后驗高斯分布 ,也就是公式(1)中的后驗。
現在問題的關鍵就是計算公式(3)的邊緣算子了。如果模型是線性回歸之類的簡單模型,其實也不難求出解析解,但換成神經網絡后就會變得異常復雜,下面簡單推導一下。假設有模型 ,輸入向量 ,標簽 ,模型參數為 ,假設模型輸出服從均值為 ,方差為 的高斯分布,有
權重 的共軛先驗也是高斯分布,假設其均值為 ,方差為 ,可得
后驗分布由貝葉斯公式
計算,代入多元高斯概率密度函數,對后驗分布取?
其中 為常數項。對于一般的線性回歸模型, 是關于 的線性函數,后驗概率仍是是關于 的高斯分布,可以直接計算出解析解,但是在神經網絡中,由于大量非線性單元,模型輸出 與 不再是線性關系,網絡模型對于參數值的高度非線性意味著精確的貝葉斯方法(即數值求解)不可行,因此我們不得不借助一些近似方法,如拉普拉斯近似(Laplace Approximation),馬爾科夫鏈蒙特卡羅采樣(Markov-Chain Monte-Carlo Sampling),以及近幾年使用最多的變分推斷法。
變分推斷
本節主要講變分推斷求解貝葉斯神經網絡的過程,類似的也可以用于其他貝葉斯深度學習模型上。
變分法最早起源于 18 世紀歐拉、拉格朗日等關于泛函優化的研究,泛函數 (Functional)是以函數作為輸入,返回泛函值作為輸出的一種映射,它以一個函數作為輸入,返回泛函的值作為輸出。研究所有可能的輸入函數,找到最大化或者最小化泛函的函數就是問題的解。相比其他近似推斷方法,變分法具有更好的收斂性和可擴展性,適合大規模問題的求解。貝葉斯深度學習將參數視作概率分布后,誤差函數的輸入也就從定值變為函數,從而轉變為泛函優化,這就是用變分法來求解貝葉斯深度學習模型的原因。
第三節已經證明了貝葉斯神經網絡中的 無法直接計算解析解,甚至很難采樣。變分法的核心就是用一個可解的近似分布 逼近真實分布。第二節分析表明估計后驗分布 需要最大化公式(3)邊緣分布的積分,假設公式(3),根據 Jensen 不等式,有
這也被稱為變分下限(Variational Lower Bound), 是對后驗概率 的變分近似, 是參數的先驗分布,KL 散度用來度量兩個概率分布的距離,如下圖所示
▲ 圖3. 變分下限
一種更直觀的理解是,已知后驗分布 是 一個未知分布,我們引入已知參數分布的 去逼近 ,所以只需最小化 KL ,可以作如下推導
最終結果第一項 與 無關可以忽略,第二項 和第三項分別求 與先驗 的距離,以及 時似然函數 的期望值。這與公式(11)的結果一致,也就是目標函數或誤差函數,即
與正則化的傳統神經網絡對比,貝葉斯神經網絡誤差函數也分為兩部分,一是訓練數據相關的似然代 價(Likelihood Cost),其中 服從 ;二是先驗相關的復雜性代價(Complexity Cost),也就是把正則項變成 KL 散度,傳統方法中引入正則項就有讓模型參數變得稀疏的作用,控制了模型的復雜度。誤差函數的優化就是在兩項函數之間取平衡。
下面說說誤差函數兩項的求解方法,為了最大化不確定性,假設近似和后驗均服從高斯分布,即
似然代價因為積分存在無法直接求解,在此借助蒙特卡羅采樣(Monte Carlo Sampling),即
其中 是每次訓練中對 的采樣次數,如果直接對均值 和方差 采樣代入高斯分布因指數運算在反向傳播時會造成訓練過程不穩定,在此使用一種重參數化(Reparameterize)方法,即
這意味著在前向傳播計算似然代價時,參數 需要從公式(17)隨機采樣獲得,對應貝葉斯神經網絡的參數 不再是一個定值。
對于 與 的 KL 散度項,需要對積分離散化,然后代入高斯分布的概率密度函數,有
其中 表示 中的第 項參數, 并且相互獨立,根據高斯分布均值和二階矩的性質
402 Payment Required
,即可完成最后一步推導。至此,我們已推導出誤差函數項的形式,利用 梯度下降和反向傳播算法,就可以完成大規模參數貝葉斯神經網絡的訓練了,為了稀疏模型我們可以 的標準高斯分布,反向傳播算法如下由于我們假設參數服從高斯分布,因此使用了均值和方差兩個參數,參數量為同等規模的傳統神經網絡的 2 倍。當然實際上只需要對部分參數做貝葉斯推斷,就可以取得較好的效果了。
簡化后的代價函數也可以進行小批量梯度下降,訓練時將 隨機分成 個相等的子集。每次梯度更新是小批量上的平均。如果想要衡量復雜性成本與小批量之間的關系,我們可以將小批量均勻隨機劃分,那么 KL 代價可以在每個訓練周期非均勻地分布在小批量 之間:令 ,并且 。
研究發現 時效果最好,這也意味著在前幾個小批量更新時在模型比較依賴先驗也就是復雜性成本的影響,而后面訓練時很大程度上受數據的影響。也就是說,當數據集趨于無窮時,貝葉斯神經網絡和傳統神經網絡相差并不大,但是在有限數據集上,貝葉斯神經網絡明顯性能更優。
高斯過程
高斯過程是結合連續函數和概率模型的一種非參數化方法,函數 的高斯過程可表示為
其中 是訓練集中的隨機數據對, 是核函數,上述公式是高斯過程的核空間表述(kernel space view),然而,由于數據集中所有數據點都需要相互運算,在大規模數據集上計算復雜度會特別高,另一種權重空間表述(weight space view)的高斯過程形式為模型中一系列基函數的插值
核函數與基函數的關系為 , 是第 個基函數的系數。
此前已有研究證明,對于單隱層的神經網絡,當隱層結點數不斷增加并趨于無窮時,輸出服從高斯分布。由于輸出被描述為基函數的無窮和,因此可以將輸出看作高斯過程,如下圖所示可以看出高斯
▲ 圖4. 單隱層神經網絡結點數不斷增加 (a),(b),(c),(d) 時輸出分布
過程是和模型結構相關的,這也啟發了一系列將高斯過程與貝葉斯深度學習相結合的研究,一種思路就是利用上述權重空間的高斯過程,對基函數插值系數使用貝葉斯估計從而為模型結構的不確定性建模,公式(11)可表示如下
相較之下多了一個變量的積分,其余推導過程就按照變分下限,蒙特卡羅采樣,重參數化,反向傳播等一系列步驟進行,推導過程與第四節類似,在此不作贅述。
變分自編碼器
變分自編碼器本質上也是貝葉斯深度學習,只不過這次是對隱變量(Latent Variables)進行不確定性建模,也就是將神經網絡中的隱藏層輸出視作隨機變量。傳統自編碼器是一種由編碼器和解碼器組成的用于特征提取或數據降維的模型。如下圖所示左邊是編碼器,右邊是解碼器,通過自編碼器將輸
▲ 圖5. 自編碼器
入 映射到低維空間 再通過解碼器還原回真實數據。
在數據處理時會遇到數據量不足的情況,這時就會考慮使用生成模型生成數據,變分自編碼器就是在自編碼器基礎上對 引入變分貝葉斯估計,使其能夠生成數據。這涉及到一類利用變分貝葉斯求解圖模型變量的方法,也是變分貝葉斯在深度學習隱藏變量上的應用,變分自編碼器是其中的典型代表。
對于如下具有連續隱變量的概率圖模型▲ 圖6. 連續隱變量的概率圖模型
我們試圖推斷和學習有向概率圖模型的隱分布, 并通過對 的采樣來實現數據 的生成。由于連續 隨機隱變量 不可見,我們無法根據條件概率分布 生成 ,也就無法得到生成模型 。而數據的先驗分布
因存在積分也無法求解,這時候就可以構建模型 來近似
這個過程可視作編碼器,即由樣本數據 學出一個對應的隱層分布 ,并使用 作為解碼器,實現模型生成。數據集的先驗可以寫作
其中 就是變分下限,也可以寫作
還可以進一步寫作
接下來就是蒙特卡羅采樣,重參數化,反向傳播等一系列算法的運用,推導過程與第四章基本類似,在此不作贅述。
總結
本文從深度學習不確定性的角度切入,總結了貝葉斯深度學習模型提升模型的泛化能力的作用,并講了三個主流的框架:貝葉斯神經網絡,高斯過程,變分自編碼器,分別在模型參數,模型結構和隱藏變量進行不確定性建模,并且給出變分法求解上述模型的過程。參考資料詳見下文。
參考文獻
模型不確定性:
[1] Gal, Y. “Uncertainty in Deep Learning.”PhD Thesis, 2016.
貝葉斯神經網絡,變分推斷:
[2] D. Barber and C. M. Bishop, “Ensemble Learning in Bayesian Neural Networks,”Nato ASI Series F Computer and Systems Sciences, 1998
[3] R. M. Neal, “Bayesian Learning for Neu- ral Networks,”Springer Science & Business Media, 2012.
[4] C. M. Bishop, “Pattern Recognition and Machine Learning,”Machine Learning, 2006.
[5] A. Graves, “Practical Variational Inference for Neural Networks,”NIPS 2012.
[6] C. Blundell et al., “Weight Uncertainty in Neural Network,”ICML 2014.
[7] Goan, E. Bayesian. “Neural Networks: An Introduction and Survey,”In Case Studies in Applied Bayesian Data Science 2020.
高斯過程:
[8] C. E. Rasmussen, “Gaussian Processes for Machine Learning,”Machine Learning, 2006.
變分自編碼器:
[9] D. P. Kingma et al., “Auto-Encoding Vari- ational Bayes,”stat, 2014.
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的变分贝叶斯深度学习综述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CVPR 2022 | 利用域自适应思想
- 下一篇: 有征信问题能销卡吗 信用卡销卡销户要保证