【讀書筆記】貝葉斯學習

原理

與直接應用貝葉斯公式不同,貝葉斯學習指在當前訓練樣本的基礎上,根據新樣本更新每個模型的後驗概率。貝葉斯深度學習[1]則結合了神經網路的模型表示能力,將神經網路的權重視作服從某分布的隨機變數,而不是固定值;網路的前向傳播,就是從權值分布中抽樣然後計算。

我們將當前所有樣本記為\(\pmb e\),新樣本記為\(X = x\),待估計的參數或目標標籤為\(Y\),那麼學習的目標就是計算後驗概率\(P(Y|X=x,\pmb e)\)。在貝葉斯學習中,模型參數具有分布,因此每個標籤的輸出概率是參數概率(\(P(m|\pmb e)\),給定新舊樣本的後驗概率)與對應輸出概率\(P(Y|m,x)\)的加權和(其實也是條件概率),具體寫為

\[\begin{align}
P(Y|X=x,\pmb e) &= \sum_{m\in M}P(Y,m|x,\pmb e)\\
&=\sum_{m\in M}P(Y|m,x,\pmb e)P(m|x,\pmb e)\\
&=\sum_{m\in M}P(Y|m,x)P(m|\pmb e)
\end{align}
\]

其中最後一步假設了模型已經包含了所有當前樣本的資訊。由於\(P(Y|m,x)\)是一個已知值,只需用貝葉斯公式計算\(P(m|\pmb e)\)

\[P(m|\pmb e) = \frac{P(\pmb e|m)P(m)}{P(\pmb e)}
\]

然而,直接求數據分布\(P(\pmb e)\)是不可能的。處理這個有兩種解決思路:

  1. 擬合後驗分布:用MCMC家族、變分擬合(VI)家族,通過KL散度建立擬合分布與\(P(m|\pmb e)\)後驗概率的差異,根據訓練樣本不斷優化得到擬合結果[1]。
  2. 省略數據分布:由於分母\(P(\pmb e)\)保證後驗概率求和後為1,因此在獲得分子的表達式後,可以用一個常數代替其概率值。

例題

考慮單個布爾型隨機變數,輸出為True的概率為\(\phi\),為False的概率為\(1-\phi\),根據不同的樣本情況求解\(\phi\)的後驗概率。

根據貝葉斯分布,有\(P(\phi|\pmb e) = P(\pmb e|\phi)P(\phi)/P(\pmb e)\)

考慮i.i.d.獲取\(n_1\)個True樣本,\(n_0\)個False樣本,因此其似然函數為

\[P(\pmb e|\phi) = \phi^{n_1}(1-\phi)^{n_0}
\]

將未知的先驗分布\(P(\phi)\)設為\([0,1]\)上的均勻分布,歸一化後可得後驗概率如下圖

Beta分布

這個先驗分布為均勻分布的後驗分布又叫做Beta分布,其參數\(\alpha_i=n_i+1\)比樣本個數多一,記為

\[Beta^{\alpha_0,\alpha_1}(p)=1/K p^{\alpha_1-1}(1-p)^{\alpha_0-1}
\]

同樣\(K\)是一個保證積分後為1的歸一化係數。有趣的是最大後驗概率對應的點在\(\frac{n_1}{n_1+n_0}\)處,而這個分布的期望是\(\frac{n_1+1}{n_1+n_0+2}\)(雖然我覺得期望好像沒什麼意義)

進一步的,當參數超過2個時,為Dirichlet分布,記為

\[Dirichelet^{\alpha_0,\cdots,\alpha_k}(p_1,\cdots,p_k)=1/K \Pi_{j=1}^k p_j^{\alpha_j-1}
\]

其每一維上是一個Beta分布。

優勢

  1. 當某一類沒有樣本的時候,直接說\(P(Y=False)=0\)是不正確的,只能說此時為0的後驗概率最大,邏輯上是合理的。

  2. 對於複雜的相關關係,可以利用貝葉斯網路表明隱變數之間的關係,進行推斷。

    bayesian network

參考鏈接

[1] C. Blundell, J. Cornebise, K. Kavukcuoglu, and D. Wierstra, 「Weight Uncertainty in Neural Networks,」 arXiv:1505.05424 [cs, stat], May 2015. [Online]. Available: //arxiv.org/abs/1505.05424

【讀書筆記】貝葉斯原理 – 木坑 – 部落格園 (cnblogs.com)