首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >判别模型与生成模型

判别模型与生成模型

作者头像
Coggle数据科学
发布2019-08-29 13:20:25
9310
发布2019-08-29 13:20:25
举报
文章被收录于专栏:Coggle数据科学Coggle数据科学

概述

监督学习方法可以分为生成方法(generative approach)和判别方法(discriminative approach),所学到的模型分别称为生成模型(generative model)和判别模型(discriminative model)。

常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、 boosting、条件

随机场、神经网络等。

常见的生产模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、 LDA、 Restricted

Boltzmann Machine 等。

判别模型

判别方法由数据直接学习决策函数

f(x)
f(x)

或者条件概率分布

P(y|x)
P(y|x)

作为预测的模型,即判别模型。判别方法关心的是对给定输入

x
x

,应该预测什么样的输出

y
y

比如说要确定一只羊是山羊还是绵羊,用判别模型的方法是先从历史数据中学习到模型,

然后通过提取这只羊的特征来预测出这只羊是山羊的概率,还是绵羊的概率。

生成模型

生成方法由数据学习输入和输出联合概率分布

P(x,y)
P(x,y)

,然后求出后验概率分布

P(y|x)
P(y|x)

作为预测的模型,即生成模型。这里以朴素贝叶斯为例,我们要求的目标可以通过:

P(x,y) =P(x|y) P(y)
P(x,y) =P(x|y) P(y)

求出输入输出的联合概率分布,然后通过贝叶斯公式:

P(y|x)=\frac{P(x|y) P(y)}{P(x)}
P(y|x)=\frac{P(x|y) P(y)}{P(x)}

求出后验概率分布。

对于上面的例子我们换种思路,我们可以根据山羊的特征首先学习出一个山羊模型,然后根据绵羊的特征学习出一个绵羊模型。然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。

由于我们关注的是 y 的离散值结果中哪个概率大(比如山羊概率和绵羊概率哪个大),而并不是关心具体的概率,因此上式改写为:

arg\max_{y}P(y|x)=arg\max_{y}\frac{P(x|y) P(y)}{P(x)} =arg\max_{y}{P(x|y) P(y)}
arg\max_{y}P(y|x)=arg\max_{y}\frac{P(x|y) P(y)}{P(x)} =arg\max_{y}{P(x|y) P(y)}

其中

P(x|y)
P(x|y)

称为条件概率(class-conditional probability),或称为“似然”(likelihood),

P(y)
P(y)

称为先验(prior)概率。

P(x)
P(x)

是用于归一化的"证据"因子。对于给定样本

x
x

。证据因子

P(x)
P(x)

与类标记无关,因此估计

P(y|x)
P(y|x)

的问题就转化为如何基于训练数据来估计先验

P(y)
P(y)

和似然

P(x|y)
P(x|y)


判别模型与生成模型比较

判别模型: 优点: 1)仅需要有限的样本。节省计算资源,需要的样本数量也少于生成模型。 2)能清晰的分辨出多类或某一类与其他类之间的差异特征,准确率往往较生成模型高。 3)由于直接学习

P(y|x)
P(y|x)

,而不需要求解类别条件概率,所以允许我们对输入进行抽象(比如降维、构造等),从而能够简化学习问题。

缺点:

1)不能反映训练数据本身的特性。能力有限,可以告诉你的是1还是2,但没有办法把整个场景描述出来。

2)没有生成模型的优点。

3)黑盒操作: 变量间的关系不清楚,不可视。

主要应用:

Image and document classification

Biosequence analysis

Time series prediction

生成模型: 优点: 1)生成给出的是联合分布

P(x,y)
P(x,y)

,不仅能够由联合分布计算后验分布

P(y|x)
P(y|x)

(反之则不行),还可以给出其他信息,比如可以使用

P(x)=\sum_{i=1}^{k}{P(x|y_{i})} P(y_i )
P(x)=\sum_{i=1}^{k}{P(x|y_{i})} P(y_i )

来计算边缘分布

P({x} )
P({x} )

。如果一个输入样本的边缘分布

P({x} )
P({x} )

很小的话,那么可以认为学习出的这个模型可能不太适合对这个样本进行分类,分类效果可能会不好,这也是所谓的异常值检测(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

两者关系

由生成模型可以得到判别模型,但由判别模型得不到生成模型。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 判别模型
  • 生成模型
  • 判别模型与生成模型比较
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档