[转] 判别模型和生成模型的区别
原文网址: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