可生成式和可生成式的区别是什么 有识别力的算法?
当前回答
不同的模型归纳如下表:
图片来源:监督学习小抄-斯坦福CS 229(机器学习)
其他回答
之前的答案都很好,我想再补充一点。
从生成算法模型中,我们可以推导出任何分布;而我们只能从判别算法模型中得到条件分布P(Y|X)(或者我们可以说它们只对判别Y的标签有用),这就是为什么它被称为判别模型。判别模型不假设X是独立的给定Y($X_i \perp X_{-i} | Y$),因此通常更强大的计算条件分布。
这篇文章帮助我理解了这个概念。
总之,
两者都是概率模型,这意味着它们都使用概率(准确地说,是条件概率)来计算未知数据的类别。 生成式分类器在数据集上应用联合PDF和贝叶斯定理,并使用这些值计算条件概率。 判别分类器直接在数据集上找到条件概率
一些不错的阅读材料:条件概率,联合PDF
想象一下,你的任务是将演讲分类为一种语言。
你可以通过以下任何一种方式:
学习每一种语言,然后用你刚刚学到的知识对它进行分类
or
在不学习语言的情况下确定语言模型的差异,然后对语音进行分类。
第一种是生成方法,第二种是判别方法。
查看参考资料了解更多细节:http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf。
下面是CS299课堂讲稿中最重要的部分(作者:Andrew Ng),它帮助我理解了判别学习算法和生成学习算法之间的区别。
假设我们有两类动物,大象(y = 1)和狗(y = 0), x是动物的特征向量。
给定一个训练集,像逻辑回归或感知器算法这样的算法(基本上)试图找到一条直线——也就是一个决策边界——将大象和狗分开。然后,分类 一种新动物,比如大象或狗,它会检查它的哪一边 决定其所处的边界,并据此做出预测。我们称之为判别学习算法。
这里有一个不同的方法。首先,看看大象,我们可以建立一个 大象的模型。然后,看着狗,我们可以建立一个 单独的狗狗模型。最后,为了给一种新动物分类, 我们可以将新动物与大象模型相匹配,并将其与 狗的模型,看看新动物是否更像大象 或者更像我们在训练场上看到的狗。我们称之为生成式学习算法。
一般来说,机器学习社区有一个惯例,那就是不要学你不想学的东西。例如,考虑一个分类问题,目标是为给定的x输入分配y个标签。如果我们使用生成模型
p(x,y)=p(y|x).p(x)
我们必须为p(x)建模,而p(x)与当前任务无关。像数据稀疏性这样的实际限制将迫使我们用一些弱独立性假设来建模p(x)。因此,我们直观地使用判别模型进行分类。
推荐文章
- 如何在Python中进行热编码?
- 段树、区间树、二叉索引树和范围树之间有什么区别?
- 给定一个数字,找出下一个与原始数字具有完全相同的数字集的更高的数字
- HSL到RGB的颜色转换
- 使用Java在原语数组中查找最大/最小值
- 好的Java图算法库?
- 如何将数据分成3组(训练、验证和测试)?
- 什么时候我应该使用Kruskal而不是Prim(反之亦然)?
- 取一个集中在中心的随机数
- 如何在PyTorch中初始化权重?
- 如何计算圆周长上的一点?
- 从整数流中找到运行中位数
- 在日历应用程序中建模重复事件的最佳方法是什么?
- 在任何情况下,您更喜欢高大o时间复杂度算法而不是低大o时间复杂度算法吗?
- 关于如何将数据集划分为训练集和验证集,是否存在经验法则?