生成、判别和参数、非参数算法/模型之间的区别

Posted

技术标签:

【中文标题】生成、判别和参数、非参数算法/模型之间的区别【英文标题】:Difference between Generative, Discriminating and Parametric, Nonparametric Algorithm/Model 【发布时间】:2014-07-12 08:36:05 【问题描述】:

在SO这里我找到了生成算法和判别算法的以下解释:

“生成算法对如何生成数据进行建模以对信号进行分类。它提出了一个问题:根据我的生成假设,哪个类别最有可能生成此信号?

判别算法不关心数据是如何生成的,它只是对给定信号进行分类。”

而here是参数和非参数算法的定义

“参数:数据是从特定形式的概率分布中提取的,直到未知参数。 非参数:数据来自某个未指定的概率分布。 "

所以本质上我们可以说生成和参数算法假设基础模型,而判别和非参数算法不假设任何模型吗?

谢谢。

【问题讨论】:

【参考方案1】:

这里我只谈论参数/非参数。生成/判别是一个单独的概念。

非参数模型意味着您不对数据的分布做出任何假设。例如,在现实世界中,数据不会 100% 遵循高斯、贝塔、泊松、威布尔等理论分布。这些分布是为我们对数据建模的需要而开发的。

另一方面,参数模型试图使用参数来完全解释我们的数据。在实践中,这种方式是首选,因为它更容易定义模型在不同情况下的行为方式(例如,我们已经知道模型的导数/梯度,当我们在泊松中将速率设置得太高/太低时会发生什么等)

【讨论】:

【参考方案2】:

假设您有输入 X(可能是向量)和输出 Y(可能是单变量)。您的目标是在给定 X 的情况下预测 Y。

生成方法使用联合概率 p(X,Y) 的模型来确定 P(Y|X)。因此,可以给定一个具有已知参数的生成模型,从分布 p(X,Y) 中联合采样,以生成输入 X 和输出 Y 的新样本(注意它们是根据假设的而不是真实的分布进行分布的,如果你做这个)。将此与仅具有 p(Y|X) 形式的模型的判别方法进行对比。因此,提供输入 X,他们可以对 Y 进行采样;但是,他们不能采样新的 X。

两者都假设一个模型。然而,判别式方法仅假设 Y 如何依赖于 X 而不是 X 的模型。生成式方法对两者都进行建模。因此,给定固定数量的参数,您可能会争辩(很多人都认为),使用它们来建模您关心的东西 p(Y|X) 比 X 的分布更容易,因为您将始终获得你想知道 Y 的 X。

有用的参考资料:this (very short) paper Tom Minka。 This seminal paper Andrew Ng 和 Michael Jordan。

除非您有更多的统计经验,否则参数模型和非参数模型之间的区别可能会更难掌握。无论观察到多少数据点,参数模型都具有固定且有限数量的参数。大多数概率分布是参数化的:考虑一个变量 z,它是人的身高,假设为正态分布。随着您观察更多人,您对参数 \mu 和 \sigma(z 的均值和标准差)的估计会变得更加准确,但您仍然只有两个参数。

相比之下,非参数模型中的参数数量会随着数据量的增加而增长。考虑一个在人们身高上的诱导分布,它在每个观察到的样本上放置一个正态分布,平均值由测量值和固定标准偏差给出。然后,新高度上的边际分布是正态分布的混合,并且混合成分的数量随着每个新数据点的增加而增加。这是一个人身高的非参数模型。这个特定的例子称为核密度估计器。流行(但更复杂)的非参数模型包括回归的高斯过程和狄利克雷过程。

可以在here 找到一个相当不错的非参数教程,它将中国餐厅过程构造为有限混合模型的极限。

【讨论】:

【参考方案3】:

我不认为你可以说出来。例如。线性回归是一种判别算法 - 您对 P(Y|X) 做出假设,然后直接从数据中估计参数,而不对 P(X) 或 P(X|Y) 做出任何假设,就像在生成模型的情况。但同时,基于线性回归的推断,包括参数的属性,是一种参数估计,因为存在关于未观察到的错误行为的假设。

【讨论】:

以上是关于生成、判别和参数、非参数算法/模型之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

生成模型与判别模型

监督学习模型分类 生成模型 判别模型 概率模型 非概率模型 参数模型 非参数模型

生成模型 VS 判别模型 (含义区别对应经典算法)

tflearn kears GAN官方demo代码——本质上GAN是先训练判别模型让你能够识别噪声,然后生成模型基于噪声生成数据,目标是让判别模型出错。GAN的过程就是训练这个生成模型参数!!!(代码

算法工程师笔/面试总结

判别模型生成模型与朴素贝叶斯方法