機器學習概述(2)--生成模型和判別模型的區別

1.引入

在監督學習下,模型可以分爲判別式模型與生成式模型。

先問個問題,根據經驗,A批模型(神經網絡模型、SVM、perceptron、LR、DT……)與B批模型(NB、LDA……),有啥區別不?(這個問題需要一些模型使用經驗)應該是這樣的:

  • A批模型是這麼工作的,他們直接將數據的Y(或者label),根據所提供的features,學習,最後畫出了一個明顯或者比較明顯的邊界(具體怎麼做到的?通過複雜的函數映射,或者決策疊加等等函數),這一點線性LR、線性SVM應該很明顯吧。

  • B批模型是這麼工作的,他們先從訓練樣本數據中,將所有的數據的分佈情況摸透,然後最終確定一個分佈,來作爲我的所有的輸入數據的分佈,並且他是一個聯合分佈 P(X,Y)P(X,Y)(注意包含所有的特徵,包含所有的label)。然後我來了新的樣本數據(inference),好,通過學習來的模型的聯合分佈P(X,Y)P(X,Y) ,再結合新樣本給的X,通過條件概率就能出來 :
    P(XY)=P(X,Y)P(X)P(X|Y)=\frac{P(X,Y)}{P(X)}

1.1.判別式模型

那麼A批模型對應了判別式模型。根據上面的兩句話的區別,可以知道判別模型的特徵了,所以有句話說:判別模型是直接對 P(XY)P(X|Y)建模,就是說,直接根據X特徵來對Y建模訓練。
具體地,我的訓練過程是確定構件 模型裏面“複雜映射關係”中的參數,完了再去inference一批新的sample。
所以判別式模型的特徵總結如下:

  • P(X,Y)P(X,Y)建模
  • 對所有的樣本只構建一個模型,確認總體判別邊界
  • 觀測到輸入什麼特徵,就預測最可能的label
  • 另外,判別式的優點是:對數據量要求沒生成式的嚴格,速度也會快,小數據量下準確率也會好些。

1.2.生成式模型

同樣,B批模型對應了生成式模型。並且需要注意的是,在模型訓練中,我學習到的是X與Y的聯合模型 P(X,Y)P(X,Y) ,也就是說,我在訓練階段是隻對 P(X,Y)P(X,Y)建模,我需要確定維護這個聯合概率分佈的所有的信息參數。完了之後在inference再對新的sample計算 P(XY)P(X|Y) ,導出,但這已經不屬於建模階段了。
結合NB過一遍生成式模型的工作流程。學習階段,建模 P(X,Y)=p(XY)P(Y)P(X,Y)=p(X|Y)P(Y): (當然,NB具體流程去隔壁參考),然後 P(XY)=P(X,Y)P(X)P(X|Y)=\frac{P(X,Y)}{P(X)}
另外,LDA也是這樣,只是他更過分,需要確定很多個概率分佈,而且建模抽樣都蠻複雜的。
所以生成式總結下有如下特點:

  • P(X,Y)P(X,Y) 建模
  • 這裏我們主要講分類問題,所以是要對每個label( )都需要建模,最終選擇最優概率的label爲結果,所以沒有什麼判別邊界。(對於序列標註問題,那隻需要構件一個model)
  • 中間生成聯合分佈,並可生成採樣數據。
  • 生成式模型的優點在於,所包含的信息非常齊全,我稱之爲“上帝信息”,所以不僅可以用來輸入label,還可以幹其他的事情。生成式模型關注結果是如何產生的。但是生成式模型需要非常充足的數據量以保證採樣到了數據本來的面目,所以速度相比之下,慢。
    這一點明白後,後面講到的HMM與CRF的區別也會非常清晰。
    最後identity the picture below:
    在這裏插入圖片描述

2.生成模型與判別模型

監督學習方法可以分爲生成方法(generative approach)和判別方法(discriminative approach),所學到的模型分爲生成模型(generative model)和判別模型(discriminative model)。

生成方法:模型學習數據中的聯合概率分佈P(X,Y),然後求出條件概率分佈區P(Y|X)作爲預測的模型,表示給定了輸入X如何輸出Y的關係,即:

典型的生成模型有樸素貝葉斯和隱馬爾科夫模型。

判別方法:模型學習數據中的決策函數f(X)或者條件概率P(X|Y)作爲預測模型,給定輸入X,應該預測什麼樣的輸出Y。典型的判別模型有:k近鄰法,決策樹,logistic迴歸,SVM,adaboost,條件隨機場。

生成方法的特點:生成方法可以還原出聯合概率分佈P(X,Y),而判別方法則不能,生成方法的學習收斂速度更快,即當樣本容量增加的時候,學到的模型可以更快地收斂於真實模型;當存在隱變量時,仍可以用生成方法學習,此時判別方法就不能用。

判別方法的特點:判別方法直接學習的是條件概率P(Y|X)或決策函數f(X),直接面對預測,往往學習的準確率更高,由於直接學習P(Y|X)成f(X),可以對數據進行各種程度上的抽象,定義特徵並使用特徵,因此可以簡化學習問息.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章