生成式模型
生成式模型(generative model)會對和的聯合分佈進行建模,然後通過貝葉斯公式來求得, 最後選取使得最大的.
具體地, .
相關算法:
- 判別式分析 •
- 樸素貝葉斯 •
- K近鄰(KNN) •
- 混合高斯模型 •
- 隱馬爾科夫模型(HMM) •
- 貝葉斯網絡 •
- Sigmoid Belief Networks •
- 馬爾科夫隨機場(Markov Random Fields) •
- 深度信念網絡(DBN)
判別式模型
判別式模型(discriminative model)則會直接對進行建模.
相關算法:
- 線性迴歸(Linear Regression) •
- 邏輯斯蒂迴歸(Logistic Regression) •
- 神經網絡(NN)
- 支持向量機(SVM) •
- 高斯過程(Gaussian Process) •
- 條件隨機場(CRF)
- CART(Classification and Regression Tree)
二者優缺點
-
一般來說, 生成式模型都會對數據的分佈做一定的假設, 比如樸素貝葉斯會假設在給定的情況下各個特徵之間是條件獨立的:, GDA會假設. 當數據滿足這些假設時, 生成式模型通常需要較少的數據就能取得不錯的效果, 但是當這些假設不成立時, 判別式模型會得到更好的效果.
-
生成式模型最終得到的錯誤率會比判別式模型高, 但是其需要更少的訓練樣本就可以使錯誤率收斂[限於Genarative-Discriminative Pair, 詳見[2]].
-
生成式模型更容易擬合, 比如在樸素貝葉斯中只需要計下數就可以, 而判別式模型通常都需要解決凸優化問題.
-
當添加新的類別時, 生成式模型不需要全部重新訓練, 只需要計算新的類別和的聯合分佈即可, 而判別式模型則需要全部重新訓練.
-
生成式模型可以更好地利用無標籤數據(比如DBN), 而判別式模型不可以.
-
生成式模型可以生成, 因爲判別式模型是對進行建模, 這點在DBN的CD算法中中也有體現, 而判別式模型不可以生成.
-
判別式模型可以對輸入數據進行預處理, 使用來代替, 如下圖所示, 而生成式模型不是很方便進行替換.