判别式模型(discriminative model) 和生成式模型(generative model)的区别

产生式模型(Generative Model)与判别式模型(Discrimitive Model)是机器学习中基础概念,在NLP和机器学习中经常会遇到这两种显著不同的模型,在学习阶段(训练阶段)和评估阶段(测试阶段)都有不同的表现,它们的区别在于:

对于输入x,类别标签y:
产生式模型估计它们的联合概率分布P(x,y)
判别式模型估计条件概率分布P(y|x)

产生式模型可以根据贝叶斯公式得到判别式模型,但反过来不行。


Andrew Ng在NIPS2001年有一篇专门比较判别模型和产生式模型的文章:

On Discrimitive vs. Generative classifiers: A comparision of logistic regression and naive Bayes

(http://robotics.stanford.edu/~ang/papers/nips01-discriminativegenerative.pdf)



总结一下它们之间的区别,欢迎补充:

1. 二者最本质的区别是建模对象不同

   假设有样本输入值(或者观察值)x,类别标签(或者输出值)y

   判别式模型评估对象是最大化条件概率p(y|x)并直接对其建模,生成式模型评估对象是最大化联合概率p(x,y)并对其建模。

   其实两者的评估目标都是要得到最终的类别标签Y, 而Y=argmax p(y|x),不同的是判别式模型直接通过解在满足训练样本分布下的最优化问题得到模型参数,主要用到拉格朗日乘算法、梯度下降法,常见的判别式模型如最大熵模型、CRF、LR、SVM等;

   而生成式模型先经过贝叶斯转换成Y = argmax p(y|x) = argmax p(x|y)*p(y),然后分别学习p(y)和p(x|y)的概率分布,主要通过极大似然估计的方法学习参数,如NGram、HMM、Naive Bayes。

2. 判别式模型更加灵活

  主要体现在特征选择上,生成式模型一般需要将特征加入马尔可夫链,而判别式模型加入任意特征进行组合

3. 判别式模型需要有指导训练,生成式模型可以无指导训练

  上文提到生成式模型主要通过极大似然估计进行参数学习,EM算法可以在状态值未知的情况下求得极大似然估计的局部最优解


参考:

1. http://blog.csdn.net/amblue/article/details/17023485
2. http://blog.csdn.net/ruyueyini/article/details/53302882
3. http://bbs.sciencenet.cn/blog-484653-442300.html
4. http://www.leexiang.com/discriminative-model-and-generative-model
5. http://blog.163.com/huai_jing@126/blog/static/1718619832011227757554/


猜你喜欢

转载自blog.csdn.net/jdbc/article/details/77714704