生成式和判别式算法有什么区别?

请帮助我理解生成式算法和区分算法之间的区别,同时牢记我只是一个初学者。


假设您有输入数据x并且您想要将数据分类到标签y中。 一个生成模型学习联合概率分布p(x,y) ,一个判别模型学习条件概率分布p(y|x) - 你应该读作“给定x的概率”。

这是一个非常简单的例子。 假设你有以下形式(x,y)的数据:

(1,0), (1,0), (2,0), (2, 1)

p(x,y)

      y=0   y=1
     -----------
x=1 | 1/2   0
x=2 | 1/4   1/4

p(y|x)

      y=0   y=1
     -----------
x=1 | 1     0
x=2 | 1/2   1/2

如果你花几分钟时间盯着这两个矩阵,你就会明白两个概率分布之间的差异。

分布p(y|x)是将给定示例x分类为y类的自然分布,这就是为什么直接对其进行建模的算法被称为区分算法。 生成算法模型p(x,y) ,可以通过应用贝叶斯规则转化为p(y|x) ,然后用于分类。 但是,分布p(x,y)也可以用于其他目的。 例如,您可以使用p(x,y)生成可能的(x,y)对。

从上面的描述中,你可能会认为生成模型更普遍有用,因此更好,但并不那么简单。 本文是关于歧视性与生成性分类器主题的非常流行的参考文献,但它很重要。 总的要点是区分模型通常在分类任务中优于生成模型。


生成算法模拟如何生成数据以对信号进行分类。 它提出了这样一个问题:根据我的世代假设,哪类最有可能产生这种信号?

区分算法不关心数据是如何生成的,它只是对给定信号进行分类。


想象一下你的任务是将一个演讲分类为一种语言:

你可以这样做:

1)学习每种语言,然后用你刚刚获得的知识对它进行分类

要么

2)确定语言模型的差异,而不学习语言,然后对语音进行分类。

第一个是生成方法,第二个是判别方法。

检查此参考了解更多详情:http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf

链接地址: http://www.djcxy.com/p/6793.html

上一篇: What is the difference between a Generative and Discriminative Algorithm?

下一篇: What is the difference between Θ(n) and O(n)?