生成算法和判别算法有什么区别?
-
22-08-2019 - |
题
请帮助我理解 a 和 a 之间的区别 生成的 和一个歧视性的 算法,请记住我只是一个初学者。
解决方案
假设您有输入数据 x
并且您想将数据分类为标签 y
. 。生成模型学习 联合的 概率分布 p(x,y)
判别模型学习 有条件的 概率分布 p(y|x)
- 你应该读作 “的概率 y
给定 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)
对。
从上面的描述中,您可能会认为生成模型更普遍有用,因此更好,但事实并非如此简单。 这张纸 是关于歧视性与非歧视性主题的非常流行的参考文献。生成分类器,但它的工作量相当大。总体要点是,在分类任务中,判别模型通常优于生成模型。
其他提示
一个的生成算法强>模型中的数据是如何以分类的信号生成的。它问一个问题:根据我这一代人的假设,其中类是最容易产生这种信号
一个的判别算法强>不关心如何生成数据,它只是将其归类一个给定的信号。
想象一下,你的任务是进行分类的讲话以一种语言。
您可以做它的无论是:
- 学习每一种语言,然后进行分类使用的知识,你只是获得了
或
- 的确定差异的语言模型没有学习的语言,然后进行分类的讲话。
第一个是的 生成的 方法和第二个是的 歧视 办法。
检查这个参考更多的细节: http://www.cedar.buffalo.edu/~srihari/CSE574/歧视产生.pdf.
在实践中,模型被使用如下。
在判别模型,预测从训练例子y
标签x
,你必须评估:
这只是选择什么是最有可能的类y
考虑x
。这就像我们试图为模式决定的类之间的边界。此行为是在神经网络,其中,所计算的权重可以被看作是一个复杂形状的曲线中分离类的所述空间中的元素是很清楚。
现在,使用贝叶斯规则,让我们替换由。既然你是在 ARG MAX 的,你可以消灭分母只是感兴趣,这将是每y
相同。所以,你留下了
这是在你的生成模型使用方程。
虽然在第一情况下,你有条件概率分布 p(y|x)
,其建模类之间的边界,在你有联合概率分布 P(X,第二, y)时,由于p(X,Y)= p(X |。y)的p(Y),其中的明确的模型的每个类的实际分布强>
使用的联合概率分布函数,给定一个y
,就可以计算(“生成”)其相应x
。出于这个原因,他们被称为“生成”模式。
下面是从演讲中最重要的组成部分说明 CS299(由安德鲁伍)相关的话题,其中的真正的帮助我理解的区别和生成学习算法之间的区别。
假设我们有两个类的动物,大象(y = 1
)和狗(y = 0
)。和 X 与动物的特征向量。
给定一个训练集,像回归或感知算法(基本上)试图找到一条直线的算法 - 也就是说,一个决策边界 - 分隔大象和狗。然后,分类 一个新的动物如任一大象或狗,它检查上的哪一侧 决策边界它属于,并相应地它的预测。我们称这些判别学习算法
这里的一个不同的方法。首先,看大象,我们可以建立一个 什么大象模样的模型。然后,看着狗,我们可以建立一个 什么样的狗看起来像单独的模型。最后,一个新的动物进行分类, 我们可以对阵大象模型的新动物,并匹配它 狗的模型,看到新的动物是否看起来更像是大象 还是更喜欢狗,我们已经看到在训练组。我们称这些的生成学习算法
一般来说,在机器学习领域实践不学东西,你不想。例如,考虑分类问题,其中一个公司的目标是到y标签分配给一个给定的x输入。如果我们使用生成模型
p(x,y)=p(y|x).p(x)
我们必须模型P(X),这是不相关的用于在手头的任务。像数据稀疏的实际限制将迫使我们p(x)
一些弱独立性的假设模型。因此,我们直观地使用判别模型进行分类。
除了内容翔实点好的答案通过StompChicken以上。
的 根本区别 之间 歧视模型 和 生成模型 为:
歧视模型 学习 (硬的或软的)的边界 之类的
生成模型 模型 分布 个人类
编辑:
一个生成模型是一个 这可以生成数据.它模式两者的特点和类(即完整的数据)。
如果我们的模型 P(x,y)
:我可以用这个概率分布的,以生成数据分,因此所有算法的建模 P(x,y)
是创造的.
例如。生成模型
天真Bayes模型
P(c)
和P(d|c)
-在哪里c
是的类和d
是的要素的矢量。此外,
P(c,d) = P(c) * P(d|c)
因此,幼稚Bayes在某种形式的模型,
P(c,d)
Bayes净
马尔科夫网
一个歧视性的模型是一个只能用到 歧视/分类的数据点.你只需要模型 P(y|x)
在这种情况下,(即概率的阶级给予特征矢量)。
例如。的歧视模型:
逻辑回归
神经网络
有条件的随机场
在一般情况下,生成模型需要更多的歧视性模式,因此有时也不作为有效。事实上,大多数(不确定,如果有)监督学习的算法,如集群等可以被称为衍生,因为他们的模型 P(d)
(没有类:P)
PS:部分答案是从 来源
我的两个美分: 判别方法突出显示差异 生成的方法不注重差异;他们试图建立一个模型,它代表的类。 在这两个之间的重叠。 理想的情况是这两种方法应使用:一个将是有益的发现相似,另一个将是有益的发现DIS-相似之处。
一个生成算法模型将从训练数据完全学习并且将预测的响应。
一个判别算法的工作就是进行分类或2个的结果之间进行区分。
以前所有的答案都是伟大的,我想多说一点堵塞。
从生成算法模型,我们可以推导出任何分布;而我们只能得到条件分布P(Y | X)从判别算法模型(或者我们可以说,他们是唯一的,用于识别Ÿ的标签很有用),这就是为什么它被称为判别模型。该判别模型并不假定X是独立给出的Y($ X_I \ PERP X _ { - I} | Y $),因此通常用于计算条件分布更加强大。