可生成式和可生成式的区别是什么 有识别力的算法?


当前回答

生成算法模型将完全从训练数据中学习,并预测响应。

判别算法的工作就是对两种结果进行分类或区分。

其他回答

我的观点是: 歧视性的方法突出了差异 生成方法不关注差异;他们试图建立一个能代表班级的模型。 两者之间有重叠之处。 理想情况下,两种方法都应该使用:一种有助于发现相似之处,另一种有助于发现不同之处。

下面是CS299课堂讲稿中最重要的部分(作者:Andrew Ng),它帮助我理解了判别学习算法和生成学习算法之间的区别。

假设我们有两类动物,大象(y = 1)和狗(y = 0), x是动物的特征向量。

给定一个训练集,像逻辑回归或感知器算法这样的算法(基本上)试图找到一条直线——也就是一个决策边界——将大象和狗分开。然后,分类 一种新动物,比如大象或狗,它会检查它的哪一边 决定其所处的边界,并据此做出预测。我们称之为判别学习算法。

这里有一个不同的方法。首先,看看大象,我们可以建立一个 大象的模型。然后,看着狗,我们可以建立一个 单独的狗狗模型。最后,为了给一种新动物分类, 我们可以将新动物与大象模型相匹配,并将其与 狗的模型,看看新动物是否更像大象 或者更像我们在训练场上看到的狗。我们称之为生成式学习算法。

不同的模型归纳如下表:

图片来源:监督学习小抄-斯坦福CS 229(机器学习)

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

你可以通过以下任何一种方式:

学习每一种语言,然后用你刚刚学到的知识对它进行分类

or

在不学习语言的情况下确定语言模型的差异,然后对语音进行分类。

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

查看参考资料了解更多细节:http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf。

假设你有一个输入数据x,你想把数据分类为标签y。生成模型学习联合概率分布p(x,y),判别模型学习条件概率分布p(y|x)——你应该把它理解为“给定x的y的概率”。

这里有一个非常简单的例子。假设你有(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(y|x),用于分类。然而,分布p(x,y)也可以用于其他目的。例如,您可以使用p(x,y)来生成可能的(x,y)对。

从上面的描述中,您可能会认为生成模型更普遍,因此更好,但它并不是那么简单。这篇论文是关于区分分类器和生成分类器的一个非常流行的参考,但它相当沉重。总的要点是,在分类任务中,判别模型通常优于生成模型。