判别式模型P(Y|X)进行建模,目的是找到一个决策边界,根据这个边界来确定新样本的类别.

生成式模型P(X,Y)进行建模,目的是找到每个类别的分布,根据类别的分布情况确定新样本的类别.

如上图所示,当一个新样本进来后,如果是判别式模型,会判断它在决策边界的左边还是右边,即计算P(Y_1|X)P(Y_2|X)来判断新样本是蓝色还是黄色.如果是生成式模型会根据两个类别分布分别计算属于两个类别的概率,即P(Y_1,X)P(Y_2,X)来判断新样本是蓝色还是黄色.

下面是一个简单的例子,给定样本:

(1,0), (1,0), (2,0), (2, 1)

判别式模型会建立p(y|x)的模型:

      y=0   y=1
     -----------
x=1 | 1     0
x=2 | 1/2   1/2

当一个新样本x=1进来我们,我们根据模型计算:

p(y=0|x=1) = 1
p(y=1|x=1) = 0

所以判别式模型判断该样本的y=1

生成式模型会建立p(x,y)的模型:

      y=0   y=1
     -----------
x=1 | 1/2   0
x=2 | 1/4   1/4

当一个新样本x=1进来我们,我们根据模型计算:

p(y=0,x=1) = 1/2
p(y=1,x=1) = 0

所以生成式模型判断该样本的y=1

常见算法的类别

线性回归:

线性回归假设数据服从高斯分布:
p(\varepsilon)={\frac {1}{\sigma {\sqrt {2\pi }}}}\,\exp \left(-{\frac {(\varepsilon)^{2}}{2\sigma ^{2}}}\right)
然后建立模型
p(y^{(i)}|x^{(i)};\theta)={\frac {1}{\sigma {\sqrt {2\pi }}}}\,\exp \left(-{\frac {(y^{(i)} -\theta^Tx^{(i)})^{2}}{2\sigma ^{2}}}\right)
最后极大化p(y|x;\theta)而习得模型,所以线性回归是辨别式模型.

逻辑回归:

逻辑回归对P(y|x;\theta)进行建模:
h_{\theta}(x)=\frac{1}{1+e^{-\theta^Tx}}
P(y|x;\theta)={(h_{\theta}(x))^y} *{(1-h_{\theta}(x))^{1-y}}
然后极大化p(y|x;\theta)而习得模型,所以逻辑回归是辨别式模型.

神经网络:

神经网络可以理解成非常多个逻辑回归的组合,所以神经网络是辨别式模型.

支持向量机:

支持向量机是以找到一个超平面(决策边界)为目的进行优化训练的,所以支持向量机是辨别式模型.

决策树

决策树以减小信息熵为目的进行划分(决策边界),所以决策树是辨别式模型.

K近邻

K近邻比较特殊,他是懒惰学习,P(y | x)仅由周围同类样本数目(决策边界)多少决定.它属于辨别式模型.

线性辨别模型与高斯辨别模型

虽然名字叫辨别模型,不过他们分别对不同类别建立高斯模型,所以他们是生成式模型.

朴素贝叶斯

朴素贝叶斯通过贝叶斯法则,对P(y | x)进行变换:

P(y | x) = \dfrac{P(x,y)}{P(x)}

分母是常数,分子根据条件独立性可以转化为:

P(x,y) = p(y,f_{1},\dots ,f_{n})=\prod_{i=1}^{n}P(f_{i}|y)


P(f_{i}|y)=\dfrac{1}{\sqrt{2\pi\sigma_{y,i}^{2}}}e^{-\frac{(f_{i}-\mu_{y,i})^{2}}{2  \sigma_{y,i}^{2}}}

也就是说朴素贝叶斯相当于为每一个特征建立了一个高斯模型.所以朴素贝叶斯是生成式模型.

混合高斯模型

混合高斯模型模型是由多个高斯模型组合在一起,肯定是生成式模型.

贝叶斯网络


上图的贝叶斯网,我们可以根据链式法则计算联合概率:
P(x_{1}, {\cdots}, x_{n} )=P(x_{1})·P(x_{2}|x_{1} )·P(x_{3}|x_{2} )·P(x_{4}|x_{2} )·P(x_{5}|x_{3},x_{4} )

所以说贝叶斯网络相当于给每个因子建立一个分布,属于生成式模型.

马尔科夫网

马尔科夫网相当于将贝叶斯网中的条件概率换成因子,也是对联合概率进行建模,所以是生成式模型.

隐马尔科夫模型

隐马尔科夫模型对观测状态和隐状态的联合概率进行建模,所以是生成式模型.

条件随机场

条件随机场是对条件概率进行建模,是辨别式模型.


参考:
如何用简单易懂的例子解释条件随机场(CRF)模型?它和HMM有什么区别? - Scofield的回答 - 知乎
https://stackoverflow.com/questions/879432/what-is-the-difference-between-a-generative-and-discriminative-algorithm

posted @ 2018-10-10 21:48:10
评论加载中...

发表评论