生成模型与判别模型

生成模型与判别模型

生成模型

  • 生成模型(generative model)学习的对象是输入 x 和输出 y 的联合分布 P(X,Y)

  • 即先学习所有x和y之间的联合概率分布P(X,Y),然后得到后验概率P(Y|X),此过程中,需要学习P(X),公式如下(盗图,将B=Y,A=X即可):生成模型与判别模型,也就是说,需要P(x)能够较好的描述x的概率分布才可以,这就要求训练样本足够多。

  • 举个例子,当需要判断一个人说的哪国语言时,你首先需要学会所有语言,然后对于一种特定的语言,提取其特征,放到所有语言对应的模型中,判断其概率为多少,大的获胜。

判别模型

  • 判别模型(Discriminative model)学习的对象是输入x和输出y的条件概率分布P(Y|X)

  • 在有限样本下学习判别函数,直接学习的是不同样本之间的差异。

  • 同样对于上面的例子,当判断一个人说的是哪国语言时,你只要知道不同语言之间的差别,然后提取这个人所说语言的特征,按照差别一一对应,即可知道是哪种语言。就类似于,对于一个选择题,我不知道这个题咋做,但是我知道选啥(三长两短选一短,三短一长选一长)

两者的区别

区别就在于生成模型学习的是条件概率分布,判别模型学习的是条件概率分布。
如下图:
生成模型与判别模型

两者的联系

由生成模型可以得到判别模型,但是由判别模型无法得到生成模型。参考《生成模型》上面的公式即可理解原因。

典型的生成模型

  • 朴素贝叶斯法
  • 隐马尔科夫模型、
  • 混合高斯模型
  • AODE
  • Latent Dirichlet allocation(unsup)
  • Restricted Boltzmann Machine
  • ···

典型的判别模型

  • kNN
  • 感知机
  • 决策树
  • 逻辑回归
  • 最大熵模型
  • SVM
  • 提升方法
  • 条件随机场
  • 神经网络
  • ···

参考文档

https://blog.csdn.net/zouxy09/article/details/8195017
https://www.zhihu.com/question/20446337
https://blog.csdn.net/LoseInVain/article/details/82785985