機器學習教程 之 生成模型與判別模型

最初知道生成模型與判別模型是從GAN裏聽到的,分別訓練一個生成模型和判別模型,然後進行對抗,提升總體模型的性能,這是一個令人驚歎的創新和突破。這裏總結一下生成模型和判別模型的特點和不同

一、判別模型和生成模型的思想

拿一個分別男女的二分類問題來說,判別模型就是要找到區分男女的劃分邊界,而生成模型則是要找到可以描述男女這兩類數據分佈的模型,可以用下面這張圖簡單概括一下
在這裏插入圖片描述
判別模型要學習的是這裏的劃分邊界,而生成模型要學習的是男女的數據分佈,由上圖可知,生成模型本身並不具有分別功能,但由於生成模型詳細描述了數據本身的特徵,稍加處理便可以推出判別模型進行分類。但是判別模型因爲本身只是劃分規則,並不包含對數據的描述,所以無法倒推出生成模型。
同時,需要注意的是,生成模型因爲要估計數據本身的分佈,需要數據儘可能的充分,而判別模型在這方面的要求則相對寬鬆,能夠學習得到相應劃分規則即可

概括一下:
判別模型: 有限樣本->判別模型=分類(迴歸)模型->分類(迴歸)
生成模型:無限樣本->生成模型->分類(迴歸)模型->分類(迴歸)

二、判別模型和生成模型的概率描述

生成模型和判別模型都可以基於概率模型來描述
判別模型:學習條件概率分佈P(y|x),給定x,判斷其類別
生成模型:學習聯合概率分佈P(x,y),即特徵x和標記y共同出現的概率,然後推導出條件概率分佈P(y|x),即給定x,判斷其類別

2.1 判別模型

判別模型的主要特點是: 判別模型尋找不同類別之間的最優分類面,反映的是不同類別數據之間的差異

  • 優點:
    尋找分類邊界更加直接,比使用生成模型更加針對分類任務本身
    能清晰的分辨出多類或某一類與其他類之間的差異特徵
    判別模型的性能比生成模型要簡單,比較容易學習

  • 缺點:
    不能反映訓練數據本身的特性,可以區分數據是哪個類別,但不能描述數據集本身
    黑盒特性,數據間的關係不清楚,不可視

  • 常見的主要有:
    邏輯迴歸、支持向量機、普通的神經網絡、最近鄰、條件隨機場、boosting、卷積神經網絡

2.2 生成模型

生成模型首先估計數據的聯合概率分佈P(x,y),其基本思想是先爲數據指定一個分佈(如高斯分佈),再利用標註數據估計分佈參數(如均值和方差,利用EM或者極大似然求解),從而得到P(x,y)。基於得到的聯合概率分佈,利用貝葉斯公司可以得到我們的判別模型P(y|x)=P(x,y)/P(x).
生成模型的主要特點是:從統計的角度表示數據的分佈情況,能夠反映同類數據本身的相似度。它只關注類別本身的特性,不關心類別之間的分類界限在哪

  • 優點:
    包含的信息要比判別模型豐富,
    研究單類問題比判別模型靈活性強
    模型可以通過增量學習得到

  • 缺點:
    基於較強的分佈假設
    學習和計算過程比較複雜

  • 常見的主要有:
    高斯混合模型,樸素貝葉斯,隱馬爾可夫模型,貝葉斯網絡

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