生成模型和判別模型

生成模型(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.  特色及對比
    

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

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

    DM特色:判別方法直接學習的是決策函數Y=f(X)或者條件機率分佈P(Y|X),不能反映訓練數據自己的特性。但它尋找不一樣類別之間的最優分類面,反映的是異類數據之間的差別[2]。直接面對預測,每每學習的準確率更高。因爲直接學習P(Y|X)或f(X),能夠對數據進行各類程度上的抽象、定義特徵並使用特徵,所以能夠簡化學習問題[1]。app

     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.  形象的例子ide

 

    任務是識別一個語音屬於哪一種語言。例如對面一我的走過來,和你說了一句話,你須要識別出她說的究竟是漢語、英語仍是法語等。那麼你能夠有兩種方法達到這個目的:函數

一、學習每一種語言,你花了大量精力把漢語、英語和法語等都學會了,我指的學會是你知道什麼樣的語音對應什麼樣的語言。而後再有人過來對你哄,你就能夠知道他說的是什麼語音。這就是GM。post

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

     對於跟蹤算法,生成模型:通常是學習一個表明目標的模型,而後經過它去搜索圖像區域,而後最小化重構偏差。相似於生成模型描述一個目標,而後就是模式匹配了,在圖像中找到和這個模型最匹配的區域,就是目標了。判別模型:將跟蹤問題當作一個二分類問題,而後找到目標和背景的決策邊界。它無論目標是怎麼描述的,那隻要知道目標和背景的差異在哪,而後你給一個圖像,它看它處於邊界的那一邊,就歸爲哪一類。學習

 

 

#由生成模型能夠獲得判別模型,但由判別模型得不到生成模型ui

相關文章
相關標籤/搜索