生成与判别

机器算法验证 机器学习 生成模型
2022-01-30 11:38:27

我知道生成的意思是“基于 ”,而区分的意思是“基于 ”,但我对以下几点感到困惑:P(x,y)P(y|x)

  • 维基百科(+ 网络上的许多其他热门内容)将 SVM 和决策树等事物分类为具有区分性。但这些甚至没有概率解释。这里的歧视是什么意思?歧视性是否意味着任何不能产生的东西?

  • 朴素贝叶斯 (NB) 是生成的,因为它捕获,因此您有(以及)。通过简单地以类似的方式计算(与 NB 相同的独立性假设,使得,其中的 MLE只是频率)?P(x|y)P(y)P(x,y)P(y|x)P(x)P(x)=P(x0)P(x1)...P(xd)P(xi)

  • 我知道判别模型往往优于生成模型。使用生成模型有什么实际用途?能够生成/模拟数据被引用,但是什么时候出现?我个人只有回归、分类、协作方面的经验。过滤结构化数据,那么这里的用途与我无关吗?“缺失数据”参数(表示缺失)似乎只给你训练数据的优势(当你实际上知道并且不需要边缘化以获得相对愚蠢的无论如何你都可以直接估计),即使这样,插补也更加灵活(不仅可以基于P(xi|y)xiyP(y)P(xi)y但其他也是如此)。xi

  • 来自维基百科的完全矛盾的引用是怎么回事?“在表达复杂学习任务中的依赖关系方面,生成模型通常比判别模型更灵活”与“判别模型通常可以表达观察变量和目标变量之间更复杂的关系”

让我思考这个问题的相关问题。

3个回答

判别模型和生成模型根本区别在于:

  • 判别模型学习类之间的(硬或软)边界
  • 生成模型对各个类分布进行建模

要回答您的直接问题:

  • 支持向量机和决策树是有区别的,因为它们学习了类之间的明确边界。SVM 是一个最大边距分类器,这意味着它在给定核的情况下学习一个决策边界,该边界使两个类别的样本之间的距离最大化。样本与学习决策边界之间的距离可用于使 SVM 成为“软”分类器。DT 通过以最大化信息增益(或其他标准)的方式递归地划分空间来学习决策边界。

  • 以这种方式可以生成逻辑回归的生成形式。请注意,您并没有使用完整的生成模型来做出分类决策。

  • 根据应用的不同,生成模型可以提供许多优势。假设您正在处理非平稳分布,其中在线测试数据可能由与训练数据不同的基础分布生成。检测分布变化并相应地更新生成模型通常比对 SVM 中的决策边界执行此操作更直接,尤其是在需要无监督在线更新的情况下。判别模型通常也不能用于异常值检测,尽管生成模型通常可以。当然,对于特定应用程序来说,什么是最好的应该根据应用程序进行评估。

  • (这句话令人费解,但这是我认为它想说的)生成模型通常被指定为概率图形模型,它提供了数据集中独立关系的丰富表示。判别模型不能提供数据集中特征和类之间关系的如此清晰的表示。他们没有使用资源对每个类进行全面建模,而是专注于对类之间的边界进行丰富的建模。给定相同数量的容量(例如,执行模型的计算机程序中的位),因此判别模型可能会产生比生成模型更复杂的边界表示。

(hamner 的回答很棒,所以为了完整起见,只需从 MetaOptimize 交叉发布我的回答。)

我认为生成算法提供了如何实际生成数据的模型(我认为它们为您提供了的模型,而不是,虽然我猜它是等价的),而判别算法只是提供分类拆分(不一定以概率方式)。P(X|Y)P(Y)P(X,Y)

例如,比较高斯混合模型和 k 均值聚类。在前者中,我们有一个关于如何生成点的很好的概率模型(以一定的概率选择一个组件,然后通过从该组件的高斯分布中采样来发出一个点),但对于后者,我们真的无话可说。

请注意,生成算法具有判别属性,因为一旦有了 ),尽管判别算法并不真正具有生成属性。P(Y|X)P(X|Y)P(Y)

1:判别算法允许您对点进行分类,而无需提供如何实际生成点的模型。所以这些可能是:

  • 概率算法尝试学习(例如逻辑回归);P(Y|X)
  • 或者尝试直接学习从点到类的映射的非概率算法(例如,感知器和支持向量机只是给你一个分离的超平面,但没有生成新点的模型)。

所以是的,判别分类器是任何非生成的分类器。

另一种思考方式是生成算法对模型做出某种结构假设,但判别算法做出的假设更少。例如,朴素贝叶斯假设您的特征具有条件独立性,而逻辑回归(朴素贝叶斯的判别“对应物”)则没有。

2:是的,朴素贝叶斯是生成的,因为它捕获了例如,如果我们知道以及英语和法语单词的概率,那么我们现在可以通过首先选择文档的语言来生成一个新文档 (英语的概率为 0.7,法语的概率为 0.3),然后根据所选语言的单词概率生成单词。P(X|Y)P(Y)P(Y=English)=0.7P(Y=French)=0.3

是的,我想您可以以这种方式使逻辑回归生成,但这只是因为您向逻辑回归中添加了一些尚不存在的东西。也就是说,当您执行朴素贝叶斯分类时,您直接计算(右边的项,允许您生成新文档);但是当你在逻辑回归中计算时,你并没有计算这两件事,你只是将逻辑函数应用于点积。P(Y|X)P(X|Y)P(Y)P(X|Y)P(Y)P(Y|X)

3:生成模型在较小的数据集上通常优于判别模型,因为它们的生成假设在您的模型上放置了一些防止过度拟合的结构例如,让我们考虑朴素贝叶斯与逻辑回归。朴素贝叶斯假设当然很少得到满足,因此随着数据集的增长,逻辑回归往往会优于朴素贝叶斯(因为它可以捕获朴素贝叶斯无法捕获的依赖关系)。但是当您只有一个小数据集时,逻辑回归可能会发现实际上并不存在的虚假模式,因此朴素贝叶斯在您的模型中充当一种正则化器,以防止过度拟合。Andrew Ng 和 Michael Jordan 发表了一篇关于判别式与生成式分类器的论文,对此进行了更多讨论。

4:我认为这意味着如果您正确指定模型并且模型实际成立,生成模型实际上可以学习数据的底层结构,但是如果您的生成假设不满足,判别模型可以胜过(因为判别算法是与特定结构的联系较少,现实世界是混乱的,无论如何假设很少能完全满足)。(如果它们令人困惑,我可能会忽略这些引号。)

作为上述答案的补充点,当算法的目的只是分类时,判别方法可能比生成方法更好且成本更低,因为遵循生成方法来建模输入分布可能会导致需要太多的训练数据来模型分布中的复杂性对于计算决策所需的后验并不重要。