貝葉斯網絡理論之結構學習

1.結構學習的定義

即尋找對數據擬合最好的貝葉斯網絡結構。

例如:獨立拋擲兩枚硬幣 X 與 Y,共20次。觀察到:3次正面/正面,6次正面/反面,5次反面/正面,6次反面/反面。用貝葉斯公式計算,可得到:
                       P ( X = 正面 ) = 0.45;
                       P ( Y = 正面 | X = 正面 ) = 1/3;
                       P ( Y = 正面 | X = 反面 ) = 5/11


由 Y 的條件概率可以計算得到它的邊緣概率爲
                   P ( Y = 正面 ) =  P ( Y = 正面 | X = 正面 )    
                                               + P ( Y = 正面 | X = 反面 ) 
                                           =  1/3 + 5/11 = 26/33  (約等於0.79)
而如果按照 Y 是獨立變量來計算的話,
                   P ( Y = 正面 ) =  8/20 = 0.4


爲了擬合20次實驗的數據,算法會在 X 和 Y 之間添加一個邊,使得學習得到的貝葉斯網結構中 X 和 Y  存在依賴關係。但是,硬幣拋擲是獨立事件,X 和 Y 之間不應該相關。因此,學習目標爲包含儘量少的邊,又能較好擬合數據的結構模型。

2.三種無驗知識的結構學習方法

a) 基於約束的結構學習。

通過對數據中的條件依賴或獨立關係進行檢驗,找到解釋最好的網絡結構,具有規則簡單、易於實現且學習效果相對較好,其時間複雜度不會隨着網絡結構中節點數目的增加而上升。通過條件獨立檢驗來確定邊的存在與否,從而確定貝葉斯網路的框架。然後根據獨立檢驗中產生的分割集確定邊的方向,從而得到貝葉斯網絡結構模型。 


基於約束的學習方法之一就是通過卡方統計量做假設檢驗,通過樣本落入的區域來確定是否拒絕獨立性假設,若樣本統計量掉落在拒絕域內,則拒絕獨立性,否則不拒絕。實施步驟如下:

1.建立假設;
2.構造的卡方統計值,給出拒絕域;
3.選擇顯著性水平;
4.計算統計量,並通過比較確定是否接受原假設。 
通常,顯著性水平 α 的值域一般取作[0.0001,0.05],其意義是衡量了拒絕原假設的正確性爲 1 - α。

下圖是一個利用卡方檢驗分析事件A:生男生女和事件B:白天晚上之間是否存在關係的例子。



b) 基於得分的結構學習。

基於得分的方法把結構學習問題作爲一個優化問題來解決。定義貝葉斯網的統計得分,然後藉助啓發式搜索技術找到最高分的結構。

定義一個得分函數,根據訓練數據對每個候選結構打分,然後搜索得到一個得分高的結構。常用的得分函數有:貝葉斯得分、CH評分標準、BIC評分標準、MDL評分標準、AIC評分標準、HVL評分標準和CVL評分標準等。

常用的搜索算法是啓發式局部搜索算法,這種方法從給定的初始網絡結構 ( 可以是空網絡結構、隨機指定的網絡結構、先驗網絡結構等 ) 開始,通過增加、刪除和轉向操作使得局部最大化,再逐漸擴展到整個網絡。
- K2算法:通過逐漸加邊尋找評分高的模型;
- 爬山法:利用搜索算子逐步對模型做局部修改;
- 結構EM算法:當數據有缺失值時對結構和參數同時優化。

K2算法爲簡化模型評分的計算,K2假設所有參數先驗分佈都是均勻分佈。

爬山法:首先,從無邊模型出發,利用搜索算子 ( 加邊、減邊、轉邊 ) 對當前模型進行局部修改 ( 不能形成有向圈 ) ,得到一系列候選模型;接着,計算每個候選模型的評分,將其中分數最高的模型的評分與修改前的模型比較,選擇評分高的作爲當前模型。


c) 貝葉斯模型平均方法。

構建一個可能結構的集合,然後求取它們的平均。

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