生成、判别以及参数化、非参数化算法/模型的区别

Stack Overflow上,我找到了关于生成和判别算法的以下解释:

“生成算法通过建模数据的生成过程来对信号进行分类。它提出的问题是:基于我的生成假设,哪个类别最有可能生成这个信号?

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

这里是关于参数化和非参数化算法的定义

“参数化:数据是从特定形式的概率分布中抽取的,具体到未知的参数。非参数化:数据是从某个未指定的概率分布中抽取的。”

那么,我们可以说生成和参数化算法假设存在一个基础模型,而判别和非参数化算法不假设任何模型吗?

谢谢。


回答:

假设你有输入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。

有用的参考资料:这篇(非常短的)论文由Tom Minka撰写。这篇开创性的论文由Andrew Ng和Michael Jordan撰写。

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

相比之下,非参数化模型中的参数数量可以随着数据量的增加而增长。考虑对人们身高进行诱导分布,在每个观察到的样本上放置一个正态分布,均值由测量值给出,标准差固定。新的身高的边缘分布然后是一个正态分布的混合,每个新数据点都会增加混合成分的数量。这是一个关于人们身高的非参数化模型。这个具体的例子被称为核密度估计。流行的(但更复杂的)非参数化模型包括用于回归的高斯过程和Dirichlet过程。

关于非参数化的相当不错的教程可以在这里找到,它构建了中国餐馆过程作为有限混合模型的极限。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注