现在的位置: 首页 > 综合 > 正文

[转] 判别模型和生成模型的区别

2012年10月24日 ⁄ 综合 ⁄ 共 1552字 ⁄ 字号 评论关闭

原文网址:http://www.zhan5zhan.com/post/14.html

    什么是判别模型(Discriminative Model)和生成模型(Generative Model)? 一个通俗易懂的解释判别模型和生成模型可以点击这里查看,这里我摘录如下:

    Let's say you have input data x and you want to classify the data into labels y. A generative model(生成模型) learns the joint probability distribution(联合概率分布) p(x,y) and adiscriminative model(判别模型) learns the conditional probability distribution(条件概率分布) p(y|x) - which you should read as 'the probability of y given x'.

 

    关于生成模型和判别模型,我发现的另外一个解释我摘录如下,原文点击这里

    判别模型Discriminative Model,又可以称为条件模型,或条件概率模型。估计的是条件概率分布(conditional distribution), p(class|context)。

    生成模型Generative Model,又叫产生式模型。估计的是联合概率分布(joint probability distribution),p(class, context)=p(class|context)*p(context)。

 

    另外对于生成模型和判别模型,总结如下:
    1.生成模型和判别模型的定义

      记o为观察序列,s为状态序列。对o和s进行统计建模,通常有两种方式:

      (1) 生成模型 (又叫产生模型): 构建o和s的联合分布p(s,o)

      (2) 判别模型 (又叫条件概率模型, 也叫条件模型): 构建o和s的条件分布p(s|o)

    2.判别模型和生成模型的对比

      (1) 训练时,二者优化准则不同:生成模型优化训练数据的联合分布概率,而判别模型优化训练数据的条件分布概率。从这里可以看出,判别模型与序列标记问题有较好的对应性。

      (2) 对于观察序列的处理不同:生成模型中,观察序列作为模型的一部分,而判别模型中,观察序列只作为条件,因此可以针对观察序列设计灵活的特征。

      (3) 训练复杂度不同:由于需要归一化,判别模型训练复杂度较高。

      (4) 是否支持无指导训练:生成模型支持无指导训练,而判别模型不支持。

    3. 二者的本质区别是:判别模型(discriminative model )估计的是条件概率分布(conditional distribution)p(class|context),而生成模型(generative model) 估计的是联合概率分布(joint probability distribution)

    通常来讲,(该部分援引自这里)常见的生成模型(Generative Model)主要有:

    – Gaussians, Naive Bayes, Mixtures of multinomials

    – Mixtures of Gaussians, Mixtures of experts, HMMs

    – Sigmoidal belief networks, Bayesian networks

    – Markov random fields

    常见的Discriminative Model主要有:

    – logistic regression

    – SVMs

    – traditional neural networks

    – Nearest neighbor

抱歉!评论已关闭.