概述
监督学习方法可以分为生成方法(generative approach)和判别方法(discriminative approach),所学到的模型分别称为生成模型(generative model)和判别模型(discriminative model)。
常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、 boosting、条件
随机场、神经网络等。
常见的生产模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、 LDA、 Restricted
Boltzmann Machine 等。
判别方法由数据直接学习决策函数
或者条件概率分布
作为预测的模型,即判别模型。判别方法关心的是对给定输入
,应该预测什么样的输出
。
比如说要确定一只羊是山羊还是绵羊,用判别模型的方法是先从历史数据中学习到模型,
然后通过提取这只羊的特征来预测出这只羊是山羊的概率,还是绵羊的概率。
生成方法由数据学习输入和输出联合概率分布
,然后求出后验概率分布
作为预测的模型,即生成模型。这里以朴素贝叶斯为例,我们要求的目标可以通过:
求出输入输出的联合概率分布,然后通过贝叶斯公式:
求出后验概率分布。
对于上面的例子我们换种思路,我们可以根据山羊的特征首先学习出一个山羊模型,然后根据绵羊的特征学习出一个绵羊模型。然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。
由于我们关注的是 y 的离散值结果中哪个概率大(比如山羊概率和绵羊概率哪个大),而并不是关心具体的概率,因此上式改写为:
其中
称为条件概率(class-conditional probability),或称为“似然”(likelihood),
称为先验(prior)概率。
是用于归一化的"证据"因子。对于给定样本
。证据因子
与类标记无关,因此估计
的问题就转化为如何基于训练数据来估计先验
和似然
。
判别模型: 优点: 1)仅需要有限的样本。节省计算资源,需要的样本数量也少于生成模型。 2)能清晰的分辨出多类或某一类与其他类之间的差异特征,准确率往往较生成模型高。 3)由于直接学习
,而不需要求解类别条件概率,所以允许我们对输入进行抽象(比如降维、构造等),从而能够简化学习问题。
缺点:
1)不能反映训练数据本身的特性。能力有限,可以告诉你的是1还是2,但没有办法把整个场景描述出来。
2)没有生成模型的优点。
3)黑盒操作: 变量间的关系不清楚,不可视。
主要应用:
Image and document classification
Biosequence analysis
Time series prediction
生成模型: 优点: 1)生成给出的是联合分布
,不仅能够由联合分布计算后验分布
(反之则不行),还可以给出其他信息,比如可以使用
来计算边缘分布
。如果一个输入样本的边缘分布
很小的话,那么可以认为学习出的这个模型可能不太适合对这个样本进行分类,分类效果可能会不好,这也是所谓的异常值检测(outlier detection)。 2)生成模型收敛速度比较快,即当样本数量较多时,生成模型能更快地收敛于真实模型。 3)生成模型能够应付存在隐变量的情况,比如混合高斯模型就是含有隐变量的生成方法。
4)研究单类问题比判别模型灵活性强
缺点: 1)联合分布能够提供更多的信息,但也需要更多的样本和更多计算,尤其是为了更准确估计类别条件分布,需要增加样本的数目,而且类别条件概率的许多信息是我们做分类用不到,因而如果我们只需要做分类任务,就浪费了计算资源。 2)另外,实践中多数情况下判别模型效果更好。
NLP:
Traditional rule-based or Boolean logic systems (Dialog and Lexis-Nexis) are giving way to statistical approaches (Markov models and stochastic context grammars)
Medical Diagnosis: QMR knowledge base, initially a heuristic expert systems for reasoning about diseases and symptoms been augmented with decision theoretic formulation Genomics and Bioinformatics
Sequences represented as generative HMMs
两者关系
由生成模型可以得到判别模型,但由判别模型得不到生成模型。