请帮助我理解 生成 算法和 判别 算法之间的 区别 ,请记住我只是一个初学者。
假设您有输入数据,x并且想要将数据分类为label y。生成模型学习 联合 概率分布,p(x,y)而判别模型学习 条件 概率分布p(y|x)-您应将其理解为 “y给定概率x”。
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(x,y)也可以用于其他目的。例如,您可以p(x,y)用来 生成 可能的(x,y)对。
从上面的描述中,您可能会认为生成模型更通用,因此更好,但它并非如此简单。本文是关于区分性分类器与生成性分类器的非常受欢迎的参考,但它的工作量很大。总体要点是,在分类任务中,区分模型通常要优于生成模型。