机器学习_生成式模型与判别式模型


从概率分布的角度看待模型。
给个例子感觉一下: 如果我想知道一个人A说的是哪个国家的语言,我应该怎么办呢?

    生成式模型

我把每个国家的语言都学一遍,这样我就能很容易知道A说的是哪国语言,并且C、D说的是哪国的我也可以知道,进一步我还能自己讲不同国家语言。

    判别式模型

我只需要学习语言之间的差别是什么,学到了这个界限自然就能区分不同语言,我能说出不同语言的区别,但我哦可能不会讲。

如果我有输入数据 x ,并且想通过标注 y 去区分不同数据属于哪一类,生成式模型是在学习样本和标注的联合概率分布
p(x,y)
p(x,y) 而判别式模型是在学习条件概率 p(y∣x)

p(y∣x)

生成式模型 p(x,y)
p(x,y) 可以通过贝叶斯公式转化为 p(y∣x)=p(x,y)p(x) p(y∣x)=p(x)p(x,y)​ ,并用于分类,而联合概率分布p(x,y)p(x,y)也可用于其他目的,比如用来生成样本对(x,y)

(x,y)
判别式模型的主要任务是找到一个或一系列超平面,利用它(们)划分给定样本到给定分类,这也能直白的体现出“判别”模型这个名称。

最后给一个很简单的例子说明一下:
假如我有以下独立同分布的若干样本 (x,y) ,其中 x 为特征,
y∈{0,1}
y∈{0,1} 为标注, (x,y)∈{(2,−1),(2,−1),(3,−1),(3,1),(3,1)}(x,y)∈{(2,−1),(2,−1),(3,−1),(3,1),(3,1)}则:
p(x,y)p(x,y)
y(y∣x)

y(y∣x)
一些理论可看:On Discriminative vs Generative classifiers: A comparison of logistic regression and naive Bayes。

    常见生成式模型
    Naive Bayes
    Gaussians
    Mixtures of Gaussians
    Mixtures of Experts
    Mixtures of Multinomials
    HMM
    Markov random fields
    Sigmoidal belief networks
    Bayesian networks
    常见判别式模型
    Linear regression
    Logistic regression
    SVM
    Perceptron
    Traditional Neural networks
    Nearest neighbor
    Conditional random fields
posted @ 2018-12-25 15:49  编程自习室  阅读(414)  评论(0编辑  收藏  举报