前言:
這次實驗完成的是圖模型的精確推理。exact inference分為2種,求邊緣概率和求MAP,分別對應sum-product和max-sum算法。這次實驗涉及到的知識點很多,不僅需要熟悉圖模型的representation,而且還需明白圖模型的inference理論,大家可參考coursera課程:Probabilistic Graphical Models 的課件和視頻。多花點功夫去理解每行代碼,無形之中會收獲不少。新年第一篇博客,繼續加油!
算法流程:
Sum-product求條件概率過程為(inference I):
(a): 輸入factor list F、觀察到的變量E
(b): 由F中的factor得到graph所對應的skeleton C.
(c): 依次進行變量消除,首先在圖C中采用min-neighbors方法找到需要消除的變量。然后進行消除(其實就是factor的求和積分),消除過程中會用掉一些factor,同時也會生成一個新的factor(注意對新的factor補全各節點之間的邊)。每消除一個變量就會得到一個clique,同時更新該clique與前面已得clique之間的edge情況。步驟c一直進行直到所有的變量都被消除掉。結束后得到一棵clique tree.
(d): 由於上面的tree中有冗余的clique(即某個clique可能是其相鄰clique的子集)。這時需將這2個clique合並,該過程也稱為樹的剪枝:首先去點冗余的clique節點,然后將其sepset節點與該冗余節點其它所有鄰節點都連接上邊。
(e): 前面步驟得到的是clique tree skeleton,還需要對每個clique算出其factor表格,由於clique中對應的子factor信息已掌握,所以直接factor相乘即可(注意觀察變量E).該步驟完成后就真正得到了一棵clique tree了。
(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書籍第3、4、5、6、9、10、13章
coursera課程:Probabilistic Graphical Models
網友demonstrate 的 blog:PGM 讀書筆記節選(一)到(十)