生成算法和判别算法有什么区别?
问题内容:
请帮助我理解 生成 算法和 判别 算法之间的 区别 ,请记住我只是一个初学者。
问题答案:
假设您有输入数据,x
并且想要将数据分类为label 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)
对。
从上面的描述中,您可能会认为生成模型更通用,因此更好,但它并非如此简单。本文是关于区分性分类器与生成性分类器的非常受欢迎的参考,但它的工作量很大。总体要点是,在分类任务中,区分模型通常要优于生成模型。