轉載:https://weirping.github.io/blog/Bayesian-Networks-regression.html
概述
概率在現代機器學習模型中起着重要的作用。然而我們會發現,使用概率分佈的圖形表示進行分析很有好處。這種概率分佈的圖形表示被稱爲概率圖模型(probabilistic graphical models)。概率模型的這種圖形表示有如下性質:
- 它們提供了一種簡單的方式將概率模型的結構可視化,可以用於設計新的模型。
- 通過觀察圖形,我們可以更深刻地認識模型的性質,如條件獨立性。
- 在複雜模型中,複雜的計算可以表示爲圖的操作。(這些圖的操作實際上代表了複雜的數據表達式的推導)
一個圖有兩部分組成節點(nodes)和連接(links)。其中節點表示模型中的變量,連接表示節點之間的關係。根據連接是否具有方向性可以將概率圖模型分爲兩類:
- 貝葉斯網(Bayesian Networks): 連接具有方向,用箭頭表示方向,連接的方向也表示了變量之間的條件關係,如A–>B對應條件概率p(B∣A)。貝葉斯網也稱爲有向圖模型(directed graphical models)。有向圖對於表達隨機變量之間的因果關係很有用。
- 馬爾科夫隨機場(Markov random fields): 連接無方向性,也稱爲無向圖模型(undirected graphical models)。無向圖對於表示隨機變量之間的軟限制比較有用。
爲了求解推斷問題,通常比較方便的做法是把有向圖和無向圖都轉化爲一個不同的表示形式,被稱爲因子圖(factor graph)。
本文討論貝葉斯網。
貝葉斯網絡是貝葉斯方法的擴展。它描述的是貝葉斯模型,比如貝葉斯線性迴歸模型,貝葉斯邏輯迴歸模型。
數學表達式與圖的對應
如上文所述,圖模型將數學表達式與圖對應起來,從而提供了一種簡單的方式將概率模型的結構可視化。
在有向圖模型中是怎樣將複雜的概率表達式和圖對應起來的?
直接舉例如下:
根據上圖可以直接將所有隨機變量的聯合概率分佈分解爲下式的右邊,多個因子的乘積。
p(x1,x2,x3,x4,x5,x6,x7)=p(x1)p(x2)p(x3)p(x4∣x1,x2,x3)p(x5∣x1,x3)p(x6∣x4)p(x7∣x4,x5)
具體理論請見PRML 8.1。
對於有K個節點的圖,這K個節點的聯合分佈可以表示爲:
p(X)=k=1∏Kp(xk∣pak)
其中pak是節點xk的所有父節點的集合,XS={x1,…xK} 。
貝葉斯網絡的圖必須是有向無環圖。
貝葉斯迴歸的圖模型
先回顧一下貝葉斯迴歸。
假設訓練集有N個樣本,樣本集的特徵用X表示,xi表示第i個樣本。樣本集的label值用T表示,ti表示第i個樣本的label值。即 X≡(x1…xN)T,T={t1…tN}T ,樣本集表示爲D={X,T} 。 基於該數據集訓練一個迴歸模型y(x;w) ,使用該模型根據新數據的特徵預測其label值。
線性迴歸:y(x,w)=wTx
在迴歸問題中,認爲lable值t服從均值爲y(x,w),方差爲β−1的高斯分佈。
p(t∣x,w,β)=N(t∣y(x,w),β−1)
β爲高斯噪聲,反應的是樣本集的採樣誤差即噪聲。
貝葉斯學派認爲模型中的參數w是一個不確定的值,使用概率分佈對其進行建模。此處我們假設w的是服從均值爲0方差爲α−1I的高斯分佈(也可以進行其他假設,其他情況可參考貝葉斯線性迴歸與貝葉斯邏輯迴歸)。
p(w∣α)=N(w∣0,α−1I)=(2πα)(M+1)/2exp{−2αwTw}
總結一下上面涉及的符號:
符號 |
含義 |
x or xi |
一個樣本的特徵 |
X |
樣本集的特徵 |
t or ti |
一個樣本的label |
T |
樣本集的label |
w |
模型的參數 |
β |
樣本的噪聲 |
α |
w所服從分佈的參數 |
貝葉斯網絡考慮的主要是隨機變量。與之等價的是所有隨機變量的聯合分佈那麼在貝葉斯模型中的隨機變量有哪些呢?
在模型訓練階段只有w和T=(t1,…,tN)是隨機變量, X=(x1…xN)T, β 和α被稱爲deterministic parameters,他們是模型的(超)參數而不是隨機變量。
隨機變量的貝葉斯網
所有隨機變量的聯合分佈可以表示爲:
p(T,w)=p(w)n=1∏Np(tn∣w)
注意,每一個樣本中的lable t 都是聯合分佈中的一個元素,也是圖模型的一個節點。使用圓圈表示隨機變量,其圖模型表示爲如下如所示。
可以看到上圖中需要顯示重複表示N個t節點,太複雜了。對於重複的節點可以改成下圖的表示方法。使用一個方框(box)表示重複節點,其中右下角的N 表示重複次數。
增加模型參數
有時候顯示的表達出模型的參數,對於問題的分析是有幫助的。包含模型參數的隨機變量的聯合分佈表示如下。
p(T,w∣X,α,β)=p(w∣α)n=1∏Np(tn∣w,xn,β)
在圖模型中,模型參數表示爲實心小圓點。
observed variables
在模型訓練過程中,所有的隨機變量 T=(t1,…,tN) 對於模型來說都是已知的,即觀測到的變量(observed variables)。 相應的,w 是未被觀測到的,稱爲隱變量(latent variable)。
在貝葉斯網中,觀測到的變量使用實心圓圈表示,隱變量使用空心圓圈表示。如下圖所示:
增加預測變量
我們的最終目標是對新輸入的變量進行預測。假設給定一個輸如值x^,我們想找到以觀測數據爲條件的對應的t^的概率分佈。描述這個問題的圖模型如下圖所示:
這個模型的所有隨機變量的聯合分佈爲:
p(t^,T,w∣X,α,β)={n=1∏Np(tn∣w,xn,β)}p(w∣α)p(t^∣x^,w,β)
總結
- 使用圓圈表示隨機變量;
- 觀測到的變量使用實心圓圈表示,隱變量使用空心圓圈表示;
- 使用一個方框(box)表示重複節點,其中右下角的N 表示重複次數;
- 模型參數表示爲實心小圓點,連隨機變量的聯合分佈中是條件變量部分,如p(T,w∣X,α,β);
參數的後驗分佈
對於訓練數據來說,所有隨機變量的聯合分佈表示如下:
p(T,w∣X,α,β)=p(w∣α)n=1∏Np(tn∣w,xn,β)
根據貝葉斯公式有參數w的後驗分佈:
p(w∣T,X,α,β)=p(T∣X,α,β)p(T,w∣X,α,β)
其中T是觀察到的變量,p(T∣X,α,β) 是一個常數,所以:
p(w∣T,X,α,β)∝p(T,w∣X,α,β)=p(w∣α)n=1∏Np(tn∣w,xn,β)
預測分佈
由公式
p(t^,T,w∣X,α,β)={n=1∏Np(tn∣w,xn,β)}p(w∣α)p(t^∣x^,w,β)
對於新數據t^在給定訓練數據集{X,T}時的預測分佈
p(t^∣X,T,α,β)=p(T∣X,α,β)p(t^,T∣X,α,β)
其中T是觀察到的變量,p(T∣X,α,β) 是一個常數,所以:
p(t^∣X,T,α,β)∝p(t^,T∣X,α,β)=∫p(t^,T,w∣X,α,β)dw
參考資料
Pattern Recognition and Machine Learning