判別模型vs生成模型
條件概率分佈p(y|x)
從概率的角度來看監督學習的話,其實就是從數據集中學習條件概率分佈p(y|x)。其中,
比如,現在的一個問題爲判定一個動物是汪星人還是喵星人。這個問題可以表示爲x=[叫聲,食物,毛的顏色],y=[汪星人,喵星人]。監督學習就是去比較p(y=汪星人|x) 和p(y=喵星人|x)的概率誰大,預測給定的動物爲概率較大的動物。
判別模型(discriminative model) vs 生成模型(generative model)
監督學習中估計p(y|x)的方法分爲兩種:判別方法和生成方法,其對應的就是判別模型和生成模型。
判別模型:基於給定的數據集,直接計算p(y|x),形象的說就是直接學習找到一條決策邊界,判別數據的類別標籤,在決策邊界一側的是類別0,在另外一側的是類別1。形象的描述可以使用下圖表示:給定一堆的藍色和紅色的點,監督學習通過不斷的學習找到了一條直線,這條直線儘可能的將不同顏色的點劃分開來。當給定了一個新的點,如果這個條落在直線的上方,則判定爲紅色,否則爲藍色。
考慮上述所說的判定動物爲貓還是狗的問題,用判別模型解決就是,通過觀察這個動物的叫聲、食物和毛的顏色特徵,來直接判定這個動物是屬於汪星人還是汪星人。常見的判別模型有KNN,決策樹,PLA等。
生成模型 :基於給定的數據集,首先要學習得到其聯合概率分佈p(x,y)和p(x),再通過等式
在生成模型中,我們還需要對
生成模型中常見的有:NB,HMM等。
判別模型和生成模型的優缺點
判別模型:
- 缺點:判別模型直接學習
- 但是正是由於判別模型不關心
生成模型:
- 缺點:與判別模型相反,生成模型因爲考慮了
- 優點: 生成模型可以學習到數據本身的特徵,並且可以將學習到的特徵,應用到其他判別問題上。如果估計的問題並不是數據所屬的類別y,而是某個隱藏的特性z,生成模型就可以估計出隱藏變量z的分佈,判別模型就無法做到: