1. 程式人生 > >ML13生成模型與判別模型

ML13生成模型與判別模型

轉載自GitHub:http://t.cn/E76fhB6

生成模型與判別模型

  • 監督學習的任務是學習一個模型,對給定的輸入預測相應的輸出

  • 這個模型的一般形式為一個決策函式或一個條件概率分佈(後驗概率):
    Y = f (

    X ) or P ( Y X
    ) Y=f(X)\quad \text{or}\quad P(Y|X)

    • 決策函式:輸入 X 返回 Y;其中 Y 與一個閾值比較,然後根據比較結果判定 X 的類別
    • 條件概率分佈:輸入 X 返回 X 屬於每個類別的概率;將其中概率最大的作為 X 所屬的類別
  • 監督學習模型可分為生成模型判別模型

    • 判別模型

      直接學習決策函式或者條件概率分佈

      • 直觀來說,判別模型學習的是類別之間的最優分隔面,反映的是不同類資料之間的差異
    • 生成模型學習的是聯合概率分佈P(X,Y),然後根據條件概率公式計算 P(Y|X)

      P ( Y X ) = P ( X , Y ) P ( X ) P(Y|X)=\frac{P(X,Y)}{P(X)}

兩者之間的聯絡

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

  • 當存在“隱變數”時,只能使用生成模型

    隱變數:當我們找不到引起某一現象的原因時,就把這個在起作用,但無法確定的因素,叫“隱變數”

優缺點

  • 判別模型
    • 優點
      • 直接面對預測,往往學習的準確率更高
      • 由於直接學習 P(Y|X)f(X),可以對資料進行各種程度的抽象,定義特徵並使用特徵,以簡化學習過程
    • 缺點
      • 不能反映訓練資料本身的特性
  • 生成模型
    • 優點
      • 可以還原出聯合概率分佈 P(X,Y),判別方法不能
      • 學習收斂速度更快——即當樣本容量增加時,學到的模型可以更快地收斂到真實模型
      • 當存在“隱變數”時,只能使用生成模型
    • 缺點
      • 學習和計算過程比較複雜

常見模型

  • 判別模型
    • K 近鄰、感知機(神經網路)、決策樹、邏輯斯蒂迴歸、最大熵模型、SVM、提升方法、條件隨機場
  • 生成模型
    • 樸素貝葉斯、隱馬爾可夫模型、混合高斯模型、貝葉斯網路、馬爾可夫隨機場