Skip to content

Latest commit

 

History

History
26 lines (21 loc) · 2.16 KB

2020-05-04_生成模型vs判别模型.org

File metadata and controls

26 lines (21 loc) · 2.16 KB

生成模型与判别模型辨析

生成模型学习联合概率分布p(x,y),而判别模型学习条件概率分布p(y|x)。为了将一个样本x分类到一个类y, 最自然的做法就是条件概率分布p(y|x),这就是为什么我们对其直接求p(y|x)方法叫做判别算法。 而生成算法求p(x,y),而p(x,y)可以通过贝叶斯方法转化为p(y|x),然后再用其分类。 但是p(x,y)还有其他作用,例如,你可以用它去生成(x,y)对。

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

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

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

生成算法尝试去找到底这个数据是怎么生成的(产生的),然后再对一个信号进行分类。 基于你的生成假设,那么那个类别最有可能产生这个信号,这个信号就属于那个类别。 判别模型不关心数据是怎么生成的,它只关心信号之间的差别,然后用差别来简单对给定的一个信号进行分类。

判别模型之所以称为“判别”模型,是因为其根据X“判别”Y;而生成模型之所以称为“生成”模型, 是因为其预测的根据是联合概率P(X,Y),而联合概率可以理解为“生成”(X,Y)样本的概率分布 (或称为 依据);具体来说,机器学习已知X,从Y的候选集合中选出一个来,可能的样本有 (X,Y_1), (X,Y_2), (X,Y_3),……,(X,Y_n),实际数据是如何“生成”的依赖于P(X,Y), 那么最后的预测结果选哪一个Y呢?那就选“生成”概率最大的那个吧~