机器学习理论与实战(十五)概率图模型03
03 圖模型推理算法
?
? ? ? ? ?這節(jié)了解一下概率圖模型的推理算法(Inference algorithm),也就是如何求邊緣概率(marginalization probability)。推理算法分兩大類,第一類是準確推理(Exact Inference),第二類就是近似推理(Approximate Inference)。準確推理就是通過把分解的式子中的不相干的變量積分掉(離散的就是求和);由于有向圖和無向圖都是靠積分不相干變量來完成推理的,準確推理算法不區(qū)分有向圖和無向圖,這點也可以在準確推理算法:和積算法(sum-product)里體現(xiàn)出來,值得一提的是有向圖必須是無環(huán)的,不然和積算法不好使用。如果有向圖包含了環(huán),那就要使用近似推理算法來求解,近似推理算法包含處理帶環(huán)的和積算法(”loopy” sum-product)和樸素均值場算法(naive mean field),下面就來了解下這兩種推理算法的工作原理。
? ? ? ? ? 假如給一個無向圖,他包含數(shù)據(jù)節(jié)點X和標簽Y,它可以分解成(公式一)的形式:
?
(公式一)
? ? ? ?有些人一開始覺得(公式一)很奇怪,貌似和上一節(jié)的無向圖分解有點不一樣,其實是一樣的,稍微有點不同的是把不同的團塊區(qū)分對待了,這里有兩種團塊,比如(公式一)右邊第一項是歸一化常量配分函數(shù),第二項可能是先驗概率,而第二項就可能是給定標簽時樣本的概率。這里用可能這個措辭,表示這些勢函數(shù)只是一個抽象的函數(shù),他可以根據(jù)你的應用來變化,它就是對兩種不同團塊的度量。如果X的取值狀態(tài)只有兩個,那么配分函數(shù)可以寫成(公式二)的形式:
?
(公式二)
? ? ? ? 配分函數(shù)就是把所有變量都積分掉得到的最終的度量值,如果要求邊緣概率就要通過積分掉其他變量得到的度量值除以配分函數(shù),例如我們要求(圖一)中的x1的邊緣概率P(x1):
?
(圖一)
? ? ? ?要求取P(x1),我們就要積分掉x2-x6這五個變量,寫成數(shù)學的形式如(公式三)所示:
?
(公式三)
? ? ? ?如果你對代數(shù)分配率很熟悉,外面的加法符號大sigma可以分開寫成(公式四)的樣子:
?
(公式四)
? ? ? ? 其實(公式四)就是和積算法的雛形,因為可以很明顯的看出又有和又有積。有些同學可能要問積分掉變量的順序為什么是那樣?其實這個沒有準則的,先積分掉哪個變量,積分的順序也會導致運算量大小不一樣,求取最優(yōu)的積分變量順序是NP-hard的,下面用圖示演示下積分消除變量發(fā)生的事情。
(01)
(02)
(03)
(04)
(05)
?
(圖二)
? ? ? (圖二)中注意觀察下每次積分掉一個變量后,原來的團塊就因為少了一個變量變成了一個新的團塊,新的團塊使得圖被三角剖分了,尤其在倒數(shù)第二個圖更明顯,消除變量x4后形成新的團塊(x2,x3),使得x2,x3之間建立了一條連接(藍線所示),這個三角化添加的邊在圖論里被成為弦(chord),全部完成三角化的圖也稱端正圖(moral graph)。而邊緣概率計算量的復雜度取決于剩下的變量形成的團塊大小,如(圖二)中紅色的部分,變量消除的順序也會影響新團塊的大小,尋找一個最優(yōu)的變量消除順序十分必要,但是尋找最優(yōu)的變量消除順序是NP-hard的,眼看著問題就沒法解決了,但如果圖模型是樹呢?樹這種圖模型具有良好的性質(zhì),他的計算量不大,下面先叉開下話題去看下樹結(jié)構(gòu)的圖模型的邊緣概率求解方法:
? ? ? 假設(shè)樹結(jié)構(gòu)的圖模型如(圖三)所示:
?
(圖三)
? ? ? ?和(公式一)類似,這個樹結(jié)構(gòu)的圖模型的分布可以分解成(公式一)的形式,因為樹可簡單的分解成節(jié)點和邊,那么它分解的形式如(公式五)所示:
?
(公式五)
? ? ? ?把上面所述的和積算法寫成一個通用的形式公式,如(公式六)所示:
?
(公式六)
? ? ? ? 這里注意下大sigma下標中的豎線表示排除Xs這個變量,積分掉其他變量,最終得到Xs的邊緣概率。現(xiàn)在問題來了,在(圖三)中,如果要求變量Xs的邊緣概率就要積分掉Xs周圍的其他四個變量(Xt,Xw,Xu,Xv),這是由(公式五)中的團塊決定的(有邊相連),而要積分掉這周圍的四個變量就要繼續(xù)積分掉這四個變量周圍除Xs以外的其他相鄰變量,這是個遞歸過程。而動態(tài)規(guī)劃其實也是遞歸,所以本質(zhì)上和積算法(sum-product)是個非連續(xù)的動態(tài)規(guī)劃算法。下面用數(shù)學語言更進一步的梳理下這個遞歸算法流程,先做幾個定義:
? ? ? ? 對于任意的屬于V的節(jié)點變量s,它的臨域可以定義成(公式七)的樣子:
?
(公式七)
? ? ? ?用 表示和要計算邊緣概率節(jié)點變量相連的子樹,如變量s,但是子樹不能越過變量s,如(圖三)中的Tt,Tw,Tu,Tv都是子樹,每個子樹上的變量用 表示,那么每個子樹又可以做團塊分解,如(公式八)所示:
?
(公式八)
? ? ? ? 有了這些定義,我們就可以再重新梳理下剛才的遞歸過程,要計算變量Xs的邊緣概率,就要計算其臨域上的邊緣概率,然后再臨域的臨域上的邊緣概率,其實就是子樹上的邊緣概率,最終會遞歸到整個樹的葉子節(jié)點上,葉子節(jié)點計算完成后傳到父親節(jié)點,以后依次向上傳,最終傳遞到變量Xs上,這個過程其實叫消息傳遞(Message-Passing),有時也叫置信傳播(BeliefPropagation),有了消息的概念,那(公式八)就可以變成(公式九)的樣子:
?
(公式九)
? ? ? ?(公式九)中k表示歸一化常量,Mts表示從變量Xt傳向Xs的消息,其實就是從子樹上傳遞過來的,然后P表示子樹的子樹上傳遞過來的消息,引入消息的好處就是容易描述這個遞歸過程,另外也容易擴展到其他帶環(huán)的圖上,因為動態(tài)規(guī)劃是遞歸的,遞歸用消息傳播來表示,那么帶環(huán)的圖用消息傳遞的方法求解,我們就說其實用了動態(tài)規(guī)劃算法,這個話題就不扯遠了。
? ? ? ? 另外有了消息傳播機制,上述的計算邊緣概率的方法還可以擴展一下,使得可以同時計算所有節(jié)點的邊緣概率,這就使得計算速度大大提高。我們可以讓每個節(jié)點都同時沿著邊向其臨域傳送消息,消息如(公式十)所示:
?
(公式十)
? ? ? ?這樣其實是傳播了2倍于邊數(shù)的消息,然后開始迭代,第二輪迭代時用第一輪傳播來過來的子樹上的消息更新當前消息,然后依次迭代下去,迭代n次后,消息值收斂,這樣每個變量周圍的消息都已確定,就不需要遞歸了,套用下(公式九)就可以計算邊緣概率了。計算最大邊緣概率(max-marginal)也是類似的方法,只不過是在收斂收選取最大的邊緣概率而已,雖然簡單,但是應用范圍很廣,因為很多時候都是在尋找個極值,比如立體匹配就是這個原理。
? ? ? ?說完了樹結(jié)構(gòu)圖模型的和積算法,就要回來說一般圖的和積算法了,通過上面可以看到樹結(jié)構(gòu)的圖模型具有容易計算的優(yōu)點,那對于一般圖模型如果能轉(zhuǎn)成樹也可以套用上面所述方法,我們可以把節(jié)點分組以團塊的形式放在樹的節(jié)點上,但是要注意連續(xù)性,因為一般圖中的節(jié)點邊可以很復雜,比如有環(huán)的圖,那么一個節(jié)點變量就可以屬于多個團塊。因此團塊樹也要保持原有圖的這種特性,不然求解不正確,因此團塊樹的定義就要來了,如(圖四)所示:
?
(圖四)
? ? ? ?這段話不好翻譯,也沒見過中文對應的術(shù)語,因此只能直接貼圖了,滿足這種定義的團塊樹又稱聯(lián)合樹,聯(lián)合樹其實就是說滿足團塊之間的連續(xù)性,每個相臨團塊之間都有公共變量,又成分割變量(separator-S),如(圖五)的C圖中的矩形所示:
?
(圖五)
? ? ? ?在(圖五)中a圖是有環(huán)的一般圖模型,要想把a圖轉(zhuǎn)成聯(lián)合樹圖,必須把其三角化,也就是說每三個變量圍成一個環(huán),多于3個的必須添加弦邊,這其實是回應了上面最初的和積算法,Lauritzen在參考文獻[3]中也對這種處理方法給出了證明,有興趣的可以翻閱下。
? ? ? ?對于一般圖轉(zhuǎn)聯(lián)合樹的步驟來個總結(jié),如(圖六)所示:
?
(圖六)
? ? ? ?聯(lián)合樹建立后,就可以把樹結(jié)構(gòu)的消息傳遞算法推廣到聯(lián)合樹上,樹的節(jié)點由原來的單一變量變成了團塊,那如何傳遞消息?其實也簡單,每次傳消息時積分掉和非公共變量的變量,然后用公共變量的消息傳遞就行了,如(圖七)所示:
?
(圖七)
? ? ? (圖七)中上半部分表示消息的內(nèi)容,套用樹結(jié)構(gòu)消息傳遞方式,迭代收斂就行了,不過能否收斂還是一個值得深究的問題,今天就不展開了,理解聯(lián)合樹算法的核心就是理解消息到底是什么,看的很暈的就帶著這個問題再看一遍咯^.^,另外逼近推理的變分方法需要用到極家族函數(shù)和凸分析來做統(tǒng)一框架,因此下節(jié)開始學習極家族函數(shù)。
參考文獻:
?
? ? [1] Graphical models, exponential families, and variational inference. Martin Wain wright and Michael Jordan
? ? [2] Probabilistic Graphical Models. Daphne Koller
? ? [3] ?Graphical Models.S. L. Lauritzen
轉(zhuǎn)載請注明來源:http://blog.csdn.net/marvin521/article/details/10858655
總結(jié)
以上是生活随笔為你收集整理的机器学习理论与实战(十五)概率图模型03的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奇形怪状的近义词
- 下一篇: 屈其理而服其志也翻译