机器学习:生成式模型与判别式模型

监督学习的任务就是学习一个模型,应用这一模型,对给定的输入预测相应的输出。这个模型的一般形式为决策函数:

                                Y = f(X)

或者条件概率分布:

                                 P(Y|X)

监督学习方法又分为生成方法和判别方法,对应生成式模型(Generative Model)与判别式模型(Discriminative Model)。它们的区别在于:

1.生成式

生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:

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

模型表示了给定输入X产生输出Y的生成关系。

特点:

  • 从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度,但它不关心到底划分各类的那个分类边界在哪;
  • 生成方法可以还原出联合概率分布P(X,Y),而判别方法则不能;
  • 生成方法学习收敛速度快,即当样本容量增加的时候,学到的模型可以更快的收敛于真实模型;
  • 当存在隐变量时,仍可以用生成方法学习,此时判别方法不能用。

典型的生成模型有:朴素贝叶斯法,隐马尔可夫模型,混合高斯模型

2.判别式

判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测模型,即判别模型。判别方法关心的是对给定的输入X,应该预测什么样的输出Y

特点:

  • 判别方法寻找不同类别之间的最优分类面,反映的是异类数据之间的差异;
  • 判别方法直接学习的是条件概率P(Y|X)或决策函数f(X),直接面对预测,往往学习准确率更高;
  • 由于直接学习P(Y|X)f(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

典型的判别模型有:k近邻,感知机,决策树,逻辑斯蒂回归,最大熵模型,SVM,提升方法和条件随机场(CRF)

看到的一些其他形象一点的解释:

生成模型: 学习时先得到 P(x,y),继而得到 P(y|x)。预测时应用最大后验概率法(MAP)得到预测类别 y。 

判别模型: 直接学习得到P(y|x),利用MAP得到 y。或者直接学得一个映射函数 y=f(x)。

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

假如你的任务是识别一个语音属于哪种语言。例如对面一个人走过来,和你说了一句话,你需要识别出她说的到底是汉语、英语还是法语等。那么你可以有两种方法达到这个目的:

  1. 学习每一种语言,你花了大量精力把汉语、英语和法语等都学会了,我指的学会是你知道什么样的语音对应什么样的语言。然后再有人过来对你说,你就可以知道他说的是什么语音.
  2. 不去学习每一种语言,你只学习这些语言之间的差别,然后再判断(分类)。意思是指我学会了汉语和英语等语言的发音是有差别的,我学会这种差别就好了。

那么第一种方法就是生成方法,第二种方法是判别方法。

 

参考:

机器学习,周志华

统计学习方法,李航

你可能感兴趣的:(机器学习,机器学习,生成式模型,判别式模型)