区别
判别模型:在有限样本的条件下建立判别函数,也就是最优分类面,实现分类(估计条件概率分布P(y|x))。在机器学习中,类似感知机等算法都是使用 $\sum w x_i $ 直接近似计算P(y|x),训练过程是反复根据历史数据更新w。
生成模型:建立样本的联合概率,再利用模型进行推理预测,要求样本尽可能大(估计联合概率分布P(x,y))。
例如,在垃圾垃圾邮件分类时,假设每个文档 d 由 k 个 单词组成,记为
d
=
[
w
1
,
w
2
,
w
i
,
.
.
.
,
w
k
]
d = [w_1,w_2,w_i, ..., w_k]
d=[w1,w2,wi,...,wk]类别 c
∈
\in
∈ {1, 0} 在朴素贝叶斯算法进行我们的目标是求 P(c|d),这个概率是通过历史数据建立联合概率分布P(d, c)得到的,只不过 P(d, c)不能直接得到,做一定的转化得到。对于一篇邮件d,其类别是
c
i
c_i
ci的概率是:
P
(
c
=
c
i
∣
d
)
=
P
(
w
1
,
w
2
,
.
.
.
,
w
k
∣
c
i
)
∗
P
(
c
i
)
P
(
d
)
P(c = c_i |d) = \frac{P(w_1,w_2,...,w_k|c_i)* P(c_i)}{P(d)}
P(c=ci∣d)=P(d)P(w1,w2,...,wk∣ci)∗P(ci)
≈
∏
j
=
1
k
P
(
w
j
∣
c
i
)
∗
P
(
c
i
)
\approx {\prod_{j=1}^{k} P(w_j|c_i)* P(c_i)}
≈j=1∏kP(wj∣ci)∗P(ci)
注: 约等于号使用了条件独立假设。
常见模型
判别模型:最大熵模型(ME),条件随机场(CRF),最大熵马尔可夫(MEMM),SVM
生成模型:朴素贝叶斯(NB),隐马尔可夫模型(HMM),LDA主题模型,高斯混合模型
优缺点:
生成模型:
- 优点:面向整体数据,可还原出联合概率分布,反应不同数据的联系;可以通过增量学习(样本容量增加时,快速收敛)得到;当含有隐变量时,仍可用生成学习方法,此时不能用判别方法。
- 缺点:分类性能不高,识别精度不高;要产生联合概率,资源使用过大
判别模型:
- 优点:简单,面向分类边界训练,可以清晰地分类出类别之间的差异性。
- 缺点:不能反应数据本身的特性,变量间的的关系不可视。
在分类问题中,在样本较小的情况下,容易产生过拟合,而考虑先验可以减少过拟合,所以生成模型的效果较好;当样本增大时,判别模型会渐渐优于生成模型,因为判别模型本身的直接目标就是判别类与类之间的差别。
例子
数据样本:(1,0), (1,0), (2,0), (2, 1)
- 联合分布P(x,y) :P(1,0) = 1/2; P(2,0) = 1/4; P(2,1) = 1/4
- 条件分布P(y|x): P(0 | 1 ) = 1 ; P(1 | 1 ) =0 ; P(0 | 2 ) =1/2 ; P(1 | 2 ) =1/2 ;