从Bayes角度理解Deep learning
從貝葉斯角度思考神經網絡
01
?
理解模型所不能勝任的工作是重要的,無論是從實踐者的角度,還是對不同機器學習應用的端側使用者來說。我們在先前的博客里已經討論了不同類型的不確定性,闡釋了如何使用不確定性解釋和調試模型。
?
在這篇博客里,我們將要討論不同的在深度神經網絡中獲取不確定性的方法。我們先從貝葉斯的視覺來看待神經網絡。
02
貝葉斯學習 101
貝葉斯統計使我們能夠基于證據(數據)和先驗知識得到關于現實世界的結論。其常常與僅僅考慮證據的頻率統計學作比較。先驗知識描述了我們關于生成數據的模型或模型權重的信念。我們可以將該信念表示為模型權重上的一個先驗分布p(w)。
?
當我們收集更多數據,我們更新先驗分布并基于貝葉斯法則將其轉換為后驗概率分布,這一過程稱為貝葉斯更新:
?
?
?
該等式引入貝葉斯學習中的另一個主角——似然,定義為p(y|x,w)。它表示給定模型權重下數據的可能性。
03
貝葉斯視角下的神經網絡
神經網絡的目標是估計似然p(y|x,w),即使你明確沒有這樣做,也是確實如此,例如,當你最小化MSE(均方誤差)的時候。
?
我們可以通過最大化似然估計得到最優的模型權重。
04
或者,我們可以利用表示為關于權重的先驗分布的先驗知識,最大化后驗分布。這一方法稱為最大化后驗估計(Maximum Aposteriori Estimation):
?
?
?
表示先驗的項logP(w),作為一個正則項。若選擇均值為0的高斯分布作為先驗,你將得到一個在數學上等價的L2的正則項。
?
現在我們先將神經網絡看作概率性的產物,讓事情變得有趣點。首先,沒有人要求在訓練過程結束后我們必須輸出一個權重集合。如若我們學習一個關于權重分布的模型,而不是學習模型的權重,會怎樣呢?這讓我們得以估計關于權重的不確定性。接下來,我們該怎么做?
05
?
只要你開始嘗試使用貝葉斯,你就回不去啦
?
我們重新開始對權重進行預先分配,并旨在找到它們的后驗分布。這一次,我們不是直接優化網絡的權重,而是對所有可能的權重(稱為邊緣化)進行平均。
在推理中,我們不是采用最大化后驗分布的單一權重集(或者如果我們使用MLE,則是可能性),而是考慮所有可能的權重,并通過它們的概率加權。這是通過使用積分來實現的:??
?
06
x是我們想要推斷y的數據點,X,Y是訓練數據。第一項p(y | x,w)是我們很好的舊似然,第二項p(w | X,Y)是給定數據的模型權重的后驗概率。 ??
?
我們可以將其視為由每個模型的概率加權的模型集合。實際上,這相當于無限數量的神經網絡的集合,具有相同的架構但具有不同的權重。?
?
我們達到了嗎??
?
事實證明,在大多數情況下,這種積分是難以處理的。這是因為無法通過分析評估后驗概率。 ??
?
這個問題并非貝葉斯神經網絡所獨有。在很多貝葉斯學習的情況下,你會遇到這個問題,多年來已經開發出許多克服這個問題的方法。我們可以將這些方法分為兩類:變分推理和抽樣方法??
07
蒙特卡洛抽樣?
?
我們出現了問題。后驗分布是難以處理的。如果不是計算真實分布上的積分而不是計算從中得到的樣本的平均值,那么該怎么辦呢?一種方法是馬爾可夫鏈蒙特卡羅 - 你構造一個馬克夫鏈,所需的分布作為其平衡分布。?
?
?變分推理?
?
另一種解決方案是使用與易處理家庭不同的分布來近似真實難以處理的分布。為了測量兩個分布的相似性,我們可以使用KL分歧:??
08
設變分分布 q 的變分參數為θ ,目標是找到特定的θ 值最小化 KL 散度。
先來看看已知信息:第一項是變分分布與先驗分布之間的 KL 散度,第二項是關于 qθ的似然。因為要求的是解釋數據最好的 qθ,另外能夠盡可能地靠近先驗分布。這只是將引入正則化的另一種方法。
?
現在可以基于 qθ做預測:
上面的公式來源于 2015 年 DeepMind 發表的論文。類似的想法在 2011 年的時候被 graves 提出,更早的是由 Hinton 和 vanCamp 在 1993 年提出。在 NIPS 的 Keynote talk 上,貝葉斯深度學習工作室展示了這些思想在這些年來的演變。
?
但是如果不想從頭訓練一個模型又該怎么辦呢?如果已有一個訓練過得模型,我們如何基于它獲得不確定性估計呢?這可行嗎?
?
結果證明如果在訓練時進行 dropout,可以實現上述想法。
09
dropout是不確定性的一種手段?
?
dropout是一種很好用的練習器作為正規則。在訓練時間,你隨機抽樣節點并將它們刪除,即 - 將它們的輸出設置為0.動機?您不希望過度依賴特定節點,這可能意味著過度擬合。 ??
?
2016年,Gal和Ghahramani表明,如果您在推理時間應用 dropout? ,您可以輕松獲得不確定性估算:?
1.多次推斷y | x,每次采樣一組不同的節點退出。?
2.平均預測以獲得最終預測E(y | x)。?
3.計算預測的樣本方差。 ??
?
而已!你得到了方差的估計!這種方法背后的直覺是,訓練過程可以被認為是同時訓練2 ^ m個不同模型 - 其中m是網絡中節點的數量:未被丟棄的每個節點子集定義新模型。所有模型共享它們不會丟棄的節點的權重。在每批中,訓練隨機抽樣的這些模型組。 ??
?
訓練結束后,你手中就會擁有一系列模特。如果你在推理時使用這個整體,如上所述,你會得到整體的不確定性。??
10
采樣方法與變分推理?
?
就偏差 - 方差權衡而言,變分推理具有較高的偏差,因為我們選擇了分布族。這是我們正在做的一個強有力的假設,并且作為任何強有力的假設,它引入了偏見。但是,它很穩定,方差很小。 ??
?
另一方面,采樣方法具有較低的偏差,因為我們不對分布做出假設。這是以高差異為代價的,因為結果取決于我們繪制的樣本??
11
最后的想法?
?
能夠估計模型不確定性是一個熱門話題。在醫療助理和自動駕駛汽車等高風險應用中了解它非常重要。它也是一個有價值的工具,可以了解哪些數據可以使模型受益,因此我們可以去獲取它。 ??
在這篇文章中,我們介紹了一些獲得模型不確定性估計的方法。還有更多的方法,所以如果您對此感到高度不確定,請繼續尋找更多數據?
總結
以上是生活随笔為你收集整理的从Bayes角度理解Deep learning的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IPv6推进将非常漫长
- 下一篇: 生成网站页面的截图