一、標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)與貝葉斯神經(jīng)網(wǎng)絡(luò)
通過優(yōu)化的標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)訓(xùn)練(從概率的角度來(lái)看)等同于權(quán)重的最大似然估計(jì)(MLE)。由于許多原因,這往往是不能令人滿意的 —— 使用 MLE 會(huì)忽略在適當(dāng)?shù)臋?quán)重值中可能存在的任何不確定性,即無(wú)法正確評(píng)估訓(xùn)練數(shù)據(jù)中的不確定性,從實(shí)際的角度來(lái)看,這種類型的訓(xùn)練容易出現(xiàn)過擬合現(xiàn)象。
對(duì)此的一個(gè)解決方案是引入正則化(從貝葉斯的角度來(lái)看,這相當(dāng)于在權(quán)重上引入先驗(yàn))。如果我們可以通過規(guī)范模型來(lái)解決過度自信決策和防止模型過度擬合的問題,那為什么我們需要貝葉斯神經(jīng)網(wǎng)絡(luò)?答案是:當(dāng)前神經(jīng)網(wǎng)絡(luò)架構(gòu)中缺少預(yù)測(cè)中的不確定性度量,但貝葉斯神經(jīng)網(wǎng)絡(luò)將其納入其中。BNN 在特定環(huán)境中很重要,特別是當(dāng)我們非常關(guān)心不確定性時(shí),貝葉斯方法自然地解釋了參數(shù)估計(jì)中的不確定性,并且可以將這種不確定性傳播到預(yù)測(cè)中。
深度神經(jīng)網(wǎng)絡(luò)已成功應(yīng)用于許多領(lǐng)域,包括非常敏感的領(lǐng)域,如醫(yī)療保健,安全性,欺詐性交易等等。這些領(lǐng)域在很大程度上依賴于模型的預(yù)測(cè)準(zhǔn)確性,甚至一個(gè)過度自信的決策也可能導(dǎo)致一個(gè)大問題。此外,這些領(lǐng)域具有非常不平衡的數(shù)據(jù)集(百萬(wàn)個(gè)交易中的一個(gè)是欺詐性交易,百分之五的癌癥檢測(cè)結(jié)果是陽(yáng)性,不到百分之一的電子郵件是垃圾郵件),容易導(dǎo)致該模型過度擬合。
從概率論的角度來(lái)看,使用單點(diǎn)估計(jì)權(quán)重以進(jìn)行分類是不合理的。而貝葉斯神經(jīng)網(wǎng)絡(luò)對(duì)于過擬合更加魯棒,并且可以從小數(shù)據(jù)集中輕松學(xué)習(xí)。貝葉斯方法將其參數(shù)以概率分布的形式表示以提供不確定性估計(jì);同時(shí),通過使用先驗(yàn)概率分布的形式來(lái)表示參數(shù),訓(xùn)練期間在許多模型上計(jì)算平均值,這給網(wǎng)絡(luò)提供了正則化效果,從而防止過度擬合。
二、BNN 簡(jiǎn)介
在標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)中,權(quán)重由單個(gè)點(diǎn)表示。 而貝葉斯神經(jīng)網(wǎng)絡(luò)以分布形式表示權(quán)重,如下圖所示:

即使使用少量參數(shù),在貝葉斯神經(jīng)網(wǎng)絡(luò)中推斷后驗(yàn)?zāi)P鸵彩且豁?xiàng)艱巨的任務(wù),因此通常使用后驗(yàn)?zāi)P偷慕浦担兎滞评硎且环N流行的方法。人們將使用簡(jiǎn)單的變分分布(例如高斯分布)對(duì)后驗(yàn)進(jìn)行模擬,并嘗試調(diào)整分布的參數(shù)使其盡可能接近真實(shí)的后驗(yàn) —— 通過最小化這種簡(jiǎn)單變分分布和真實(shí)后驗(yàn)之間的 KL 散度來(lái)完成。
但是用于逼近 BNN 后驗(yàn)的變分方法在計(jì)算上可能相當(dāng)昂貴,因?yàn)槭褂媒品植紩?huì)大大增加模型參數(shù)的數(shù)量,但不會(huì)大幅增加模型容量。例如,使用 BNN 后驗(yàn)近似的高斯分布,模型參數(shù)的數(shù)量增加了一倍,但報(bào)告了與使用丟失的傳統(tǒng)方法相同的預(yù)測(cè)性能。 這使得該方法在實(shí)踐中不適合與 CNN 一起使用,因?yàn)閰?shù)數(shù)量的增加太昂貴。
關(guān)于神經(jīng)網(wǎng)絡(luò)權(quán)重的精確貝葉斯推斷是難以處理的,因?yàn)閰?shù)的數(shù)量非常大,并且神經(jīng)網(wǎng)絡(luò)的函數(shù)形式不適合精確積分。 因此,我們用變分概率分布 qθ(w | D) 逼近難以處理的真實(shí)后驗(yàn)概率分布 p(w | D),它包括高斯分布的性質(zhì) μ∈?d 和 σ∈?d,表示為 N(θ | μ,σ2),其中 d 是定義概率分布的參數(shù)總數(shù)。 這些高斯變分后驗(yàn)概率分布的形狀由它們的方差 σ2 確定,表示每個(gè)模型參數(shù)的不確定性估計(jì)。

三、BNN 相關(guān)知識(shí)
貝葉斯定理
在觀察數(shù)據(jù)之前定義先驗(yàn)概率分布,一旦觀察到數(shù)據(jù)(訓(xùn)練數(shù)據(jù)),學(xué)習(xí)就發(fā)生并且分布變換為后驗(yàn)分布。 利用概率論從數(shù)據(jù)中學(xué)習(xí)構(gòu)成了貝葉斯學(xué)習(xí)的基礎(chǔ)。貝葉斯定理如下:

P(θ | x) 為后驗(yàn)概率,也是我們想要計(jì)算的;P(θ) 為先驗(yàn)概率,在訓(xùn)練數(shù)據(jù)之前就是已知的;P(x | θ) 為可能性,顯示了數(shù)據(jù)分布;P(x) 為證據(jù),我們只能通過對(duì)所有可能的模型值積分來(lái)計(jì)算其值:

這使得問題變得棘手,因此我們采用變分近似來(lái)找到近似貝葉斯后驗(yàn)分布。
變分推斷
首先,我們的原始目標(biāo)是,需要根據(jù)已有數(shù)據(jù)推斷需要的分布 p;當(dāng) p(下圖中黃色區(qū)域)不容易表達(dá),不能直接求解時(shí),可以嘗試用變分推斷的方法, 即,尋找容易表達(dá)和求解的分布 q(下圖中紅線和綠線構(gòu)成的區(qū)域),當(dāng) q 和 p 的差距很小的時(shí)候,q 就可以作為 p 的近似分布,成為輸出結(jié)果了。例如,我們用 qθ(w | D) 來(lái)近似 p(w | D)。首先注意 qθ(w | D) 的表達(dá),其中 w 是變量,θ 是后驗(yàn)概率分布 q 的參數(shù)。所以在構(gòu)造 q 的時(shí)候也分兩步:第一,概率分布的選擇;第二,參數(shù)的選擇。第一步,我們?cè)谶x擇 q 的概率分布時(shí),通常會(huì)直觀選擇 p 可能的概率分布,這樣能夠更好地保證 q 和 p 的相似程度。例如高斯混合模型中,原始假設(shè) p 服從高斯分布,則構(gòu)造的 q 依然服從高斯分布。之后,我們通過改變 θ,使得 q 不斷逼近 p。

我們希望盡可能接近真正的分布,這可以通過最小化兩者之間的 Kullback-Liebler(KL)散度來(lái)做到這一點(diǎn)。然而 KL 的表達(dá)式中依然有一部分不可求的后驗(yàn)概率,這個(gè)問題仍然是棘手的,所以用到了 ELBO:

但是由于積分的存在,這個(gè)公式仍然難以解決。此時(shí),我們可以從近似函數(shù) qθ(w | D) 中進(jìn)行采樣,因?yàn)閺慕坪瘮?shù)中采樣權(quán)值要比真正的后驗(yàn)函數(shù) p(w | D) 更容易。這樣得到容易計(jì)算的函數(shù):

這些采樣權(quán)值 w 被用于神經(jīng)網(wǎng)絡(luò)的反向傳播,學(xué)習(xí)后驗(yàn)分布。
不確定性
貝葉斯建模中,存在兩種類型的不確定:偶然不確定性和認(rèn)知不確定性。
- 偶然不確定性與觀測(cè)中固有的噪聲有關(guān)。這種類型的不確定性存在于數(shù)據(jù)收集方法中,即使收集更多數(shù)據(jù),也不能減少不確定性。這種不確定性可以進(jìn)一步分為同方差不確定性(不確定值是常數(shù),即使輸入數(shù)據(jù)不同),以及異方差不確定性(不確定值取決于模型輸入)。異方差不確定性尤為重要,可以防止模型輸出非常自信的決策。
- 認(rèn)知不確定性代表模型本身造成的不確定性。 給定更多數(shù)據(jù)可以減少這種不確定性。
可以通過在模型參數(shù)或模型輸出上放置概率分布來(lái)估計(jì)不確定性。通過在模型的權(quán)重上放置先驗(yàn)分布,然后嘗試捕獲這些權(quán)重在給定數(shù)據(jù)的情況下變化多少來(lái)模擬認(rèn)知不確定性。另一方面,通過在模型的輸出上放置分布來(lái)模擬偶然不確定性。
BNN 的訓(xùn)練
傳統(tǒng)神經(jīng)網(wǎng)絡(luò)常使用反向傳播來(lái)訓(xùn)練。對(duì)于 BNN,其自然地解釋了參數(shù)估計(jì)中的不確定性,并且可以將這種不確定性傳播到預(yù)測(cè)結(jié)果中;此外,對(duì)參數(shù)值進(jìn)行取平均而不是僅選擇單點(diǎn)估計(jì)值使得模型不易出現(xiàn)過擬合。因此,對(duì) BNN 參數(shù)的訓(xùn)練也需要特殊的訓(xùn)練方法,Bayes by Backprop 就是其中一種(它也是一種變分推斷)。
Bayes by Backprop 用來(lái)學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)權(quán)重的概率分布。它是一種變分推理方法,用于學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)權(quán)重 w ~ qθ(w | D) 的后驗(yàn)分布,可以在反向傳播中對(duì)權(quán)重 w 進(jìn)行采樣。整個(gè)方法可歸納如下:
該方法不是訓(xùn)練單個(gè)網(wǎng)絡(luò),而是訓(xùn)練網(wǎng)絡(luò)集合,其中每個(gè)網(wǎng)絡(luò)的權(quán)重來(lái)自共享的學(xué)習(xí)到的概率分布。與其他集合方法不同,該方法通常僅使參數(shù)的數(shù)量加倍,然后使用無(wú)偏的蒙特卡羅估計(jì)梯度來(lái)訓(xùn)練無(wú)限集合。

模型修剪
由于參數(shù)數(shù)目較大,所以需要對(duì)模型權(quán)重進(jìn)行適當(dāng)?shù)男藜?。模型修剪減少了深度神經(jīng)網(wǎng)絡(luò)的各種連接矩陣中的稀疏性,從而減少了模型中有價(jià)值的參數(shù)的數(shù)量。模型修剪的整個(gè)想法是減少參數(shù)的數(shù)量而不會(huì)損失模型的準(zhǔn)確性。最常用的修剪模型的方法是將低貢獻(xiàn)權(quán)重映射到零并減少整體非零值權(quán)重的數(shù)量,可以通過訓(xùn)練大型稀疏模型并進(jìn)一步修剪來(lái)實(shí)現(xiàn)。
補(bǔ)充:區(qū)分 ML / MAP / 貝葉斯估計(jì)
(這部分內(nèi)容摘自一個(gè)例子搞清楚 先驗(yàn)分布/后驗(yàn)分布/似然估計(jì))
給定一些數(shù)據(jù)樣本 x,假定我們知道樣本是從某一種分布中隨機(jī)取出的,但我們不知道這個(gè)分布具體的參數(shù) θ。
- 最大似然估計(jì)(ML,Maximum Likelihood)可以估計(jì)模型的參數(shù)。其目標(biāo)是找出一組參數(shù) θ,使得模型產(chǎn)生出觀測(cè)數(shù)據(jù) x 的概率最大:

- 假如這個(gè)參數(shù)有一個(gè)先驗(yàn)概率,那么參數(shù)該怎么估計(jì)呢?這就是MAP(Max-a-posterior,最大后驗(yàn)估計(jì))要考慮的問題。MAP優(yōu)化的是一個(gè)后驗(yàn)概率,即給定了觀測(cè)值后使概率最大:

因?yàn)榻o定樣本 x 后, p(x) 會(huì)在 θ 空間上為一個(gè)定值,和 θ 的大小沒有關(guān)系,所以可以省略分母 p(x)。 可化簡(jiǎn)為:

p(x) 相當(dāng)于是一個(gè)歸一化項(xiàng),整個(gè)公式就表示為: Posterior∝(Likelihood?Prior)(后驗(yàn)概率 正比于 先驗(yàn)概率 ? 似然函數(shù))
- 前兩種都是假設(shè)參數(shù)是個(gè)確定值,但貝葉斯估計(jì)假設(shè)參數(shù)是個(gè)隨機(jī)數(shù)。貝葉斯估計(jì)把待估計(jì)的參數(shù)看成是符合某種先驗(yàn)概率分布的隨機(jī)變量,而不是確定數(shù)值。在樣本分布上,計(jì)算參數(shù)所有可能的情況,并通過計(jì)算參數(shù)的期望,得到后驗(yàn)概率密度。
四、BNN 實(shí)例:貝葉斯卷積神經(jīng)網(wǎng)絡(luò)

需要一提的是,對(duì)貝葉斯 CNN 而言,不僅在卷積層中將概率分布置于權(quán)重上,還要求在全連接層中將概率分布置于權(quán)重上。
卷積層的計(jì)算
假設(shè)權(quán)重的變分后驗(yàn)概率分布 qθ(wijhw | D) = N(μijhw,αijhwμ2ijhw)(其中,i 和 j 分別對(duì)應(yīng)輸入和輸出層數(shù),h 和 w 分別對(duì)應(yīng)過濾器的高度和寬度),那么卷積公式被重定義為:

其中,εj ~ N(0,1),Ai 為過濾器在第 i 層要卷積的部分,bj 為相應(yīng)的第 j 層的激活值,? 為卷積操作,⊙ 為元素乘法(component-wise multiplication)。
兩次連續(xù)的卷積操作(期望和方差的更新)
對(duì) CNN 的權(quán)重應(yīng)用概率分布而非單點(diǎn)值,并且要在反向傳播時(shí)更新變分后驗(yàn)概率分布 qθ(w | D),關(guān)鍵在于過濾器會(huì)執(zhí)行兩次卷積操作(在單點(diǎn)預(yù)測(cè)的 CNN 中只執(zhí)行一次卷積)。
從前面的公式我們看到,卷積操作的輸出 b 是期望 μijhw 和方差 αijhwμ2ijhw 的函數(shù),因此我們可以分別計(jì)算出 μijhw 和 αijhwμ2ijhw 的值,從而可以得到一個(gè)高斯概率分布。方法就是執(zhí)行兩次卷積操作:第一次,我們將 b 視為通過頻率推理更新的 CNN 的輸出,將單點(diǎn)估計(jì)值解釋為變分后驗(yàn)概率分布的期望;第二次,我們將得到方差。通過這種方式,我們確保每個(gè)卷積操作只更新一個(gè)參數(shù)(第一次為 μijhw,第二次為 αijhw),這與通過頻率推斷更新的 CNN 完全相同。
實(shí)際上,當(dāng)我們執(zhí)行第一次卷積操作,我們得到的是 qθ(w | D) 的最大后驗(yàn)概率,而第二次卷積操作則是得出權(quán)重 w 偏離了最大后驗(yàn)概率多少。另外,為了加速計(jì)算,確保方差 αijhwμ2ijhw 為非零正數(shù),并提到準(zhǔn)確度,我們學(xué)習(xí) logαijhw 并使用 Softplus 激活函數(shù)。
不確定性估計(jì)
在分類任務(wù)中,我們關(guān)注的是 PD(y* | x*);對(duì)于貝葉斯神經(jīng)網(wǎng)絡(luò),其被表示為:

在 Bayes by Backprop 中,qθ(w | D) ~ N(w | μ, σ2),而 θ = {μ, σ} 在數(shù)據(jù)集 D = {xi, yi}ni=1 的訓(xùn)練中學(xué)習(xí)得到。由于分類問題多是離散的,因此:

其中,Σcf(xc? | w) = 1,C 為總類數(shù)。通過從 qθ(w | D) 取樣,可以獲得期望值的無(wú)偏估計(jì):

T 為樣本數(shù)量。這個(gè)估計(jì)值允許我們?cè)u(píng)估預(yù)測(cè)值的不確定性,因此稱為預(yù)測(cè)方差,用 Varq 表示:

這個(gè)值可以進(jìn)一步分為偶然不確定性和認(rèn)知不確定性:


模型修剪
由于貝葉斯 CNN 中的權(quán)重都由期望和方差來(lái)表示其分布,因此,相較于單點(diǎn)估計(jì) CNN,貝葉斯 CNN 的參數(shù)數(shù)量翻了一倍。為了使貝葉斯 CNN 參數(shù)數(shù)量等于傳統(tǒng) CNN,可以使 BCNN 的過濾器數(shù)目減半。
另一種模型修剪的技術(shù)是對(duì)每層的權(quán)重使用 L1 歸一化。通過 L1 歸一化,我們使各模型層中的權(quán)重向量變得非常稀疏,即大部分矩陣元素變得接近零;同時(shí),剩余的非零元素則捕獲數(shù)據(jù)的最重要特征。我們?cè)O(shè)置一個(gè)閾值,如果該值低于閾值,則使權(quán)重為零。通過只保留非零權(quán)重,可以減少模型的參數(shù)數(shù)量,而不會(huì)影響模型的整體性能。
五、貝葉斯在 BP 神經(jīng)網(wǎng)絡(luò)中的應(yīng)用
看了一些國(guó)內(nèi)的論文,將貝葉斯應(yīng)用于 BP 神經(jīng)網(wǎng)絡(luò)優(yōu)化,往往是利用貝葉斯定理尋找最優(yōu)神經(jīng)網(wǎng)絡(luò)參數(shù),以解決神經(jīng)網(wǎng)絡(luò)權(quán)值易陷入局部最優(yōu)的問題,同時(shí)也能解決神經(jīng)網(wǎng)絡(luò)過擬合。其中心思想在于:根據(jù)給定的先驗(yàn)分布,利用貝葉斯定理考察神經(jīng)網(wǎng)絡(luò)參數(shù)的不確定性,從樣本數(shù)據(jù)中,獲得網(wǎng)絡(luò)結(jié)構(gòu)的后驗(yàn)概率,那么,使得該后驗(yàn)概率最大化的網(wǎng)絡(luò)參數(shù)即為所需的最優(yōu)參數(shù)(我認(rèn)為這其實(shí)是 MAP 而非貝葉斯估計(jì))。最優(yōu)參數(shù)定義為:


為方便計(jì)算,對(duì)后驗(yàn)概率取對(duì)數(shù)得到:

假設(shè)先驗(yàn)概率分布 p(w) 滿足高斯分布:

則有:

上式中,似然函數(shù)部分對(duì)應(yīng)于目標(biāo)函數(shù)中的適應(yīng)度函數(shù),而先驗(yàn)概率部分對(duì)應(yīng)于正則項(xiàng),因此我們可以通過確定先驗(yàn)概率得到正則項(xiàng),從而對(duì)神經(jīng)網(wǎng)絡(luò)的目標(biāo)函數(shù)進(jìn)行優(yōu)化,進(jìn)而有效控制網(wǎng)絡(luò)規(guī)模,提高網(wǎng)絡(luò)泛化能力。
后驗(yàn)分布是人們?cè)讷@得樣本數(shù)據(jù) D 之后對(duì)參數(shù) w 的一種調(diào)整。貝葉斯把上一步得到的后驗(yàn)分布信息儲(chǔ)存起來(lái),在將來(lái)做推測(cè)時(shí),上一步的后驗(yàn)信息就成為了先驗(yàn)信息,這樣持續(xù)數(shù)次操作之后,樣本數(shù)據(jù)的預(yù)測(cè)結(jié)果會(huì)一直進(jìn)行調(diào)整,最后對(duì)參數(shù)估計(jì)的結(jié)果精確度更高。
神經(jīng)網(wǎng)絡(luò)中最重要的兩個(gè)性能參數(shù)就是權(quán)值和閾值,而這兩個(gè)參數(shù)的分布情況受到了目標(biāo)函數(shù)中超參數(shù)的控制,但一般的算法不能確定超參數(shù)的取值??梢岳秘惾~斯定理來(lái)求取目標(biāo)函數(shù)的超參數(shù),并且要求達(dá)到自主調(diào)節(jié)超參數(shù)取值的目標(biāo),并且通過持續(xù)的調(diào)整最后找到最優(yōu)的取值,相應(yīng)的確定 BP 神經(jīng)網(wǎng)絡(luò)的最優(yōu)權(quán)值和閾值。
