浅谈生成式和判别式模型的区别和联系

我们假设有一些已知的训练数据,包括属性集合X和对应的类别标记Y。现在有一个新样本,我们想要预测它的类别。

我们的目标是通过求取条件概率的最大值来对新样本进行分类。

1.1 判别式模型:

判别式模型通过训练数据得到一个分类函数和决策边界,例如使用支持向量机(SVM)模型得到一个分界面,然后直接计算条件概率,选择最大概率对应的类别作为新样本的分类结果。判别式模型只对条件概率进行建模,学习不同类别之间的最优边界,无法反映训练数据本身的特性,能力有限,它只能告诉我们分类的类别。

1.2 生成式模型:

生成式模型一般为每个类别建立一个模型,有多少个类别就建立多少个模型。举个例子,如果类别标签有"猫"、"狗"和"猪",首先根据猫的特征学习出一个猫的模型,然后根据狗的特征学习出一个狗的模型,以此类推。之后,分别计算新样本与三个类别的联合概率,然后根据贝叶斯公式计算出条件概率。最后,选择三个类别中概率最大的类别作为样本的分类结果。

1.3 两个模型的总结:

无论是生成式模型还是判别式模型,它们最终的判断依据都是条件概率。但是生成式模型先计算了联合概率,再由贝叶斯公式计算得到条件概率。因此,生成式模型可以体现更多数据本身的分布信息,具有更广泛的适用性。

用例子说明概念:

2.1 山羊和绵羊的例子:

判别式模型:如果要确定一只羊是山羊还是绵羊,使用判别式模型的方法是从历史数据中学习模型,然后通过提取这只羊的特征来预测它是山羊的概率和绵羊的概率。

生成式模型:生成式模型首先根据山羊的特征学习出一个山羊的模型,然后根据绵羊的特征学习出一个绵羊的模型。之后,从这只羊中提取特征,将特征放入山羊模型中计算山羊的概率,再放入绵羊模型中计算绵羊的概率,最终选择概率较大的类别作为分类结果。

生成式模型和判别式模型在实际应用中有一些区别:

  1. 数据需求:生成式模型通常需要更多的训练数据,因为它需要学习每个类别的分布信息。而判别式模型则更加关注分类边界,对训练数据的要求相对较少。

  2. 可解释性:生成式模型可以提供更多的信息,包括类别之间的关联关系和数据的分布情况。因此,生成式模型在某些情况下更容易解释和理解,可以用于生成新的样本数据。判别式模型则更专注于分类决策,对于简单的分类任务而言,其结果可能更直观。

  3. 数据缺失处理:生成式模型对于缺失数据的处理较为灵活,可以通过填充缺失数据来生成完整的样本。判别式模型对于缺失数据的处理相对较困难,需要额外的处理方法。

  4. 模型复杂度:生成式模型通常具有更高的模型复杂度,因为它需要建立多个类别的分布模型。判别式模型相对简单,只需要建立一个分类函数或决策边界。

  5. 应用领域:生成式模型在文本生成、图像生成等任务中表现较好。判别式模型在垃圾邮件分类、情感分析等任务更常见。

总而言之: 二者都是建模条件概率,最大化后验条件概率,但是生成式模型利用联合概率这一桥来间接的完成。

P(Y|X)=\frac{P(Y,X)}{P(X)}

OVER!!!

你可能感兴趣的:(机器学习,机器学习,人工智能)