1. 程式人生 > >聯合概率與聯合分佈、條件概率與條件分佈、邊緣概率與邊緣分佈、貝葉斯定理、生成模型(Generative Model)和判別模型(Discriminative Model)的區別

聯合概率與聯合分佈、條件概率與條件分佈、邊緣概率與邊緣分佈、貝葉斯定理、生成模型(Generative Model)和判別模型(Discriminative Model)的區別

在看生成模型和判別模型之前,我們必須先了解聯合概率與聯合分佈、條件概率與條件分佈、邊緣概率與邊緣分佈、貝葉斯定理的概念。

聯合概率與聯合概率分佈:

假設有隨機變數X與Y, 此時,P(X=a,Y=b)用於表示X=a且Y=b的概率。這類包含多個條件且所有條件同時成立的概率稱為聯合概率。聯合概率並不是其中某個條件的成立概率, 而是所有條件同時成立的概率。聯合概率的一覽表稱為聯合分佈。

邊緣概率與邊緣概率分佈:

與聯合概率對應的,P(X=a)或P(Y=b)這類僅與單個隨機變數有關的概率稱為邊緣概率。邊緣概率的一覽表稱為邊緣分佈。

聯合概率與邊緣概率的關係:

求和符號表示“窮舉Y可取的值b後,由所有與這些值對應的(...)相加得到的和”。

類似地,表示“窮舉X可取的值a後,由所有與這些值對應的(...)相加得到的和”。

舉例:

按照上圖的聯合概率分佈表:

邊緣概率Pr(X=x1)=4/32+2/32+2/32+8/32=16/32。

邊緣概率Pr(Y=y1)=4/32+2/32+1/32+1/32=8/32。

條件概率與條件概率分佈:

在條件Y=b成立的情況下,X=a的概率,記作P(X=a|Y=b)或P(a|b)。條件概率的分佈簡稱條件分佈,即已知兩個相關的隨機變數X和Y,隨機變數Y在條件{X=x}下的條件概率分佈是指當已知X的取值為某個特定值x之時,Y的概率分佈。

聯合概率、邊緣概率、條件概率之間的關係:

“XY的聯合概率”=“X基於Y的條件概率”乘以“Y的邊際概率” 。

離散型分佈的情況下:

 

Pr(X=x, Y=y)為“XY的聯合概率”; 

Pr(X=x)為“X的邊際概率”; 

Pr(X=x | Y=y)為“X基於Y的條件概率”; 

Pr(Y=y)為“Y的邊際概率”。

上式可簡寫成Pr(X=x, Y=y) = Pr(X=x | Y=y) * Pr(Y=y) 。這就是離散型分佈下聯合概率、邊際概率、條件概率之間的轉換計算公式

連續型分佈的情況下:

只需要將“累加”換成“積分”,就是連續型分佈下聯合概率、邊際概率、條件概率之間的轉換計算公式

舉例:

如下圖所示.我們將在16張撲克牌中隨機抽取一張,並用X表示這張牌的顏色(紅色或黑色),用Y表示它的型別(數字牌或人頭牌)。試求X與Y的聯合分佈及X的邊緣分佈。

我們只需統計在各種條件下, 這16張牌中有幾張符合條件即可得到答案。

X與Y的聯合分佈如下表所示。

X的邊緣分佈則如下所示。

P(X =紅色) = P(X =紅色,Y=數字牌) +P(X =紅色,Y=人頭牌) = 3/16 + 6/16 = 9/16
P(X =黑色) = P(X =黑色,Y=數字牌) +P(X =黑色,Y=人頭牌) = 6/16 + 1/16 = 7/16

我們可以像上面這樣通過聯合分佈計算邊緣分佈。然而, 如果只知道邊緣分佈, 我們無法藉此求得相應的聯合分佈。如下所示, 在很多情況下, 即使邊緣分佈相同, 聯合分佈也可能不同

如:

條件概率:

仍然只考慮上面的例子,"X=紅色"的世界中有三分之一的"Y=數字牌",三分之二的"Y=人頭牌"。那麼我們可得:

上面兩式分別表示:

在條件X=紅色成立時,Y=數宇牌的條件概率是1/3;

在條件X=紅色成立時,Y=人頭牌的條件概率是2/3。

這兩個式子統稱為:在條件X=紅色下Y的條件分佈。

注意:

”在條件X=紅色下Y的條件分佈” 也是一種"Y的概率分佈” ,因此“窮舉Y可取的值後,所有與這些值對應的概率之和為1"。

同理你也可以寫出X=黑色下Y的條件分佈。

還是上面的例子,我們再看下面這張圖:

圖中,紅色的面積為9/16,其中三分之二是人頭牌,因此“紅色的人頭牌” 的面積(即概率)如下:

(2/3)*(9/16)=6/16

該式的左側表示P(Y=人頭牌|X=紅色)*P(X=紅色),右側表示P(X=紅色,Y=人頭牌)。

還記得聯合概率、邊際概率、條件概率之間的轉換計算公式嗎?就是下面這個:

“XY的聯合概率”=“X基於Y的條件概率”乘以“Y的邊際概率” 。

我們可以看到上面的例子“紅色的人頭牌” 的面積(即概率)如下:(2/3)*(9/16)=6/16 就是用這個計算公式算出的。

貝葉斯定理:

貝葉斯定理用來描述兩個條件概率之間的關係。貝葉斯公式提出的依據是當分析樣本大到接近總體數時,樣本中事件發生的概率將接近於總體中事件發生的概率

貝葉斯公式解決的是一些原因X無法直接觀測、測量,而我們希望通過其結果Y來反推出原因X的問題,也就是知道一部分先驗概率,來求後驗概率的問題。

記P(A)、P(B)分別表示事件A和事件B發生的概率,則:

P(A|B):表示事件B發生的情況下,事件A發生的概率

P(AB):表示事件A和事件B同時發生的概率

乘法法則(其實就是條件概率公式的變形):

P(A∩B) = P(A)*P(B|A)=P(B)*P(A|B)

可推匯出貝葉斯公式

P(A|B) = P(B|A)*P(A) / P(B)或也可變形為P(B|A) = P(A|B)*P(B) / P(A)

先驗概率:

事件發生前的預判概率。可以是基於歷史資料的統計,可以由背景常識得出,也可以是人的主觀觀點給出。一般都是單獨事件概率,如P(x),P(y)。

後驗概率:

事件發生後求的反向條件概率;或者說,基於先驗概率求得的反向條件概率。概率形式與條件概率相同。

條件概率:

一個事件發生後另一個事件發生的概率。一般的形式為P(x|y)表示y發生的條件下x發生的概率。

對於貝葉斯公式:P(y|x) = ( P(x|y) * P(y) ) /P(x),有

P(y|x)是後驗概率,一般是我們求解的目標。

P(x|y)是條件概率,又叫似然概率,一般是通過歷史資料統計得到(即通過一個已知的小樣本統計得到)。

P(y) 是先驗概率,一般都是人主觀給出的。貝葉斯中的先驗概率一般特指它。

P(x)其實也是先驗概率,只是在貝葉斯的很多應用中不重要(因為只要最大後驗不求絕對值),需要時往往用全概率公式計算得到。

舉例:

假設y是文章種類,是一個列舉值;x是向量,表示文章中各個單詞的出現次數。

在擁有訓練集的情況下,顯然除了後驗概率P(y|x)中的x來自一篇新文章時無法得到,p(x),p(y),p(x|y)都是可以在抽樣集合上統計出的。

對於上面的例子,如果採用最大似然理論:

則認為使P(x|y)達到最大值的類別y,就是新文章所屬的類別。即Max P(x|y) = Max p(x1|y)*p(x2|y)*...p(xn|y), for all y。

對於上面的例子,如果採用貝葉斯理論:

認為需要增加先驗概率p(y),因為有可能某個y是很少出現的類別,即使P(x|y)很高,也很可能不是它。

因此y = Max P(x|y) * P(y),其中p(y)一般是資料集裡統計出來的。

生成模型(Generative Model):

又叫產生式模型。估計的是聯合概率分佈(joint probability distribution),p(class, context)=p(class|context)*p(context)。即由資料學習聯合概率密度分佈P(X,Y),然後求出條件概率分佈P(Y|X)作為預測的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X)。

基本思想是利用盡可能多(理想情況下是無窮多)樣本,首先學習建立樣本的聯合概率概率密度模型P(X,Y),然後再得到後驗概率P(Y|X)模型(需要先計算P(X)以得到後驗概率),再利用後驗概率模型作為預測模型進行分類。生成方法關心的是給定輸入x產生輸出y的生成關係。這種方法一般建立在統計學和Bayes理論的基礎之上。

在機器學習中,生成模型或用於直接對資料建模(用概率密度函式對觀察到的樣本資料建模),或作為生成條件概率密度函式的中間步驟。

生成模型的特點:

一般主要是對後驗概率建模,從統計的角度表示資料的分佈情況,能夠反映同類資料本身的相似度。只關注自己的inclass本身,不關心到底 decision boundary在哪裡;

生成模型還原出聯合概率分佈,而判別方法不能;

生成模型的學習收斂速度更快、即當樣本容量增加的時候,學到的模型可以更快地收斂於真實模型;

當存在隱變數時,仍然可以用生成模型學習,此時判別模型不能用。

生成模型的優點:

實際上帶的資訊要比判別模型豐富;

研究單類問題比判別模型靈活性強;

模型可以通過增量學習得到;

能用於資料不完整(missing data)情況。

生成模型的缺點:

學習和計算過程比較複雜。

主要應用:

典型的生成模型有:樸素貝葉斯法、馬爾科夫模型、高斯混合模型、probabilistic context free grammars(概率上下文無關文法)、RBM(受限波茲曼機)、Averaged one-dependence estimators(平均一依賴估計量)、Latent Dirichlet allocation(潛在狄利克雷分佈)。

判別模型(Discriminative Model):

又可以稱為條件模型或條件概率模型。估計的是條件概率分佈(conditional distribution),p(class|context)。即給定觀測變數x和目標變數y的條件模型,資料直接學習決策函式y=f(X)或者條件概率分佈P(y|x)作為預測的模型。

判別方法關心的是對於給定的輸入X,應該預測什麼樣的輸出Y。利用正負例和分類標籤,主要關心判別模型的邊緣分佈。其目標函式直接對應於分類準確率判別模型多數放在分類)。判別模型尋找不同類別之間的最優分類面,反映的是異類資料之間的差異。

判別模型的優點:

分類邊界更靈活,比使用純概率方法或生產模型得到的更高階;

能清晰的分辨出多類或某一類與其他類之間的差異特徵;

在聚類、視角變化、部分遮擋、尺度改變等方面效果較好;

適用於較多類別的識別;

判別模型的效能比生成模型要簡單,比較容易學習。

判別模型的缺點:

不能反映訓練資料本身的特性,即能力有限,可以告訴你的是1還是2,但沒有辦法把整個場景描述出來

缺少生成模型的優點,即先驗結構的不確定性

黑盒操作,即變數間的關係不清楚,不可視

主要應用:

典型的判別模型包括:線性迴歸、神經網路、k近鄰法、感知機、決策樹、邏輯斯蒂迴歸模型、最大熵模型、SVM(支援向量機)、boosting方法和條件隨機場等。

生成模型和判別模型的區別和關係:

兩者之間的關係:

生成模型可以得到判別模型,但由判別模型得不到生成模型

兩者之間的區別:

生成模型是學得各個類別各自的特徵(即可看成學得多個模型),可用這些特徵資料和要進行分類的資料進行比較,看新資料和學得的模型中哪個最相近,進而確定新資料屬於哪一類。判別模型是學得一個分類面(即學得一個模型),該分類面可用來區分不同的資料分別屬於哪一類;

生成模型是建立在所有變數上面的聯合概率模型,而判別模型只是定義在目標變數上的條件概率模型。因此判別模型相對比生成模型有侷限性,生成模型還可以作為預測任何一個變數的模型;

判別模型不需要建立觀測變數的概率模型,一般情況下它不能預測複雜的觀測和預測值關係。另外,判別模型本質上是有監督的,想要變成無監督會比較困難;

如果觀測資料是符合聯合概率分佈,那麼是用Maximize Likelihood求得模型引數是常見的方法。如果建立的概率模型只是所有變數的一個子集,那麼直接使用條件概率模型可能會更有效。當然具體模型選擇會由相應應用決定。

舉例:

要確定一隻羊是山羊還是綿羊,用判別模型的方法是先從歷史資料中學習到模型,然後通過提取這隻羊的特徵x來預測出這隻羊f(X)是山羊的概率,是綿羊的概率。用生成模型的方法是我們可以根據山羊的特徵首先學習出一個山羊模型,然後根據綿羊的特徵學習出一個綿羊模型。然後從這隻羊中提取特徵,放到山羊模型P(w1|X)中看概率是多少,再放到綿羊模型P(w2|X)中看概率是多少,如果P(w1|X)>P(w2|X),那麼我們就認為X是屬於w1類,即該羊屬於山羊

再舉一個機器學習中的例子:

在機器學習中:

決策函式Y=f(X):你輸入一個X,它就輸出一個Y,這個Y與一個閾值比較,根據比較結果判定X屬於哪個類別。如兩類(w1和w2)分類問題,如果Y大於閾值,X就屬於類w1,如果小於閾值就屬於類w2。這樣就得到了該X對應的類別了。

條件概率分佈P(Y|X):你輸入一個X,它通過比較它屬於所有類的概率,然後輸出概率最大的那個作為該X對應的類別。如:如果P(w1|X)大於P(w2|X),那麼我們就認為X是屬於w1類的。

在過去,人們認為判別模型在分類問題上比生成模型表現更加好(比如Logistic Regression與Naive Bayesian的比較,再比如HMM與Linear Chain CRF的比較)。 

但生成模型也有一些難以代替的地方,比如更容易結合無標註資料做semi-or-un-supervised learning(半監督或無監督學習)。