可生成式和可生成式的区别是什么 有识别力的算法?
当前回答
我的观点是: 歧视性的方法突出了差异 生成方法不关注差异;他们试图建立一个能代表班级的模型。 两者之间有重叠之处。 理想情况下,两种方法都应该使用:一种有助于发现相似之处,另一种有助于发现不同之处。
其他回答
生成算法对数据如何生成进行建模,以便对信号进行分类。它提出了一个问题:根据我的世代假设,哪个类别最有可能产生这个信号?
判别算法并不关心数据是如何产生的,它只是对给定的信号进行分类。
这篇文章帮助我理解了这个概念。
总之,
两者都是概率模型,这意味着它们都使用概率(准确地说,是条件概率)来计算未知数据的类别。 生成式分类器在数据集上应用联合PDF和贝叶斯定理,并使用这些值计算条件概率。 判别分类器直接在数据集上找到条件概率
一些不错的阅读材料:条件概率,联合PDF
在实践中,模型的使用如下。
在判别模型中,为了从训练例x中预测标签y,你必须评估:
它只是在考虑x的情况下选择最有可能的类别y。这就像我们试图在类别之间建立决策边界的模型。这种行为在神经网络中非常明显,其中计算的权重可以被视为一个复杂形状的曲线,将空间中一个类的元素隔离开来。
现在,用贝叶斯法则,把方程中的替换为。因为你只对arg max感兴趣,你可以擦掉分母,这对每个y都是一样的,所以,你剩下
这是你在生成模型中使用的方程。
在第一种情况下,你有条件概率分布p(y|x),它模拟了类之间的边界,在第二种情况下,你有联合概率分布p(x, y),因为p(x | y) p(y) = p(x, y),它显式地模拟了每个类的实际分布。
对于联合概率分布函数,给定一个y,你可以计算(“生成”)它各自的x。因此,它们被称为“生成”模型。
简短的回答
这里的许多答案都依赖于广泛使用的数学定义[1]:
判别模型直接学习条件预测分布p(y|x)。 生成模型学习联合分布p(x,y)(或者说,p(x|y)和p(y))。 预测分布p(y|x)可以用贝叶斯规则得到。
Although very useful, this narrow definition assumes the supervised setting, and is less handy when examining unsupervised or semi-supervised methods. It also doesn't apply to many contemporary approaches for deep generative modeling. For example, now we have implicit generative models, e.g. Generative Adversarial Networks (GANs), which are sampling-based and don't even explicitly model the probability density p(x) (instead learning a divergence measure via the discriminator network). But we call them "generative models” since they are used to generate (high-dimensional [10]) samples.
一个更广泛、更基本的定义[2]似乎同样适合这个一般性问题:
判别模型学习类之间的边界。 所以他们可以区分不同类型的数据实例。 生成模型学习数据的分布。 因此它们可以生成新的数据实例。
图片来源
仔细观察
即便如此,这个问题还是暗示了一种错误的二分法。生成-判别“二分法”实际上是一个频谱,您甚至可以平滑地在[4]之间插入。
因此,这种区分变得武断和令人困惑,特别是当许多流行的模型并没有整齐地归入其中一个或另一个时[5,6],或者实际上是混合模型(经典的“判别”和“生成”模型的组合)。
尽管如此,这仍然是一个非常有用和常见的区别。我们可以列出一些生成式和判别式模型的明确例子,既有标准的,也有最近的:
生成:朴素贝叶斯,潜狄利克雷分配(LDA),生成对抗网络(GAN),变分自编码器(VAE),归一化流。 判别:支持向量机(SVM),逻辑回归,大多数深度神经网络。
还有很多有趣的工作深入研究了生成-判别划分[7]和频谱[4,8],甚至将判别模型转换为生成模型[9]。
最后,定义在不断变化,尤其是在这个快速发展的领域:)最好对它们有所保留,甚至可以为自己和他人重新定义它们。
来源
Possibly originating from "Machine Learning - Discriminative and Generative" (Tony Jebara, 2004). Crash Course in Machine Learning by Google The Generative-Discriminative Fallacy "Principled Hybrids of Generative and Discriminative Models" (Lasserre et al., 2006) @shimao's question Binu Jasim's answer Comparing logistic regression and naive Bayes: cs.cmu.edu/~tom/mlbook/NBayesLogReg.pdf "On Discriminative vs. Generative classifiers" Comment on "On Discriminative vs. Generative classifiers" https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf "Your classifier is secretly an energy-based model" (Grathwohl et al., 2019) Stanford CS236 notes: Technically, a probabilistic discriminative model is also a generative model of the labels conditioned on the data. However, the term generative models is typically reserved for high dimensional data.
想象一下,你的任务是将演讲分类为一种语言。
你可以通过以下任何一种方式:
学习每一种语言,然后用你刚刚学到的知识对它进行分类
or
在不学习语言的情况下确定语言模型的差异,然后对语音进行分类。
第一种是生成方法,第二种是判别方法。
查看参考资料了解更多细节:http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf。
推荐文章
- 如何在Python中进行热编码?
- 段树、区间树、二叉索引树和范围树之间有什么区别?
- 给定一个数字,找出下一个与原始数字具有完全相同的数字集的更高的数字
- HSL到RGB的颜色转换
- 使用Java在原语数组中查找最大/最小值
- 好的Java图算法库?
- 如何将数据分成3组(训练、验证和测试)?
- 什么时候我应该使用Kruskal而不是Prim(反之亦然)?
- 取一个集中在中心的随机数
- 如何在PyTorch中初始化权重?
- 如何计算圆周长上的一点?
- 从整数流中找到运行中位数
- 在日历应用程序中建模重复事件的最佳方法是什么?
- 在任何情况下,您更喜欢高大o时间复杂度算法而不是低大o时间复杂度算法吗?
- 关于如何将数据集划分为训练集和验证集,是否存在经验法则?