在之前的一段時(shí)間里,忙于周圍的亂七八糟的事情,在更新了上一期之后自己也很久沒(méi)有更新,自己也想,如果自己沒(méi)有用一種良好的心態(tài)去回憶總結(jié)自己所學(xué)的知識(shí),即使花費(fèi)再多的時(shí)間也都只是徒勞無(wú)功的,而這一段時(shí)間以來(lái),我讀了一些關(guān)于概率圖的知識(shí)去為接下來(lái)的自然語(yǔ)言處理知識(shí)做了一個(gè)鋪墊,希望用這一篇文章來(lái)記錄下自己的學(xué)習(xí)成果,而自己在這里的參考資料是之前的博客推薦的書(shū),另外加上一些博客去加以理解,一些自己不足之處請(qǐng)大家多多指教.
1:什么是概率圖模型?
大家在高中的時(shí)候一定已經(jīng)學(xué)過(guò)概率,而我們?cè)诖髮W(xué)的時(shí)候也初步學(xué)習(xí)了<概率論與數(shù)理統(tǒng)計(jì)>這一門課程,而我們學(xué)習(xí)概率的主要目的是因?yàn)槲覀兩a(chǎn)實(shí)踐中不確定的事情實(shí)在是太多了,而這樣的不確定的事情里邊其實(shí)往往隱藏著確定的知識(shí),信息,而我們的概率就是這樣應(yīng)運(yùn)而生的,而人們的需求總是多種多樣的,滿滿的演化成各種各樣的模型,比如模型識(shí)別,貝葉斯系列等等.而概率圖模型其實(shí)就是來(lái)解決這一系列問(wèn)題的工具之一,這是應(yīng)用了概率和圖這兩種數(shù)學(xué)工具來(lái)建立的模型.
2:引入概率圖模型有什么好處?
一般的問(wèn)題我們都可以用概率模型去很好的解決,那么為什么又要在概率的基礎(chǔ)上加一個(gè)圖呢?在這里我們引入圖結(jié)構(gòu)其實(shí)是因?yàn)閳D結(jié)構(gòu)可以將概率模型的結(jié)構(gòu)可視化,應(yīng)用圖這是一種直觀,簡(jiǎn)單的方式,可以簡(jiǎn)單的描述隨機(jī)變量之間的獨(dú)立性的性質(zhì),最重要的是可以將一份復(fù)雜的概率模型轉(zhuǎn)化為一些簡(jiǎn)單的模型的組合,這有點(diǎn)類似于我們的面向?qū)ο蟮乃枷?在機(jī)器學(xué)習(xí)中,圖模型很廣泛的應(yīng)用和分析各種學(xué)習(xí)算法,其實(shí)說(shuō)明白,機(jī)器學(xué)習(xí)模型都可以看做是概率模型,把學(xué)習(xí)任務(wù)歸結(jié)于計(jì)算輸入和輸出的條件概率分布,當(dāng)我們引入圖工具之后,這樣就可以從一個(gè)新的角度來(lái)解釋機(jī)器學(xué)習(xí)模型了,并且相對(duì)來(lái)說(shuō)還比較簡(jiǎn)單.
當(dāng)然,我們也可以從另一個(gè)角度考慮其合理性。我們的目的是從獲取到的量中得到我們要的信息,模型是相互之間約束關(guān)系的表示,而數(shù)據(jù)的處理過(guò)程中運(yùn)用到了概率理論。而圖恰恰將這兩者之間聯(lián)系起來(lái)了,起到了一個(gè)很好的表示作用。
3:圖的結(jié)構(gòu)
大家學(xué)過(guò)離散數(shù)學(xué)都知道,一個(gè)圖是由節(jié)點(diǎn)和節(jié)點(diǎn)之間的邊組成的,在概率圖模型里,每一個(gè)節(jié)點(diǎn)其實(shí)都可以表示為一個(gè)或者一組隨機(jī)變量,而這些邊可以看成是這些隨機(jī)變量之間的概率依存關(guān)系,在離散數(shù)學(xué)里我們學(xué)過(guò)有向圖和無(wú)向圖,而那些圖和我們的圖其實(shí)是一樣的,只不過(guò)我們把這個(gè)有向的圖模型叫做貝葉斯網(wǎng)絡(luò),而貝葉斯的有向無(wú)環(huán)圖來(lái)表示因果關(guān)系,而無(wú)向圖模型稱為馬爾科夫隨機(jī)場(chǎng),無(wú)向圖表示變量間的相互作用,這些結(jié)構(gòu)的區(qū)別導(dǎo)致了他們?cè)诮:屯茢喾矫嬗辛艘恍┪⒚畹牟顒e,這些我們將接下來(lái)一一介紹.
有向圖如下:(左圖貝葉斯模型,右圖馬爾科夫模型)

4:概率的一些計(jì)算
涉及到概率計(jì)算,如果我們理解深了就會(huì)發(fā)現(xiàn),只要可以熟練的掌握基本的計(jì)算,大體上類型相似:

在這里我們簡(jiǎn)單的回顧下:第一個(gè)式子告訴我們當(dāng)我們知道多個(gè)變量概率分布時(shí)如何計(jì)算單個(gè)變量的概率分布,而下邊的式子告訴我們兩個(gè)變量之間的概率關(guān)系,比如X和Y獨(dú)立,就有下式的關(guān)系:

還有一個(gè)是著名的貝葉斯公式:

5:有向圖模型(貝葉斯網(wǎng)絡(luò))
先給出貝葉斯網(wǎng)絡(luò)額定義:
貝葉斯網(wǎng)絡(luò): 對(duì)于K隨機(jī)變量{X1,X2,··· ,XK}和 一個(gè)有向非循環(huán)圖 G,G 中的每個(gè)節(jié)點(diǎn)都對(duì)應(yīng)一個(gè)隨機(jī)變量,可以 是觀察變量,隱變量或是未知參數(shù)等;G中的每個(gè)連接eij 表示兩 個(gè)隨機(jī)變量 Xi 和 Xj 之間具有非獨(dú)立的因果關(guān)系。我們定義 Xπk 表示變量 Xk 的所有父節(jié)點(diǎn)變量集合,每個(gè)隨機(jī)變量的局部條件 概率(local conditional probability distribution)為 P (Xk |Xπk )。
如果X = X1,X2,··· ,XK 的聯(lián)合概率分布可以分解為每個(gè)隨機(jī)變量 Xk 的局部條件概率的連乘形式,即

那么 (G, X ) 構(gòu)成了一個(gè)貝葉斯網(wǎng)絡(luò)。
那說(shuō)點(diǎn)人話:
現(xiàn)在我們假設(shè)一個(gè)有向圖G(V,E),其中節(jié)點(diǎn)集合V=(X1,X2,......XK),表示K個(gè)隨機(jī)變量,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)隨機(jī)變量XK,邊集合E中的每個(gè)連接表示兩個(gè)變量之間的因果關(guān)系.,現(xiàn)在我們用xi表示變量Xi的一個(gè)取值,K個(gè)變量的聯(lián)合概率就可以分布為K個(gè)條件概率的乘積.用公式表達(dá)就是下邊的式子:

既然我們說(shuō)圖,如何用圖來(lái)表示上邊式子的關(guān)系呢?我們得到的是最后的關(guān)系,式子里反應(yīng)了變量之間的聯(lián)系,當(dāng)我們觀察條件概率時(shí),我們必須要指明那個(gè)是條件,如果我們采用的變量是節(jié)點(diǎn),采用無(wú)向圖這樣的節(jié)點(diǎn)等價(jià)關(guān)系肯定是不能描述條件概率的,因?yàn)閷?duì)于一個(gè)節(jié)點(diǎn)說(shuō)雙向都可以,所以我們這里采用的是有向圖,如果我們要描述p(x2|x1)就可以化成下圖:

舉一反三:我們?nèi)绻枋錾线叺氖阶?就可以轉(zhuǎn)化為:

這里我們要注意,第一個(gè)節(jié)點(diǎn)是沒(méi)有指向的,因?yàn)闊o(wú)條件.
在這里我們還應(yīng)該注意一點(diǎn),在貝葉斯網(wǎng)絡(luò)中,如果兩個(gè)節(jié)點(diǎn)是直接相連的,他們肯定是非條件獨(dú)立的,而是直接因果關(guān)系,其父節(jié)點(diǎn)是”因”,子節(jié)點(diǎn)是”果”.
如果兩個(gè)節(jié)點(diǎn)不是直接連接的,而是之間有經(jīng)過(guò)其他節(jié)點(diǎn)的路徑間接連接的,這時(shí)候情況比較復(fù)雜,這里我們舉個(gè)例子:
給定三個(gè)節(jié)點(diǎn)x1, x2, x3,x1 和x3 是不直接連接的,可以通過(guò)節(jié)點(diǎn)x2 連接。這三個(gè)節(jié)點(diǎn)之間可以有四種連接關(guān)系:
間接因果關(guān)系: 在已知 x2 時(shí),x1 和 x3 為條件獨(dú)立;
間接果因關(guān)系:在已知 x2 時(shí),x1 和 x3 為條件獨(dú)立;
共因關(guān)系: x1和x3是不獨(dú)立的,在已知x2時(shí),x1和x3條件獨(dú)立;
共果關(guān)系: x1和x3是獨(dú)立的,在已知x2時(shí),x1和x3不獨(dú)立

由 x1 到 x3 并經(jīng)過(guò) x2 的四種路徑類型。
在圖1圖2 中,在已知 x2 時(shí),x1 和 x3 為條件獨(dú)立;
在圖3 中,x1 和 x3 是不獨(dú)立的,在已知 x2 時(shí),x1 和 x3 條件 獨(dú)立;
在圖4中,x1 和 x3 是獨(dú)立的,在已知 x2 時(shí),x1 和 x3 不獨(dú)立。
6:無(wú)向圖模型(馬爾科夫隨機(jī)場(chǎng))
構(gòu)造有向圖的模型需要變量之間是顯式的,很強(qiáng)的約束關(guān)系,即首先要滿足之前的條件概率分布關(guān)系,其次還有計(jì)算要簡(jiǎn)便,這時(shí)候可能就跟我們的真實(shí)情況有區(qū)別了.很多時(shí)候我們知道兩個(gè)變量之間一定是相關(guān)的,但我們不知道到底是怎么相關(guān)的。這時(shí)候我們也可以用其相關(guān)性來(lái)構(gòu)造概率圖模型。相關(guān)是不分方向的,此時(shí)我們應(yīng)該選擇無(wú)向圖來(lái)表示。
這時(shí)候我們引入馬爾科夫隨機(jī)場(chǎng):
馬爾可夫隨機(jī)場(chǎng),也叫無(wú)向圖模型,或馬爾可夫網(wǎng)絡(luò)(Markov network),是一類用無(wú)向圖來(lái)表示一組具有馬爾可夫性質(zhì)的隨機(jī) 變量 X 的聯(lián)合概率分布模型。
和貝葉斯網(wǎng)絡(luò)類似,馬爾可夫隨機(jī)場(chǎng)也圖結(jié)構(gòu)來(lái)隨機(jī)變量之間的依賴關(guān)系。 但是,貝葉斯網(wǎng)絡(luò)是有向非循環(huán)圖,而馬爾可夫隨機(jī)場(chǎng)是一個(gè)無(wú)向圖,并且可以存在循環(huán)。這樣,馬爾可夫隨機(jī)場(chǎng)可以表示貝葉斯網(wǎng)絡(luò)無(wú)法表示的一些依賴關(guān)系,如循環(huán)依賴;但它不能表示貝葉斯網(wǎng)絡(luò)能夠表示的某些關(guān)系,如推導(dǎo)關(guān)系。
現(xiàn)在給出定義:
給定個(gè)有K個(gè)節(jié)點(diǎn)的無(wú)向圖G(V,E),其中V = {v1,v2,··· ,vK}表示節(jié)點(diǎn)集合。每個(gè)節(jié)點(diǎn) vk 表示一個(gè)隨機(jī)變量 Xk 。如果 (G, X ) 滿足局部馬爾可夫性質(zhì), 即一個(gè)變量 Xk 在給定它的鄰居的情況下獨(dú)立于其它所有變量,那么 (G, X ) 就構(gòu)成了一個(gè)馬爾可夫隨機(jī)場(chǎng)。
而局部馬爾科夫就可以表示為:

現(xiàn)在我們來(lái)引入一個(gè)實(shí)際例子:

如上圖所示A中節(jié)點(diǎn)到B集合中節(jié)點(diǎn)的每一條路都通過(guò)了C中節(jié)點(diǎn),
這代表著:

無(wú)向圖模型很完美的將這種弱的關(guān)系表現(xiàn)出來(lái)了,有一種很神奇的感覺(jué),而這后邊計(jì)算牽扯到把概率分開(kāi),然后把圖中的節(jié)點(diǎn)分成很多個(gè)小的集合,其中集合內(nèi)的點(diǎn)兩兩有邊相連,然后這里牽扯到了玻爾茲曼分布,這其中就太復(fù)雜了,我也沒(méi)搞明白,這里先把玻爾茲曼的表達(dá)式給出來(lái),希望有興趣的小伙伴可以自己研究下

7:概率圖的一些應(yīng)用:
1:隱馬爾科夫模型(HMM)
HMM隱馬爾克夫模型這個(gè)是一種有向圖模型,這個(gè)跟前邊的馬爾科夫無(wú)向圖過(guò)程很相似:

2:RBM:限制玻爾茲曼機(jī):
之前在文章里有過(guò)介紹,跟上邊的玻爾茲曼分布有關(guān)系,因?yàn)樘珡?fù)雜,就不介紹了

3:圖像處理
從觀測(cè)到的有噪聲的圖片中恢復(fù)出原始圖片,做出的假設(shè)是觀察到的圖片像素點(diǎn)和原始圖片相關(guān),同時(shí)原始圖片相鄰像素點(diǎn)之間相關(guān)。

8:圖模型與神經(jīng)網(wǎng)絡(luò)的關(guān)系
圖模型和神經(jīng)網(wǎng)絡(luò)有著類似的網(wǎng)絡(luò)結(jié)構(gòu),但兩者也有很大的不同。圖模型 的節(jié)點(diǎn)是隨機(jī)變量,其圖結(jié)構(gòu)的主要功能是用來(lái)描述變量之間的依賴關(guān)系,一 般是稀疏連接。使用圖模型的好處是可以有效進(jìn)行統(tǒng)計(jì)推斷。而神經(jīng)網(wǎng)絡(luò)中的 節(jié)點(diǎn)是神經(jīng)元,是一個(gè)計(jì)算節(jié)點(diǎn)。如果將神經(jīng)網(wǎng)絡(luò)中每個(gè)神經(jīng)元看做是一個(gè)二 值隨機(jī)變量,那神經(jīng)網(wǎng)絡(luò)就變成一個(gè) sigmoid 信念網(wǎng)絡(luò)。
圖模型中的每個(gè)變量一般有著明確的解釋,變量之間依賴關(guān)系一般是人工來(lái)定義。而神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元?jiǎng)t沒(méi)有直觀的解釋。
圖模型一般是生成模型,可以用生成樣本,也可以通過(guò)貝葉斯公式用來(lái)做 分類。而神經(jīng)網(wǎng)絡(luò)是判別模型,直接用來(lái)分類。
圖模型的參數(shù)學(xué)習(xí)的目標(biāo)函數(shù)為似然函數(shù)或條件似然函數(shù),若包含隱變量 則通常通過(guò) EM 算法來(lái)求解。而神經(jīng)網(wǎng)絡(luò)參數(shù)學(xué)習(xí)的目標(biāo)為交叉熵或平方誤差等損失函數(shù)。
9:參考資料:
1:《PATTERN RECOGNITION and MACHINE LEARNING》
2:《Probabilistic Graphical Models:Principles and Techniques》
3:邱錫鵬:<神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)>
4:概率圖綜述:MIT林達(dá)華博士