機器學習&數據挖掘筆記_20(PGM練習四:圖模型的精確推理)

 

  前言:html

  此次實驗完成的是圖模型的精確推理。exact inference分爲2種,求邊緣機率和求MAP,分別對應sum-product和max-sum算法。此次實驗涉及到的知識點不少,不只須要熟悉圖模型的representation,並且還需明白圖模型的inference理論,你們可參考coursera課程:Probabilistic Graphical Models 的課件和視頻。多花點功夫去理解每行代碼,無形之中會收穫很多。新年第一篇博客,繼續加油!node

 

  算法流程:算法

  Sum-product求條件機率過程爲(inference I):網絡

  (a): 輸入factor list F、觀察到的變量E數據結構

  (b): 由F中的factor獲得graph所對應的skeleton C.dom

  (c): 依次進行變量消除,首先在圖C中採用min-neighbors方法找到須要消除的變量。而後進行消除(其實就是factor的求和積分),消除過程當中會用掉一些factor,同時也會生成一個新的factor(注意對新的factor補全各節點之間的邊)。每消除一個變量就會獲得一個clique,同時更新該clique與前面已得clique之間的edge狀況。步驟c一直進行直到全部的變量都被消除掉。結束後獲得一棵clique tree.異步

  (d): 因爲上面的tree中有冗餘的clique(即某個clique多是其相鄰clique的子集)。這時需將這2個clique合併,該過程也稱爲樹的剪枝:首先去點冗餘的clique節點,而後將其sepset節點與該冗餘節點其它全部鄰節點都鏈接上邊。ide

  (e): 前面步驟獲得的是clique tree skeleton,還須要對每一個clique算出其factor表格,因爲clique中對應的子factor信息已掌握,因此直接factor相乘便可(注意觀察變量E).該步驟完成後就真正獲得了一棵clique tree了。wordpress

  (f): 接着對上面的clique tree進行message passing. 首先選出一個message通道,即找到那些clique i,和其鏈接的cliques中,只剩下一個clique j沒有與之傳遞消息了,那麼(I-->j即爲通道)。不過這仍是得按照某種節點順序進行。函數

  (g): 計算clique i發射到clique j的message,採用的方法是求和積分掉非公共元素。

  (h): 當clique tree中全部的message都傳遞完成後,clique tree就變成calibrate了,而calibrate具備不少良好的性質,首先能夠得到calibrate時每一個clique的belief.

  (i): 若是要求某個變量的邊緣機率,則找到包含該變量的一個clique(隨便哪一個都行),在該clique上,對其belief求和積分掉其它全部變量,而後歸一化便可。

 

  Max-sum求機率最大時的assignment過程爲(inference II):

  (a)~(e): 和sum-product過程同樣。

  (f): 將factorlist中的val都取log值。由於須要將max-product轉換成對應的max-sum問題。

  (g): 和sum-product同樣,對clique tree進行message passing. 首先選出一個message通道(I→j).

  (h): 計算(I→j)之間的message. 採用的方法是max掉非公共元素。

  (i): 當clique tree中全部的message都傳遞完成後,clique tree就變成calibrate了,採用factorsum計算每一個clique的belief.

  (j): 若是要求某個變量的max-marginal,則找到包含該變量的一個clique(隨便哪一個都行),在該clique上,max掉其belief 上其它全部變量,此時不須要歸一化。

  (k): 經過步驟j,能夠獲得每一個變量的max-marginal factor,找到須要assigment中元素對應的factor,取出其val中最大機率值對應的var,組合在一塊兒爲最終的結果。

 

  Belief propagation流程以下:

  

 

  matlab知識:

  C = unique(A):

  若是A是向量,則C表示去掉了A中重複的元素(只保留1個)。

  C = union(A,B):

  若是A和B是向量,則C爲A和B的並集,且去掉了重複的元素(只保留1個)。

  在matlab中,true只表示數字1,其它非1的數都不能表示,而false只表示0.因此其它整數既等於false也不等於true.

 

  實驗code中一些函數簡單說明:

  P = ComputeInitialPotentials(C):

  練習1所需完成的內容。該函數的做用是計算clique tree P的初始勢能。其中C是P的骨架部分(骨架的意思是有clique節點,可是沒有clique對應的factor,而這個函數的主要功能就是給每一個clique都弄一個factor表),C結構體包括節點nodes(每一個node都是一個clique),邊之間的關係edges, 以及factor集合factorList. 返回的P結構包含2部分,clique tree節點之間邊的edges, 以及clique集合cliqueList, 該集合的每一個clique形式和factor是同樣的,其計算方法是:計算factorList中屬於同一個clique的factor的乘積,並將新factor中的assignment按照var按升序一一整理。

  [i, j] = GetNextCliques(P, messages):

  練習2所需完成的內容。該函數返回一個矩陣的下標索引i和j,意思是選擇從clique i到clique j的消息用於下一次傳遞。選擇這個消息的依據是:與clique i鏈接的全部cliques中,只剩下一個clique j沒有與之傳遞消息了,則(I,j)就是下一次所需傳遞的。

  P = CliqueTreeCalibrate(P, isMax):

  實驗3和實驗6的內容。其中P是clique tree,isMax若是爲1,則置信傳播時採用max-sum,,不然採用sum-product. 該函數的做用是對tree進行calibrate.

  [newF C E] = EliminateVar(F, C, E, Z):

  F爲factorList, C爲clique tree的骨架,E爲factorList中factor edge的鏈接關係。該函數做用是對F進行變量消除,消除的變量爲Z。newF爲變量消除後獲得的factorList. 返回的C中多了一個edge項和factorInds項,該edge表示兩個clique之間的鏈接狀況,而factorInds表示產生新的factor後還剩多少個factor(這個參數只在本函數內部使用,用來計算edge矩陣的,對外沒做用)。大概的實現思想爲:將含有需消除變量的factor相乘獲得一個新的factor,並對這個factor進行Z邊緣化(積分掉Z)後獲得更新的factor。最新的factor和剩餘暫時沒有進行變量消除的factor放在一塊兒,構成newF.

  C = PruneTree(C):

  C依舊爲clique tree skeleton. 該函數是對C進行剪枝,依次掃描C的node i,若是某個node是它鄰居node k的子集,則將i與k之間的邊去掉,且將k與i的其它全部鄰居node相鏈接。該處理的目的是爲了維持RIP特性,得到更緊湊的clique tree.

  F = ObserveEvidence(F, E):

  F爲一個factor的容器。E爲一個2列的矩陣,每1行表明1對觀察值,其中第1個元素爲變量名稱v,第2個元素爲該變量對應的值,假設爲x。做用是在F的每一個factor中,只保留變量v等於x時對應assignment的值,而變量v等於其它值的assignment值都清0。但不改變每一個factor表格的大小,只是有不少0值的行而已。

  P = CreateCliqueTree(F, Evidence):

  F爲factorList,P爲clique tree, Evidence爲觀察到的變量。該函數是用F來構造P。其大概過程爲:用F構造骨架C,對C使用EliminateVar()進行變量消除,獲得冗餘的clique tree,接着調用pruneTree()對clique tree剪枝,去掉冗餘的cliuqe。最用調用ObserveEvidence()進行factor reduce, 同時函數ComputeInitialPotentials()得到clique對應的table.

  B = FactorMarginalization(A, V):

  A,B爲factor,V爲變量的集合。該函數的做用是在factor A上求和積分掉V中的元素,獲得新的factor B. B的尺寸固然變小了。

  M = ComputeExactMarginalsBP(F, E, isMax):

  實驗4和實驗7的內容。F爲factorList,E爲Evidence. 先調用CreateCliqueTree()建立clique tree, 而後調用CliqueTreeCalibrate()對樹進行校訂。當isMax爲0時,調用FactorMarginalization()計算邊緣機率,不然用FactorMaxMarginalization()來計算。

  B = FactorMaxMarginalization(A, V):

  實驗5的內容。邊緣化factor表,不過這時不是對V變量求和,而是求其中的最大值。和

函數FactorMarginalization()基本同樣,需將sum改爲max. 同時須要考慮當factor中val值爲負數的狀況,若是全部這些值都爲負數,則max後應該也爲負數,而咱們初始化時一開始B.val爲0,要當心(加一個if語句判斷便可)。

  A = MaxDecoding( M ):

  實驗8的內容。找到M中每一個元素的val向量值最大的那個所對應的var,並將該var賦給對應的A. 這就是max-decoding過程。

 

  相關的理論知識點:

  主要參考Daphne Koller的PGM教材courera教程,還有網友的PGM筆記

  factor的其它名字:affinity(密切關係), compatibility(兼容性),soft constraints. factor與聯合機率沒有直接關係,還需考慮其它的factor.

  一個圖G是一個分佈P的I-map是指圖G所誘導出的獨立性斷言是P獨立性斷言的子集。

  若是圖G是分佈P的I-map,則分佈P能夠按照圖G來分解。反之,若是分佈P可以按照圖G來分解,則圖G是分佈P的I-map(以上在BNs網絡內成立).

  BN中complete graph是指不能再往圖中多加邊了,不然會構成環。由於complete graph中沒有任何獨立性斷言,因此全部的complete graph是任意分佈P的I-map.

  BN的skeleton: 是一個無向圖,包含BN的全部頂點,把每條有向邊都對應一條無向邊。

  I-equivalent: 若是2個圖具備相同的獨立性斷言,則這兩個圖是I-equivalent. 其一個充分條件爲:若是兩個圖含有相同的 skeleton 且對應的 v-structure(common effect)也相同,則他們是 I-equivalent 的。

  若是 v-structure 中沒有兩個 prior 之間的邊,咱們就稱這個 v-structure 時 immorality,不然這條邊稱爲 covering edge. 兩個圖是I-equivalent關於v-structure的條件更鬆一點,只須要其中 immoral 部分的v-structure便可. 另外一種表述:若是兩個圖是 I-equivalent,當且僅當存在一個 graph 序列,每兩個相鄰的graph僅僅是將 covering edge 轉向.

  positive distribution: P爲正分佈是指:只要事件A不爲空,則P(A)>0. 正分佈具備intersection特性(獨立性中的交叉律)。

  minimal I-map:給定一個獨立性斷言集合,圖  是 minimal I-map 當且僅當G是該獨立性斷言集合的I-map,且G中去掉任意一條邊都會致使其不是I-map. minimal I-map比較容易得到, 且不惟一。不一樣的節點構造順序可造出不一樣的minimal I-map。由此可知,單單由P的I-map不足以保證該graph提取出P中全部的獨立性結構。

  perfect I-map: 圖G的獨立性斷言和分佈P的獨立性斷言相等,也叫P-map. perfect I-map比較難得到。雖然P-map能夠徹底capture分佈P的結構,但並非全部的分佈P都有其對應的P-map,好比具備與四邊形MRF相同獨立性的P,或者具備與XOR網絡獨立性相同的P都是沒有對應P-map的。

  對正機率情形,GRF、global Markovian、local Markovian 和 pairwise Markovian 是等價的.

  BN的參數是CPDs,而MRF的參數是factors. MRF中的聯合機率是由全部的factor決定的。

  clique:就是最大徹底子圖。一個圖中可能會有多個最大徹底子圖,它們彼此之間的頂點個數有可能不相等(由於最大徹底子圖表示不能再往裏面加入節點了)。而這些clique中節點個數最多的那個叫作largest clique.

  Clique potential:若是將MRF分解成的最大徹底子圖(MRF中的徹底子圖是指子圖中任意2個節點之間都有連線,注意與BN中徹底子圖的概念區分開,BN徹底子圖是指不能往子圖中加任何邊,不然會構成環),則每一個徹底子圖構成的factor都叫作clique potential.

  Pairwise Markov Network: 網絡中全部的factor只有2個變量。帶有n個節點的fully connected pairwise markov network,若是每一個節點的取值有d個,則該圖中共有O(n*n*d*d)個參數(先用組合的方法求出edge的個數,而後每一個edge都有d*d個參數)。而若是要描述圖中全部的分佈,則須要更多參數(O(n^d)),所以pairwise markov network並不能描述全部的分佈。

  GRF(Gibbs random fields):比pairwise markov network更廣,由於它的每一個factor可有多於2個的變量,且每一個factor中全部的變量之間都有連線。

  CRF和GRF的不一樣處在於劃分函數,在GRF中,劃分函數的值是同樣的,在CRF中,劃分函數值和輸入的X有關,不一樣的X對應的值不一樣。logistic regression是一個簡單的CRF,只需在CRF中將factor定義成指數形式。

  分佈P可以按照圖H分解是指,存在一個factor集合,且由該集合中全部factor的乘積歸一化後獲得的機率和P相等。由這些factor集得到的圖爲H,H也叫是induced graph. 可是咱們不能反過來從圖H中來獲得這些factor集,由於這樣會獲得多個答案。

  若是P可以按照H分解,則H中的separation對應於P中的條件獨立。對正分佈P而言,若是H是P的一個I-map,則P可以按照H來分解。

  graph越sparse,則參數越少,含有的獨立性信息越多。

  Reduced Markov Network: 去點一些節點以及與這些節點相連的邊後獲得的網絡。

  在MRF中,若是圖H是分佈P(positive)的I-map,則P是Gibbs分佈,且P能按照H進行分解。

  Soundness: 可靠性,由語法蘊含推導出語義蘊含。用來證實一個東西是錯的。

  Completeness,完備性,由語義蘊含推導出語法蘊含。用來證實一個東西是對的。

  Markov blanket:一個節點的Markov blanket指的是該節點的父節點,孩子節點以及孩子節點的另外父節點。

  I(H):MRF中的全局獨立性,沒有active trial.

  Il(H):MRF中local獨立性,給定Markov blanket.

  Ip(H):MRF中的pairwise獨立性, 非相鄰,給定其它節點。

  其中Il(H)蘊含了Ip(H), 而I(H)蘊含了Ip(H).

  對正分佈的P而言,上面3種獨立性是等價的。

  當P是正分佈時,能夠從P得到惟一的minimal I-map H. 當P爲非正分佈時,構造出來的H不能保證是I-map.由於此時的Il(H)和Ip(H)都不能蘊含I(L).

  MRF的參數表達有3種形式:a product over potentials on cliques; a product of factors; a product of feature weight. 其表達形式依次更細緻。應用場合不一樣,weight模型主要用於求解參數,factor模型主要用於推理。

  貝葉斯網絡在觀察到一條邊後是Gibbs分佈。

  Moral Graph:一貝葉斯網絡G中Moral Graph是個無向圖,記爲M(G), 它是將v結構的2個父節點之間加入一條邊,且將全部的有向邊變成無向邊。M(G)是G的minniial  I-map.

  moral:一個貝葉斯網絡是moral的,當且僅當其全部的v結構中兩個父節點之間都有連線。若是一個圖G是moral的,則M(G)是圖G的一個perfect map.這樣的圖G若是轉換成markov network的話是不會丟失獨立性信息的。遺憾的是,實際狀況中,屬於moral的圖不多。moral graph能夠用來證實d-seperation的合理性。

  若是貝葉斯網絡G是MRF H的minimal I-map, 則G是moral graph(和書中說的沒有immoralities是一個意思)。

  chordal:圖中全部的loop邊長不大於3。將BN轉換成MRF的過程叫作triangularization.

  Chordal graph:在MRF中,沒有邊長超過3的環。也就是全部環的長度都是3.

  BNs和MNs之間的相互轉換會致使一些獨立性的丟失。好比說從BN轉到MN時,v-structure的獨立性會消失。

  Log-linear model: 在該模型中,P能夠由指數表示。指數型通常爲多個係數與特徵的乘積,所以是線性的(取對數後也是線性的,所以叫log-linear模型),每一個特徵都有scope,不一樣特徵能夠共用一個scope.

  很容易知道,每個factor table均可以轉換成log-linear model,只需將特徵取爲合適的指示函數,且前面的係數和factor table中的值成log關係便可。

  若是一個距離函數知足自反性和對稱性,則稱爲semi metric,若是還知足三角不等式性質,則稱爲metric. Metric MRF中的特徵爲,相鏈接的2個節點(每一個節點都在同一個向量空間內取值)具備類似的值,因此它的特徵是一個距離函數。越類似,距離越小,則獲得的機率越大。通常的距離函數能夠取二者的絕對值(或者限制絕對值)。在segmentation領域,Metric MRF利用的特徵爲:相鄰的超像素趨向於相同的類別。在denoising領域其使用的特徵爲:相鄰像素趨向相同的像素值。

  Ising model和Matric MRF同樣,也是一個feature-based model。Ising model來自統計物理,是一個pairwise Markov network. 其特徵取兩個相鄰節點的乘積(在磁場中,判斷兩個方向是否一致)。而且其指數項還有一個溫度係數T,用來控制懲罰的強度。

  Tabular CPD的侷限性是表格大小隨着變量個數呈指數增加。爲了減小參數,CPD形式通常採用函數的形式來表示。這樣的模型主要有deterministic CPD, tree-structured CPD, logistic CPD&generalizations, nosiy and/or, linear gaussians&generalizations.

  Tree-structured CPD可以減少參數時由於在tree中隱含了不少獨立性的信息,好比說給定一個節點,則目標的條件機率與該節點的兄弟節點所在樹分支無關(即獨立),所以對應的tabular CPD中就能夠減小不少項。tree-structured CPD通常與context-specific 獨立性有關。

  Multiplexer CPD: 有一個開關,不一樣開關值對應不一樣的結構,於是有不一樣的獨立性信息。這和電路中的多路選擇器是同樣的。

  noisy on/and/max等都相似,即多個父節點之間取on/and/max等關係。這種表示方法固然能夠減少參數個數。

  sigmoid和linear gaussian是輸出連續機率值的模型。

  interface variable:指那些在t時刻可以直接影響本身在t+1時刻的變量。

  Inter-time-slice edge:不一樣時刻間變量之間的邊。

  Intra-time-slice edge:同一時刻裏變量之間的邊。

  Dynamic bayesian network(DBN):是一個時序模型,對應一個初始分佈和2-TBN過程。它有2個假設:markov 假設和時序不變性假設。2-TBN對應的是條件機率(注意不是聯合機率),且該條件機率是按照圖的結構來分解的。

  Ground network: unrolled network.展開的網絡。

  Linear dynamical system(LCS):也叫kalman filter,它是一個DBN,且知足全部的變量都是連續的,變量之間的獨立性知足linear gaussian.

  常見例子中,時序模型中的template variables/attribute(一類變量)能夠是time, person, pixel, student, course等。

  markov假設是個很強的假設,通常不會成立,爲了使其更好的近似成立,能夠加入當前時刻的一些其它信息。另外semi-markov也可以更好的近似。

  在plate model中,每個box(方框)都叫作plate. plate裏面的node都是須要index的。plate能夠嵌套,能夠重疊。

  在模型的表述中,要考慮template-based vs specific; directed vs undirected; generative vs discriminative. 或者它們的混合。在模型的結構上,須要考慮causal vs non-causal.

  Generative model適用於數據缺失或標籤比較難得到的領域,且它可以產生數據。discriminative model適用於標籤多或者高維變量的領域,它不須要擬合聯合分佈。

  在MN中,factor的個數通常等於變量的個數,而在MRF中factor的個數通常大於變量的個數。

  計算P(X=x)或者驗證P(X=x)>0都是NP-hard的,不過這是在worst case狀況下,在general case狀況下仍是能夠計算的。

  圖模型中通常有兩種類型的inference。第一種是求解部分聯合機率(包括邊緣機率)或者條件機率,通常採用的方法是sum-product。其中sum對應將無關變量求和消  掉的過程(variable elimination),product對應多個factor的乘積。若是是在求條件機率時,則這些factor應該爲reduced factor;另外還能夠採用belief propagation或者變分法. 第二種推理過程爲MAP(最大後驗),即求給定evidence時,其它變量(除去evidence後的全部變量)出現的最大機率對應的組合(此時求得不是最大機率,而是變量的configuration)。所以MAP獲得的結果可能不惟一。求解該推理能夠採用max-product,其中的max是根據定義求機率最大時的變量組合,prodcut依舊是factor(reduced factor)的乘積,這個過程也會能夠採用variable elimination. 相似的,還能夠用max-product belief propagation,或者integer programming, 或者combinatorial search.若是是一些特殊的網絡則可用graph-cut. 注意這裏的MAP不等於Max over marginals(對應每一個變量單獨取最大值的組合)。

  變量消除法在BN和MRF中均可以使用。

  變量消除算法的複雜度和2個因素成線性關係:一個是關於model自己的factor個數和變量個數;另外一個是中間產生的factor表格的大小(最大那個table的行數,這個行數與表格的scope成指數關係,因此是影響算法複雜度的關鍵)。由變量消除複雜度分析可知,不一樣的變量消除順序的計算複雜度是不一樣的。

  moralization: 將BN轉換成MN時的過程,將有向邊變成無向,還須要在對應的v-struction中加入邊,這個過程也叫作moralization.

  在對應的graph上進行變量消除時,可能會加入fill edge,由於獲得的新factor可能變量之間沒有邊,此時須要手動加入邊,這條邊就叫作fill edge.

  Induced graph: 是一個無向圖,由變量消除獲得的。induced graph與factors以及變量消除的順序有關,不一樣的變量消除順序可能引入不一樣的fill edge.

  變量消除過程當中產生的每個factor都是induced graph裏的一個clique.反過來也成立。

  induced width: 指的是largest clique中節點個數減1.

  minimal induced width:全部變量消除順序中獲得的induced width.

  變量消除過程能夠看作是對無向圖的變形過程。

  在圖H中找到一個變量消除順序使得induced width長度小於K是一個NP難問題。因此通常採用啓發式搜索,啓發式的cost function能夠爲:min-neighbors;min-weight;min-fill;weighted min-fill.其中min-fill最經常使用。

  Cluster graph: 是一個無向圖,圖中每個節點(該節點也叫cluster)都是整個scope的一個子集,cluster graph具備family-preversing特性,即每一個factor的scope都是cluster中某個節點的子集。兩個cluster之間的邊爲兩節點scope交集的子集。

  Cluster tree: 變量消除的過程就會獲得一個cluster graph. 其實,更準確的說,這個消除過程獲得的是一棵樹,由於消除過程是有方向的,最後箭頭指向的終止節點爲咱們須要計算的值,這個節點也稱爲root(注意和數據結構中的root稍微不一樣,這裏箭頭指向root,而數據結構中是由root指向其它節點),從其它節點流向root的過程也叫作up-stream. 這棵樹叫作cluster tree,是有方向的。

  Running intersection property(RIP): 只要cluster tree T中某一個變量同時屬於2個節點,則該變量存在於這兩個節點鏈接的path上每(且是惟一的一條path,不然這個變量會構成環來傳播)一個節點裏。此時稱該cluster tree具備RIP特性。

  Clique tree: 若是cluster tree知足RIP特性,則該cluster tree也叫作clique tree,原先節點cluster也叫作clique. Clique tree和cluster tree的不一樣之處在於,edge上的變量再也不是相鄰cluster scope交集的子集,而只能是交集。另外一種等價表示是對任意一個變量x,由clusters和sepsets構成的path可以構成一棵樹(既不能斷開,也不能有環).能夠用變量消除獲得clique tree,也可反過來用clique tree進行變量消除。

  belief:clique tree中當前clique的勢與其全部鄰節點傳過來的message乘積之和。

  calibrated: 當兩個相鄰的clique對本身的belief消除非公共變量後獲得的message相等時,則稱它們是calibrated.

  Calibrated clique tree: 知足clique tree中全部相鄰的clique都是calibrated的。

  Calibrated belief:知足calibrated公式時的那個值。

  若是BP算法過程收斂(收斂意味着當前時刻發射的message和下一時刻發射的message相等),則能夠推斷出cluster tree是calibrated的。

  除了能夠用VE(表示變量消除)進行inference外,還能夠用message passing.

  在cluster graph中,BP(belief propagation)算法可能不收斂,且計算結果是近似的,經過它計算出的邊緣機率也叫pseudo-marginals.雖然這樣,不過在實際應用中仍是頗有用的。但在clique tree上進行BP獲得的邊緣機率是正確的。

  Bethe cluster graph:由factor構成cluster,且每一個變量也單獨構成cluster,這個single cluster與前面的cluster節點元素有交集時須要添加一條邊。bethe cluster graph同時須要知足RIP性質。

  Sepset belief:指2個cluster之間edge上兩個方向發射出來的message的乘積。

  reparameterization: 由於每兩個cluster之間的message在cluster belief和sepset belief中都出現了一遍,因此若是將全部cluster belief的乘積當作分子,全部sepset belief之間的乘積當作分母,則二者之間的比值等於各個cluster初始勢能的乘積(unnormalization),這個性質叫作reparameterization. 這意味着進行message passing過程時沒有信息丟失。

  在clique tree中由RIP特性能夠推斷出clique tree是correctness的(指的是VE過程和message passing過程獲得的結果一致)。

  在clique tree上進行message passing時,若是message傳遞的順序是正確的(必須從葉子節點開始傳遞),則僅僅須要傳遞2(k-1)次message, k爲tree中的edge數。

  Answer question:計算後驗機率,給定evidence Z狀況下計算後驗值X的機率(這也叫作incremental inference).分爲2種狀況,一種是X和Z在同一個cluster中,此時直接reduced cluster便可。另外一種狀況是X和Z在不一樣的cluster中,則須要從新用message passing來計算與Z相關的那些cluster.

  Cluster tree知足RIP特性,當且僅當某邊兩側單獨出現的變量在這條邊變量下相互獨立。也就是說cluster tree中蘊含了條件獨立性。

  經過VE能夠獲得correct clique tree.

  BP算法的收斂性具備局部性,且不能保證收斂,即便收斂也不能保證結果正確。所以一般會採用一些小技巧,好比說選合適的VE順序,採用異步message passing方式,採用TRP(Tree reparameterization)或RBP(Residual belief propagation)方式傳遞,或者用damping技術。

  通常可將max-product問題取對數後變成max-sum問題,固然也能夠加入負號後變成energy minimization問題。

  在max-sum中引入2個新的操做,factor sum和factor maximization.很容易從字面意思理解其操做。這2個操做分佈對應message passing過程當中的belief計算和message計算。

  使用max-sum算法對chain進行變量消除時,最後獲得的結果稱爲max-marginal. 在clique tree中,每一個clique的belief和max-marginal是同樣的。

  Max-sum中clique tree的calibration特性是:2個belief中對應變量的max結果同樣。

  和sum-product相似,若是clique i收到了除clique j之外的其它相鄰clique節點的message,則從I passing到j的message不會再變化了。由此可知,來自葉節點的message將再也不變化。在max-sum中採用單一的up-down message傳播時最終也會收斂(calibration)。

  即便MAP assignment答案不惟一,也能夠從calibration clique tree中decoding出一個MAP assignment來。

  有些MAP問題不可解,有些可解。若是對應的樹的width越小,則該問題越可能有解。

  一些match問題能夠轉換成MAP問題,而某些MAP問題能夠轉換爲graph cut.

  Cardinality Factors,Sparse Pattern Factors,Convexity Factors經常使用於一些MAP問題的求解。

 

  參考資料:

       Daphne Koller,Probabilistic Graphical Models Principles and Techniques書籍第三、四、五、六、九、十、13章

       coursera課程:Probabilistic Graphical Models 

       網友demonstrate 的 blog:PGM 讀書筆記節選(一)到(十)

相關文章
相關標籤/搜索