生成模型和判別模型


生成模型(Generative)和判別模型(Discriminative)

生成模型(Generative)和判別模型(Discriminative)

  1. 引言  
   最近看文章《 A survey of appearance models in visual object tracking》( XiLi,ACMTIST,2013),在文章的第4節第1段有這樣的描述,“Recently,visual object tracking has been posed as a  tracking-by-detectionproblem, where statistical modeling is dynamically performed to support object detection. According to the model-construction mechanism, statistical modeling is classified into three categories, including generative, discriminative, and hybrid generative-discriminative.”隨后又再以前看的《 Fast Compressive Tracking》( Kaihua Zhang,PAMI,2014)的第2節第1段找到相應的話,“Recent surveys of object tracking can be found in [22]-[24],In this section, we briefly review the most relevant literature of on-line object tracking. In general, tracking algorithms can be categorized as either  generative or discriminative based on their appearance models.”類似還有很多,每次看到都會有點模糊,感覺心中沒底,所以就找了些資料總結了下,有不對的地方還請大家指正。
 
 2.   概念
 
     監督學習的任務就是 學習一個 模型,應用這一模型,對給定的輸入預測相應的輸出。這個模型一般形式為 決策函數Y=f(X)或者 條件概率分布P(Y|X)。可以參考《 機器學習方法概論1》、《 機器學習方法概論2》來進行系統的理解。其中這個模型的分類有很多種,有一種分類就把模型分為: Generative Modeling (生成模型)Discriminative Modeling (判別模型)兩種,后面簡稱 GMDM。GM是由訓練數據學習 聯合概率分布P(X,Y),然后 求出條件概率分布P(Y|X)作為 預測的模型,即生成模型:
                                 
之所以叫生成模型,是因為模型表示了 給定輸入X產生輸出Y的生成關系[1]。典型的生成模型有:朴素貝葉斯和隱馬爾科夫模型。判別模型是由訓練數據直接學習決策函數f(X)或者條件概率分布P(X,Y)作為預測的模型,模型關心的是對給定的輸入X,應該預測什么樣的輸出Y,與GM的不同在於不需要先學習出 聯合分布P(X,Y)。典型的判別模型有: k近鄰法、感知機、決策樹、邏輯回歸、最大熵、SVM、AdaBoost條件隨機場等。
 
 3.  擴展
 
   根據 貝葉斯公式,我們知道 P(X,Y)=P( X|Y)P(Y)=P(Y|X)P(X),所以生成模型也可以表示成: P(Y|X) =P(X|Y)P(Y)/P(X),其中P(X|Y)是X的后驗概率,P(Y)為先驗概率,其實條件概率P(Y|X)也是后驗概率,條件概率和后驗概率是相同的式子,只是表述不同,具體如下: P(Y|X)是已知X發生后Y的條件概率,也由於得自X的取值而被稱作是Y的后驗概率;P(X|Y)是已知Y發生后X的條件概率,也由於得自Y的取值而稱作X的后驗概率。所以監督模型中的我們要求解的條件概率其實是已知輸入X發生后輸出Y的條件概率。而我們現在用 P(Y|X) = P(X|Y) P(Y)/P(X)這個公式,首先求解的是 P(X|Y),所以有些地方也說對 P(X|Y)建模為GM(當然也要求P(Y)和P(X)),對P(Y|X)直接建模為DM;意思其實是一樣的,以為GM中先對 P(X|Y)建模后,可以求出聯合分布 P(X,Y)=P( X|Y )P(Y),仍可以說是求 聯合分布為GM。例如: X=吸煙的人,Y=得肺癌的幾率,對P(Y|X)建模可能非常復雜,而對P(X|Y)建模就比較容易,因為對P(X|Y)建模就好像在得肺癌的人里面看吸煙人的情況。我們都知道吸煙的人數億億計,但得肺癌的人畢竟是少數,建模從得肺癌的人出發,更加容易,比如10萬個得肺癌的,抽樣1000個就差不多了。所以不能一概說哪個不好哪個好,要看在什么情況下,比如考慮先驗概率P(X)和P(Y)比較難求后呢?所以具體情況下考慮用哪種模型。
    DM 關注於X和Y的 關系,或者說在 給定某個X 的情況下所對應的Y 應該滿足的規律或分布;而GM則試圖 描述X 和Y 的聯合分布
    
 4.  特點及對比
    

       在監督學習中,兩種方法各有優缺點,適合於不同條件的學習問題。

    GM特點:生成方法學習聯合分布P(X,Y),所以就可以從統計的角度表示數據的分布情況,能夠反映同類數據本身的相似度。但它不關心到底划分各類的那個分類邊界在哪[2]。生成方法可以原出聯合概率分布分布P(X,Y),而判別方法不能。生成方法的學習收斂速度更快,即當樣本容量增加的時候,學到的模型可以更快的收斂於真實模型,當存在隱變量時,仍可以用生成方法學習。此時判別方法就不能用[1]。

    DM特點:判別方法直接學習的是決策函數Y=f(X)或者條件概率分布P(Y|X),不能反映訓練數據本身的特性。但它尋找不同類別之間的最優分類面,反映的是異類數據之間的差異[2]。直接面對預測,往往學習的准確率更高。由於直接學習P(Y|X)或f(X),可以對數據進行各種程度上的抽象、定義特征並使用特征,因此可以簡化學習問題[1]。

     pluskid的主要是通過朴樹貝葉斯和邏輯回歸進行GM和DM的對比[3],講的感覺有點深,能力即知識點有限,很多看不懂。但是里面的對比感覺還是有道理的。他說,Naive Bayes 需要同時對輸入X和輸出Y進行建模,得到聯合分布P(X,Y),因此是生成模型。由於X是個比較復雜的東西,建模起來很痛苦,於是 Naive Bayes 不得不做了很強的假設,從此一輩子戴上了 “Naive” 的帽子。一般來說,DM 比 GM 看起來更誘人一些,特別是我們的目標就是分類的時候,DM 直接建模 P(Y|X)進行分類,而 GM 則先建模P(X,Y)然后再通過該模型計算P(Y|X)進行分類。首先P(X,Y)的估計本身會很困難,需要的計算量和訓練數據量都會非常巨大,像 Naive Bayes 那樣為了使得模型復雜度被控制在可以處理的范圍內就不得不做了非常強的假設。如果X嚴重違背了獨立性假設的話,Naive Bayes 的性能有可能會受到嚴重影響。比如,在自然語言處理中分析句子的語法樹的時候,為了提高性能通常會使用一些冗余度和相關性非常高的特征,這個時候如果使用獨立性假設很強的 GM 來處理,效果就不好,但如果不做很強的獨立性假設,模型的復雜度又會指數級別增長,很快就無法處理了。

 

  5.  形象的例子

 

    任務是識別一個語音屬於哪種語言。例如對面一個人走過來,和你說了一句話,你需要識別出她說的到底是漢語、英語還是法語等。那么你可以有兩種方法達到這個目的:

1、學習每一種語言,你花了大量精力把漢語、英語和法語等都學會了,我指的學會是你知道什么樣的語音對應什么樣的語言。然后再有人過來對你哄,你就可以知道他說的是什么語音。這就是GM。

2、不去學習每一種語言,你只學習這些語言模型之間的差別,然后再分類。意思是指我學會了漢語和英語等語言的發音是有差別的,我學會這種差別就好了。這就是DM。[2]

     對於跟蹤算法,生成模型:一般是學習一個代表目標的模型,然后通過它去搜索圖像區域,然后最小化重構誤差。類似於生成模型描述一個目標,然后就是模式匹配了,在圖像中找到和這個模型最匹配的區域,就是目標了。判別模型:將跟蹤問題看成一個二分類問題,然后找到目標和背景的決策邊界。它不管目標是怎么描述的,那只要知道目標和背景的差別在哪,然后你給一個圖像,它看它處於邊界的那一邊,就歸為哪一類。

 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM