在分类模型中,我们常常以联合概率 P(X,ω) 或者后验概率 P(ω|X) 建模, X={x1,x2,…,xd}表示一个d维向量,ω=ω1,ω2,…,ωk表示类别。 其中,
P(X,ω)=P(X|ω)⋅P(ω)
P(ω|X)=P(X|ω)⋅P(ω)P(X)
进行转换后,都出现了先验概率
P(ω) 和类条件概率
P(X|ω) 。先验概率可以通过对样本数据进行统计得出,而类条件概率直接统计则不是那么容易得出,原因有两个:1)已有训练样本量总是显得太少,比如在垃圾邮件分类中,一个词向量
x={拍卖,惠购,不容错过,商场,大降价} ,可以看出包含该词向量的文档很有可能是一封垃圾邮件,但很有可能在我们统计了1000封垃圾邮件后偏偏没有出现该词向量的组合,造成估计错误;2)当特征向量维度d较大的时候,直接会带来计算量上的问题。例如d=100的时候,我们在统计需要对每个样本的100个维度比较统计,计算量非常大。
考虑上面的问题,在实际中我们是通过在先验知识的帮助下估计条件概率服从的概率分布参数来解决问题的。例如根据先验知识,条件概率 P(X|ωi) 服从正态分布 N(μi,Σi) ,参数未知。我们可以将参数 μi,Σi 估计出来,从而条件概率分布可以确定,进而条件概率值可以求出。
在对参数进行估计时,主要有两种思想,一个是认为参数一个未知的确定量,即该参数是确定的,只是值是多少我们还未知;一个是认为参数也是一个随机变量,并服从某种先验概率分布,我们需要根据先验与样本学习到参数关于样本的后验概率分布,进而求得类条件概率。
根据第一种思想来进行参数估计的方法主要是最大似然估计和最大后验估计。
1、 最大似然估计
首先来说最大似然估计,即通过最大化似然函数来求得参数值。以条件概率 P(X|ω) 服从单个参数 θ 的分布为例,每个 ωi 对应一个 θi ,求 P(X|ωi)即等价于P(X|θi) ,参数估计值为:
θ^ML=argmax∑i=1nlogp(xi|θ)
2、最大后验估计
最大后验估计与最大似然估计相似,但以最大化后验概率
P(θ|X) 为目标,形式如下:
θ^MAP=argmaxP(θ|X)=argmaxP(X|θ)⋅P(θ)P(X)=argmaxP(X|θ)⋅P(θ)=argmax{∑i=1nlogP(xi|θ)+logP(θ)}
可以看出,与最大似然估计相比,在形式上增加了参数的先验概率
P(θ)
它不仅表示了先验知识,还能够作为正则化项来防止过拟合。值得了解的是,增加的先验有点像贝叶斯方法,它有自己的一个超参数来控制
P(θ) 取值的可信度,但
P(θ) 仍是作为未知的确定量来处理。
3、贝叶斯估计
按照前面讲的估计参数的第二种思想,使用的方法是贝叶斯估计方法,它是对最大后验方法的扩展,将参数作为一种变量的概率分布来考虑。与最大后验估计相比,它还增加了参数估计的方差信息,用来衡量估计值的置信度。
贝叶斯参数估计的一些基本的假设如下:
1)条件概率密度函数 P(X|θ) 是完全已知的,但参数向量 θ 的具体值未知;
2)参数向量 θ 的先验概率密度函数 P(θ) 包含了我们对 θ 的全部先验知识;
3)其余的关于参数向量 θ 的信息包含在样本X中,这些样本都服从未知的概率密度函数 P(X) 。
首先通过贝叶斯公式将后验表示成类条件概率与先验的乘积。考虑类条件概率 P(X|ωi),i=1,2,…,k ,每个类别 ωi对应一个样本集Di ,我们需要对每一个类都进行估计,为了方便,我们记 ω,D 为具体一个类别及对应的样本集,目标变为估计 P(X|D) ,考虑参数 θ ,
P(X|D)=∫P(X|θ)⋅P(θ|D)dθ⋯式1
P(X|D) 依赖于
P(θ|D) ,如果
P(θ|D) 在某个值
θ^ 附近有非常显著的尖峰,区间可以近似成一个点,则
P(X|D)≈P(X|θ^) 。即通过样本D学习出参数
θ 最可能取的值,
P(X|D) 有该值决定。
根据先验知识, P(X|θ) 的分布形式已知, P(θ) 的概率分布已知,有如下公式:
P(θ|D)=P(D|θ)⋅P(θ)∫P(D|θ)⋅P(θ)dθ⋯式2
P(D|θ)=∏k=1nP(xk|θ)⋯式3
式2和式3阐明了贝叶斯估计与最大似然估计的关系,式2的形式与最大后验估计形式一致,但此处的先验
P(θ) 为概率密度函数,最大后验的
P(θ) 为一确定量。
贝叶斯估计与最大似然估计相比,增加了考虑问题的维度,故方法复杂性是增加了,但估计参数更加精细可控了。最大似然估计的结果只有参数可能取值,而无其他信息,而贝叶斯估计的结果是参数的后验概率分布
P(θ|D) ,可以获得额外的信息,如若
P(θ|D)满足正态分布N(μ,σ2),其中μ为估计参数,方差σ 表示参数估计的置信度。随着样本量的增加,方差会越来越小,概率分布会越来越尖,估计值与真实值也越来越接近。