1. 程式人生 > >機器學習之---生成模型和判別模型

機器學習之---生成模型和判別模型

 

監督學習方法可分為兩大類,即生成方法與判別方法,它們所學到的模型稱為生成模型與判別模型。

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

舉個例子:若分類目標是對影象中的大象和狗進行分類。判別方法學得一個模型,這個模型可能是判斷圖中動物鼻子的長度是否大於某一閾值,若大於則判斷為大象,否則判斷為狗;生成學習則分別構建一個大象的特徵模型與狗的特徵模型,來了一個新影象後,分別用大象模型與狗模型與其進行比較,若新影象與狗相似度更高則判斷為狗,否則判斷為大象。

相關數學理論

若已知某分類任務的生成模型,是可以求得該任務的判別模型,反之則不行。這和概率論中的全概率密度函式以及邊沿概率密度函式是一致的(即已知全概率密度可求得邊沿概率密度,但已知邊沿概率密度不能求得全概率密度)。

例如:若現在已知一個二分類問題獲得的5個訓練資料為:(1,0),(1,0),(2,0),(2,1),(2,1) 
1、全概率分佈P(X,Y)如下表所示

X\Y 0 1
1 2/5 0
2 1/5 2/5

注意:根據全概率分佈,可以推匯出如下邊沿概率分佈P(Y|X)以及P(X)。

2、邊沿概率分佈P(Y|X)如下表所示

X\Y 0 1
1 1 0
2 1/3 2/3

注意:根據邊沿概率分佈,不可以推匯出全概率分佈。例如,此例中邊沿概率分佈對應的全概率分佈可能如下:

X\Y 0 1
1 4/7 0
2 1/7 2/7

由上述例子可知,生成模型的資訊比判別模型資訊要更全一些。

兩類方法的特點

生成方法通常需要無窮多樣本,進而學習一個聯合概率分佈P(X,Y),然後求出條件概率分佈P(Y|X)=P(X,Y)/P(X)來對新輸入的資料進行分類。

此類方法之所以成為生成方法,是因為模型表示了給定輸入X產生輸出Y的生成關係。典型的生成模型有:樸素貝葉斯法、馬爾科夫模型、高斯混合模型。這種方法一般建立在統計學和Bayes理論的基礎之上。

生成方法的特點:

  • 從統計的角度表示資料的分佈情況,能夠反映同類資料本身的相似度;
  • 生成方法還原出聯合概率分佈,而判別方法不能;
  • 生成方法的學習收斂速度更快、即當樣本容量增加的時候,學到的模型可以更快地收斂於真實模型;
  • 當存在隱變數時,仍然可以用生成方法學習,此時判別方法不能用

判別方法可以根據有限個樣本獲得一個判別函式(即判別模型),然後用它來對新資料進行分類。典型的判別模型包括:k近鄰法、感知機、決策樹、邏輯斯蒂迴歸模型、最大熵模型、支援向量機、boosting方法和條件隨機場等。

判別方法的特點:

  • 判別方法尋找不同類別之間的最優分類面,反映的是異類資料之間的差異;
  • 判別方法利用了訓練資料的類別標識資訊,直接學習的是條件概率P(Y|X)或者決策函式f(X),直接面對預測,往往學習的準確率更高;
  • 由於直接學習條件概率P(Y|X)或者決策函式f(X),可以對資料進行各種程度上的抽象、定義特徵並使用特徵,因此可以簡化學習問題;
  • 缺點是不能反映訓練資料本身的特性。

兩類方法的應用

根據所獲取的資料,兩類方法都有各自的用場。例如:我們若只有人的側面資料,我們當然不知道這個人是否長得帥、美,但我們可做(男、女)、(有耳、無耳)分類。用生成模型來做的話,則表示這個人全部資訊都有了,當然能做的分類更多了。

總結:

生成模型:求聯合分佈(求隱藏特徵,如上面有無耳例子)(收快隱)

判別模型:條件分佈

轉載自:https://blog.csdn.net/quintind/article/details/77923147