Algorithm 生成式算法和判别式算法之间的区别是什么?
生成的和Algorithm 生成式算法和判别式算法之间的区别是什么?,algorithm,machine-learning,generative,Algorithm,Machine Learning,Generative,生成的和 区分性算法?假设您有输入数据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 y=0 y=1 ----------
区分性算法?假设您有输入数据
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
y=0 y=1
-----------
x=1 | 1 0
x=2 | 1/2 1/2
p(y | x)
is
y=0 y=1
-----------
x=1 | 1/2 0
x=2 | 1/4 1/4
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)
对
从上面的描述中,您可能会认为生成模型更普遍有用,因此更好,但它并没有那么简单。这是一个非常流行的关于区分量词和生成量词的参考文献,但它相当沉重。总体要点是,鉴别模型在分类任务中通常优于生成模型。A生成算法对数据的生成进行建模,以便对信号进行分类。它提出了一个问题:根据我的世代假设,哪一类最有可能产生这种信号
判别算法不关心数据是如何生成的,它只是对给定信号进行分类。一般来说,机器学习界有一种做法,就是不要学习你不想学习的东西。例如,考虑一个分类问题,其中一个目标是将Y标签分配给给定的X输入。如果我们使用生成模型
p(x,y)=p(y|x).p(x)
我们必须建立与手头任务无关的p(x)模型。像数据稀疏性这样的实际限制将迫使我们用一些弱独立性假设来建模
p(x)
。因此,我们直观地使用判别模型进行分类。想象一下,您的任务是将一种语音分类为一种语言
您可以通过以下任一方式进行:
查看此参考以了解更多详细信息:。在实践中,使用的模型如下所示 在判别模型中,要根据训练示例预测标签
y
,必须评估:
考虑到x
,它只选择最可能的类y
。这就像我们试图对类之间的决策边界进行建模一样。这种行为在神经网络中非常明显,在神经网络中,计算出的权重可以被视为一条复杂形状的曲线,将空间中类的元素隔离开来
现在,使用Bayes规则,让我们用替换方程中的。因为您只对arg max感兴趣,所以可以去掉分母,这对于每个y
都是一样的。那么,你只剩下
这是您在生成模型中使用的等式
在第一种情况下,你有条件概率分布p(y | x)
,它模拟了类之间的边界,在第二种情况下,你有联合概率分布p(x,y)
,因为p(x | y)p(y)=p(x,y)
,它明确地模拟了每个类的实际分布
使用联合概率分布函数,给定一个
y
,您可以计算(“生成”)其各自的x
。因此,它们被称为“生成性”模型。这是一个补充信息点,与上面StompChicken的答案吻合
区别性模型和生成性模型之间的基本区别是:
区分型模型学习班级之间的(硬或软)界限
生成模型对各个阶级的分布进行建模
编辑:
生成模型是能够生成数据的模型。它对特征和类别(即完整数据)进行建模
如果我们建模p(x,y)
:我可以使用这个概率分布来生成数据点-因此所有建模p(x,y)
的算法都是生成的
生成模型的定义
- 朴素贝叶斯模型
和p(c)
-其中p(d | c)
是类,c
是特征向量 而且,d
因此,在某些形式的模型中,朴素贝叶斯,p(c,d)=p(c)*p(d | c)
p(c,d)
- 贝叶斯网
- 马尔可夫网