监督学习中的“生成模型”和“判别模型”
该内容部分来自于维基百科。
两者都是概率统计模型,从维基上的解释来看
- 生成模型(Generative Model):定义了在观测{X}和结果{Y}的联合概率分布 P(X, Y),通过贝叶斯得出后验概率 P(Y|X) = P(X, Y) / P(X), 然后用后验概率模型作为预测模型。因此我们还需要计算P(X)以得到后验概率。常见的生成模型有:
- 高斯混合模型
- 隐马尔科夫模型
- Probabilistic context free grammars
- 朴素贝叶斯
- RBM(受限波兹曼机)
- Averaged one-dependence estimators
- Latent Dirichlet allocation
- 判别模型(Discriminative Model):同样也叫Conditional Model,即条件概率模型。判别模型是建立在观测数据和预测数据上的条件概率模型 P(Y|X) ,因此得出的后验概率可以直接作为预测模型,常见的判别模型有:
- 逻辑回归
- SVM
- Boosting(meta-programming)
- 条件随机场
- 线性回归
- 神经网络
生成模型和判别模型的主要区别在于:1)生成模型是建立在所有变量上面的联合概率模型,而判别模型只是定义在目标变量上的条件概率模型。因此判别模型相对比生成模型有局限性,生成模型还可以作为预测任何一个变量的模型。2)判别模型不需要建立观测变量的概率模型,一般情况下它不能预测复杂的观测和预测值关系。另外,判别模型本质上是有监督的,想要变成无监督会比较困难。
如果观测数据是符合联合概率分布,那么是用Maximize Likelihood求得模型参数是常见的方法。如果建立的概率模型只是所有变量的一个子集,那么直接使用条件概率模型可能会更有效。当然具体模型选择会由相应应用决定。