貝葉斯網絡結構學習方法


基於評分搜索


定義

基於評分搜索的方法將BN結構學習視爲組合優化問題;

  • 首先通過定義評分函數對BN結構空間中的不同元素與樣本數據的擬合程度進行度量
  • 然後利用搜索算法確定評分最高的網絡結構,即與數據擬合最好的網絡結構

BN結構學習可定義爲優化模型:
OM=(G,Ω,F)OM=(G, \Omega, F)

G:候選網絡結構搜索空間,它定義了樣本數據集D中所有變量(節點)之間可能連接關係的網絡結構集合;
Ω\Omega:網絡變量之間需要滿足的約束條件集合,最基本的約束是所有節點間的連接構成一個有向無環圖;
F:評分函數,表示從搜索空間G到實數集R的一個映射,函數的極值點即爲網絡的最優結構.

Robinson等證明了包含n個節點可能的BN結構數目f(n)f(n)
f(n)=i=1nn!i!(ni)!2i(ni)f(ni)f(n)=\sum^n_{i=1}\frac{n!}{i!(n-i)!}2^{i(n-i)}f(n-i)

可見,隨着變量數目的增多,搜索空間的維數呈 指數級 增長,因此,評分函數和搜索策略是影響評分搜索算法的主要因素.


評分函數

在BN結構學習的框架中,結構G和參數θG\theta_G被視爲隨機變量;
假設數據集D=(d1,d2,...,dm)D=(d_1,d_2, . . ., d_m)是關於n個變量{X1,X2,...,Xn}\{X_1, X_2,..., X_n\}的樣本;
G的可能取值包括所有以{X1,X2,...,Xn}\{X_1, X_2,..., X_n\}爲節點的有向無環圖。
給定結構G,變量θG\theta_G的可能取值是與G對應的參數值。

在這裏插入圖片描述
結構先驗分佈:P(G)P(G)
結構確定之後, θG\theta_G 的參數先驗分佈:P(θG)P(\theta_G)


基於貝葉斯統計的評分

假設數據集D是關於樣本變量{X1,X2,...,Xn}\{X_1, X_2,..., X_n\} 完整獨立同分布數據。
貝葉斯評分的主要思想是給定先驗知識和樣本數據條件下,選擇一個後驗概率值最大的網絡結構,即:
1-1
G=argmaxGP(GD)G^* = \arg max_GP(G|D)
重點是P(GD)P(G|D),又根據貝葉斯定理:
1-2
P(GD)=P(DG)P(G)P(D)P(G|D)=\frac{P(D|G)P(G)}{P(D)}
P(G,D)=P(GD)P(D)=P(DG)P(G)P(G,D)= P(G|D)P(D)=P(D|G)P(G)
P(D)P(D)已知而且不依賴P(G)P(G),所以P(GD)P(G|D)可轉換爲:
1-3
logP(G,D)=logP(DG)+logP(G)\log P(G,D) = \log P(D|G) + \log P(G)
則:
1-4
G=arglogP(DG)+logP(G)G^* = \arg \log P(D|G)+\log P(G)

P(G)P(G)是結構先驗分佈,一般會假設它是某種分佈,ex:均勻分佈
之後展開 P(DG)P(D|G) (稱爲邊緣似然函數)。
1-5
P(DG)=P(DG,θG)p(θGG)dθGP(D|G)=\int P(D|G,\theta_G)p(\theta_G|G) d \theta_G


K2評分

假設數據集D是關於樣本變量{X1,X2,...,Xn}\{X_1, X_2,..., X_n\} 完整獨立同分布數據。G是關於變量集{X1,X2,...,Xn}\{X_1, X_2,..., X_n\}的BN結構,並且p(θGG)p(\theta_G|G)服從均勻分佈。
可知如下K2評分:
1-6
FK2(GD)=logP(G)+i=1nj=1qi{log(ri1)!(mij+ri1)!}+k=1rilog(mijk!)F_{K2}(G|D)=\log P(G) + \sum_{i=1}^n\sum_{j=1}^{q_i}\{\log\frac{(r_i-1)!}{(m_{ij*}+r_i-1)!}\}+\sum_{k=1}^{r_i} \log (m_{ijk}!)

qiq_i:???
rir_i:???
mijkm_{ijk}:變量XiX_i取第k個值同時pa(Xi)pa(X_i)取第j個值的樣本數目

BD(Bayesian Dirichlet)評分

假設數據集D是關於樣本變量{X1,X2,...,Xn}\{X_1, X_2,..., X_n\} 完整獨立同分布數據。G是關於變量集{X1,X2,...,Xn}\{X_1, X_2,..., X_n\}的BN結構,並且p(θGG)p(\theta_G|G)服從Dirichlet分佈。
p(θGG)i=1nj=1qik=1riθijkαijk1p(\theta_G|G) \propto \prod^n_{i=1} \prod^{q_i}_{j=1} \prod^{r_i}_{k=1}\theta_{ijk}^{\alpha_{ijk}-1}
可知如下BD評分:
FBD(GD)=logP(G)+i=1nj=1qi{logΓ(αij)Γ(αij+mij)}+k=1rilogΓ(αijk+mijk)Γ(αij)F_{BD}(G|D)=\log P(G) + \sum_{i=1}^n\sum_{j=1}^{q_i}\{\log\frac{\Gamma(\alpha_{ij*})}{\Gamma(\alpha_{ij*}+m_{ij*})}\}+\sum_{k=1}^{r_i} \log \frac{\Gamma(\alpha_{ijk}+m_{ijk})}{\Gamma(\alpha_{ij*})}

αijk\alpha_{ijk}:Dirichlet分佈中的超參數取值
αij=k=1riαijk\alpha_{ij*} = \sum_{k=1}^{r_i}\alpha_{ijk}
mijkm_{ijk}:變量XiX_i取第k個值同時pa(Xi)pa(X_i)取第j個值的樣本數目
pa(Xi)pa(X_i):???

所有的超參數值αijk=1\alpha_{ijk}=1時,BD評分退化爲K2評分。

BDeu(Bayesian Dirichlet eu)評分

BD公式中的超參數 αijk=αP(Xi=k,pa(Xi)=jG)\alpha_{ijk}=\alpha P(X_i=k,pa(X_i)=j | G)時候,P(.G)P(.|G)表示網絡G的先驗分佈,α\alpha 表示先驗樣本等價量。
P(Xi=k,pa(Xi)=jG=1riqiP(X_i=k,pa(X_i)=j | G = \frac{1}{r_iq_i},即結構先驗信息服從均勻分佈。

可知如下BDeu評分:
FBDeu(GD)=logP(G)+i=1nj=1qi{logΓ(αqi)Γ(mij+αqi)}+k=1rilogΓ(mijk+αriqi)Γ(αriqi)F_{BDeu}(G|D)=\log P(G) + \sum_{i=1}^n\sum_{j=1}^{q_i}\{\log\frac{\Gamma(\frac{\alpha}{q_i})}{\Gamma(m_{ij*}+\frac{\alpha}{q_i})}\}+\sum_{k=1}^{r_i} \log \frac{\Gamma(m_{ijk}+\frac{\alpha}{r_iq_i})}{\Gamma(\frac{\alpha}{r_iq_i})}


基於信息理論的評分

基於信息理論的評分函數主要是利用編碼理論和信息論中的最小描述長度(Minimum Description Length, MDL)原理來實現的.其基本思想源自對數據的存儲。

假設D是一組給定的實例數據,如果要對其進行保存,爲了節省存儲空間,一般採用某種模型對其進行編碼壓縮,然後再保存壓縮後的數據;另外,爲了在需要的時候可以完全恢復這些實例數據,要求對所使用的模型進行保存;
因此,需要保存的數據長度=壓縮後的數據長度+模型的描述長度,該長度稱爲總的描述長度。

MDL原理就是要求選擇總描述長度最小的模型。按照MDL原理,BN結構學習就是要找到使得網絡的描述長度和樣本的編碼長度之和最小的圖模型。

這意味着MDL評分準則趨向於尋找一個結構較簡單的網絡,實現網絡精度複雜度之間的均衡。一般利用參數個數作爲網絡結構複雜度的懲罰函數:
2-1:
C(G)=12logmi=1n(ri1)qiC(G) = \frac{1}{2}\log m\sum^n_{i=1}(r_i-1)q_i

m:數據集D中的樣本總量;
i=1n(ri1)qi\sum^n_{i=1}(r_i-1)q_i:網絡中包含的參數總量

採用海明碼表示壓縮後的數據長度,就是關於數據D和模型的對數似然:
2-2:
LLD(G)=j=1nj=1qik=1rimijklog(mijkmij)LL_D(G)=\sum^n_{j=1}\sum^{q_i}_{j=1}\sum^{r_i}_{k=1}m_{ijk}\log(\frac{m_{ijk}}{m_{ij*}})

MDL評分函數

則由2-1、2-2可知,得到相應的MDL評分函數
2-3
FMDL(GD)=LLD(G)C(G)F_{MDL}(G|D)=LL_D(G)-C(G)
2-4
FMDL(GD)=i=1nj=1qik=1rimijklog(mijkmij)12logmi=1n(ri1)qiF_{MDL}(G|D)=\sum^n_{i=1}\sum^{q_i}_{j=1}\sum^{r_i}_{k=1}m_{ijk}\log(\frac{m_{ijk}}{m_{ij*}})- \frac{1}{2}\log m\sum^n_{i=1}(r_i-1)q_i

m:數據集D中的樣本總量;
i=1n(ri1)qi\sum^n_{i=1}(r_i-1)q_i:網絡中包含的參數總量

AIC評分函數

MDL評分函數不依賴於先驗概率;對給定的充分大的獨立樣本而言,具有最大MDL分值的網絡可以任意接近於抽樣分佈;當實例數據D服從多項分佈時,MDL評分函數等於BIC評分函數.因此對公式(2-4)做進一步的簡化,得到AIC評分函數:

2-5
FAIC(GD)=i=1nj=1qik=1rimijklog(mijkmij)i=1n(ri1)qiF_{AIC}(G|D)=\sum^n_{i=1}\sum^{q_i}_{j=1}\sum^{r_i}_{k=1}m_{ijk}\log(\frac{m_{ijk}}{m_{ij*}})- \sum^n_{i=1}(r_i-1)q_i

MIT評分函數

MDL評分函數中,對網絡的懲罰項用整個網絡包含的參數以及樣本數據量來表示,Campos結合貝葉斯網絡的可分解性,用網絡的局部結構複雜度作爲懲罰項,提出一種基於互信息卡方分佈MIT ( Mutual Information Tests) 評分函數.
2-6
FMIT(GD)=i=1,Pa(Xi)!=n(2mMID(Xi,Pa(Xi))maxσij=1Siχα,liσi(j))F_{MIT}(G|D)=\sum^n_{i=1,Pa(X-i)!=\empty}(2mMI_D(X_i,Pa(X_i))-\max_{\sigma_i }\sum^{S_i}_{j=1}\chi_{\alpha,l_{i\sigma_i(j)}})

MID(Xi,Pa(Xi))MI_D(X_i,Pa(X_i))XiX_i與其父變量之間互信息
SiS_iXiX_i父節點的個數
χα,liσi(j)\chi_{\alpha,l_{i\sigma_i(j)}}:表示置信度爲α\alpha,自由度爲liσi(j)l_{i\sigma_i(j)}的卡方分佈值。



搜索方法

求出每個變量評分函數最大的父變量集

  • K2算法
  • 爬山算法
  • GES算法
  • 基於進化計算的方法

K2算法

K2算法使用貪心搜索去獲取最大值。首先假設隨機變量是有順序的,如果Xi在Xj之前,那麼不能存在從Xj到Xi的邊。同時假設每個變量最多的父變量個數爲u。每次挑選使評分函數最大的父變量放入集合,當無法使評分函數增大時,停止循環,具體算法如下,其中Pred(Xi)表示順序在Xi之前的變量。

  • 貪婪搜索
  • CH評分衡量結構優劣性
  • 利用結點序 ρ\rho 以及正整數 μ\mu 來限制搜索空間的大小

結點序 ρ\rho怎麼確定?

在這裏插入圖片描述

爬山(hillclimbing)算法

爬山算法是一種簡單的貪心搜索算法,該算法每次從當前解的臨近解空間中選擇一個最優解作爲當前解,直到達到一個局部最優解。爬山算法實現很簡單,其主要缺點是會陷入局部最優解,而不一定能搜索到全局最優解。假設C點爲當前解,爬山算法搜索到A點這個局部最優解就會停止搜索,因爲在A點無論向那個方向小幅度移動都不能得到更優的解。

  • 局部操作(加邊,減邊,刪邊),評分高低作爲是否選擇該操作的標準。
  • 通過貪婪選擇來判斷是否對模型結構進行更新。
# 爬山法僞代碼
Procedure HillClimbing():
    old = getInitial() # get initial feasible solution x
    while(the stopping condition is not reached):
    	for 加邊,減邊,刪邊 操作後的 newG: 
        new= localSearch(N(x)); # select the optimal solution from the neighborhood of x as x'
        if(old <= new)
            old = new
        else
            return old
  end

在這裏插入圖片描述
爬山法




基於約束|依賴統計

待填充

參考

貝葉斯網絡結構學習(知乎)
2013 貝葉斯網絡結構學習與推理研究 朱明敏
2015 貝葉斯網絡結構學習綜述 李碩豪
2017 貝葉斯網絡結構學習與應用研究 曹傑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章