关于参数估计

   在很多机器学习或数据挖掘的问题中,我们面对的只有数据,但数据中潜在的概率密度函数我们是不知道的,我们需要用数据将概率密度分布估计出来。想要确定数据对应的概率密度分布,我们需要确定两个东西:①概率密度函数的形式;②概率密度函数的参数。
   一般情况下,都是先假定数据是具有某种概率分布的,然后再通过数据计算出这些数据对应这个概率分布所对应的参数是什么。而常用的参数估计方法有:极大似然估计、最大后验估计、贝叶斯估计、最大熵估计、混合模型估计。它们之间是递进关系的,想要理解后一个参数估计方法,最好对前一个参数估计有足够的理解。因此想要理解贝叶斯线性回归,或者叫做贝叶斯参数估计,就必须对极大似然估计、最大后验估计有清楚的理解。


极大似然估计

p(x|wi),i=1,2,...,M分布。这是现实情况中最常见的一种数据存在形式,数据集合X是由M个类别的数据子集Xm,m=1,2,...,M组成的,第m个类别的数据子集Xm对应的概率密度函数是p(x|wm)。
   前面已经介绍过,想要确定数据的概率分布,需要知道概率密度函数的形式和参数,这里首先做一个基本的假设:概率分布的形式已知,比如,假设每个类别的数据都满足高斯分布,那么似然函数就可以用参数θi的形式表示,这里θi表示的是类别i对应的参数向量。如果是高斯分布,则有两个参数:μi和σ2i,也就是说θi=(μi,σ2i)。
   为了强调概率分布p(x|wi)和θi有关,可以将对应的概率密度函数记为p(x|wi;θi),这里的极大似然估计对应于一个类条件概率密度函数。所谓“类条件”其实就是以类别为条件的概率密度函数。
   从上面的描述可以知道,利用每一个类Xi中已知的特征向量集合,可以估计出其对应的参数θi。进一步假设每一个类中的数据不影响其它类别的数据的参数估计,那么上面个M个类别的参数估计就可以用下面这个统一的模型独立的解决。
   设x1,x2,...,xN是从概率密度函数p(x;θ)中随机抽取的样本,那么就可以得到联合概率密度函数p(X;θ),其中X={x1,x2,...,xN}是样本集合。假设不同的样本之间具有统计独立性,那么:


p(X;θ)≡p(x1,x2,...,xN;θ)=∏k=1Np(xk;θ)

注意:这里的 p(xk;θ)本来的写法是 p(x|wi;θi),是一个类条件概率密度函数,只是因为这里是一个统一的模型,所以可以将 wi省略。


   此时,就可以使用最大似然估计(Maximum Likelihood,ML)来估计参数

θ了:

θ^ML=argmaxθ∏k=1Np(xk;θ)

为了得到最大值, θ^ML必须满足的必要条件是,似然函数对 θ的梯度必须为0,即:

∂∏Nk=1p(xk;θ)∂θ=0

但是,一般采用的是似然函数的对数形式

L(θ)≡ln∏k=1Np(xk;θ)


∂L(θ)∂θ=∑k=1N∂lnp(xk;θ)∂θ=∑k=1N1p(xk;θ)∂p(xk;θ)∂θ=0

需要注意的是:极大似然估计对应于似然函数的峰值。


   极大似然估计有两个非常重要的性质:渐进无偏和渐进一致性,有了这两个性质,使得极大似然估计成为了非常简单而且使用的参数估计方法。所谓渐进无偏就是说,经过多次计算,对参数估计的期望值等于其真实值;而所谓渐进一致就是当数据样本足够大时,参数能够收敛于真实值,而不是在真实值范围波动。


最大后验估计(MAP)

θ是被看做是未知数,相当于一个自变量,从所有可能的取值中计算出能使得似然函数最大的取值。所以,最大似然估计是θ的函数。
   从最大后验估计开始,我们将参数θ看成一个因变量,在已知样本集{x1,x2,...,xN}的条件下,估计参数θ。这里一定要注意的是,在最大似然估计中,参数θ是一个自变量,最大似然函数是θ的函数,最大似然函数里θ没有概率意义,计算的是是哪一个θ能够使得似然函数表示的先验概率最大。而在最大后验估计中,我们需要通过已知样本集求未知θ的概率,θ是有概率意义的,θ有自己的分布。也就是说,最大后验估计需要计算的是p(θ|X)。
   根据贝叶斯理论:


p(θ|X)=p(θ)p(X|θ)p(X)

这是参数 θ关于已有数据集X的后验概率。要使得这个后验概率最大,和极大似然估计一样,这里需要对后验概率函数求导。由于分子中的 p(X)相对于 θ是独立的,可以直接忽略掉p(X)。

θ^MAP=argmaxθp(θ|X)=argmaxθp(θ)p(X|θ)

为了得到参数 θ,和ML一样,需要对p(θ|X)求梯度,并使梯度等于0:

p(θ|X)∂θ=p(θ)p(X|θ)∂θ=0

注意:这里 p(X|θ)和极大似然估计中的似然函数 p(X;θ)是一样的,只是记法不一样,MAP和ML的区别是:MAP是ML的基础上加上了 p(θ)。这里需要说明的是,虽然从公式上 MAP=ML∗p(θ),但是这两种算法有本质的区别,ML将 θ视为一个确定未知的值,而MAP则将θ视为一个随机变量。


   在MAP中,

p(θ)称为 θ的先验知识,假设其服从均匀分布,即对于所有θ的取值, p(θ)都是同一个常量,这样的话,MAP和ML会得到相同的结果。另一方面,如果 p(θ)的方差非常小,MAP和ML的结果自然也会非常相似。


贝叶斯估计
贝叶斯估计的核心问题

D,为不是之前的X。样本集合D中的样本都是从一个固定但是未知的概率密度函数p(x)中独立抽取出来的,要求根据这些样本估计x的概率分布,记为p(x|D),并且使得p(x|D)尽量地接近p(x),这就是贝叶斯估计的核心问题。

贝叶斯估计的第一个重要元素

p(x)是未知的,但是前面提到过,一个密度分布的两个要素为:形式和参数。我们可以假设p(x)的形式已知,但是参数θ的取值未知。这样,就有了贝叶斯估计的第一个重要元素p(x|θ),这是一个条件概率密度函数,准确的说,是一个类条件概率密度函数。强调一下:p(x|θ)的形式是已知的,只是参数θ的取值未知。由于这里的x可以看成一个测试样本,所以这个条件密度函数,从本质上讲,是θ在点x处的似然估计。

贝叶斯估计的第二个重要的元素

θ的取值未知,而且,我们将θ看成是一个随机变量,那么,在观察到具体的训练样本之前,关于θ的全部知识,可以用一个先验概率密度函数p(θ)表示。对于训练样本的观察,我们能够把这个先验概率密度转化成为后验概率密度函数p(θ|D),根据后验概率密度的相关论述我们知道,我们希望p(θ|D)在θ的真实值附近有非常显著的尖峰。这里的后验概率密度,就是贝叶斯估计的第二个主要元素。

解决贝叶斯核心问题

p(x|D),和贝叶斯估计的两个重要元素:p(x|θ)、p(θ|D)联系起来:


p(x|D)=∫p(x,θ|D)dθ=∫p(x|θ,D)p(θ|D)dθ

上面的式子中, x是测试样本,D是训练集, x和D的选取是独立进行的,因此, p(x|θ,D)可以写成 p(x|θ)。所以,贝叶斯估计的核心问题就是下面这个公式:

p(x|D)=∫p(x|θ)p(θ|D)dθ

必须要理解的是,这里的 p(x|θ)是 θ关于测试样本x这一点的似然估计,而 p(θ|D)则是 θ在已有样本集合的后验概率。所以必须先理解什么是极大似然估计和最大后验概率估计。其中,后验概率p(θ|D)为:

p(θ|D)=p(D|θ)p(θ)p(D)=p(D|θ)p(θ)∫p(D|θ)p(θ)dθ


p(D|θ)=∏k=1Np(xk|θ)


   上面这个式子就是贝叶斯估计最核心的公式,它把类条件概率密度

p(x|D)和未知参数向量 θ的后验概率密度p(θ|D)联系在了一起。如果后验概率密度 p(θ|D)在某一个值 θ^附近形成显著的尖峰,那么就有 p(x|D)≈p(x|θ^),就是说,可以用估计值 θ^近似代替真实值所得的结果。


贝叶斯估计的增量学习

D中有n个样本,这里采用记号:Dn={x1,x2,...,xn}。根据前一个公式,在n>1的情况下有:


p(Dn|θ)=p(xn|θ)p(Dn−1|θ)

这样的话就能够容易地得到:

p(θ|Dn)=p(xn|θ)p(Dn−1|θ)p(θ)∫p(xn|θ)p(Dn−1|θ)p(θ)dθ=p(xn|θ)p(θ|Dn−1)∫p(xn|θ)p(θ|Dn−1)dθ

当没有观测样本时,定义 p(θ|D0)=p(θ),为参数 θ的初始估计。然后让样本集合依次进入上述公式,就可以得到一系列的概率密度函数:p(θ|D0)、 p(θ|D1)、 p(θ|D2)、 … 、 p(θ|Dn),这一过程称为参数估计贝叶斯递归法,也叫贝叶斯估计的增量学习。这是一个在线学习算法,它和随机梯度下降法有很多相似之处。


贝叶斯线性回归

   贝叶斯线性回归不仅可以解决极大似然估计中存在的过拟合问题,而且它对数据样本的利用率是100%,仅仅使用训练样本就可以有效而准确地确定模型的复杂度。
   这里面对的模型是线性回归模型,线性回归模型是一组输入变量x的基函数的线性组合,在数学上的形式如下:

y(x,w)=w0+∑j=1Mwjϕj(x)

这里ϕj(x)就是前面提到的基函数,总共的基函数数目为M个,如果定义ϕ0(x)=1的话,上面的式子就可以简单地表示为:

y(x,w)=∑j=0Mwjϕj(x)=wTϕ(x)


w=(w0,w1,w2,...,wM)


ϕ=(ϕ0,ϕ1,ϕ2,...,ϕM)

则线性模型的概率表示如下:

p(t|x,w,β)=N(t|y(x,w),β−1I)

假设参数 w满足高斯分布,这是一个先验分布:

p(w)=N(w|0,α−1I)

一般来说,我们称 p(w)为共轭先验(conjugate prior)。这里 t是x对应的目标输出, β−1和 α−1分别对应于样本集合和 w的高斯分布的方差,w是参数。


   那么线性模型的对数后验概率函数为:


lnp(θ|D)=lnp(w|T)=−β2∑n=1N{y(xn,w)−tn}2+α2wTw+const

这里 T是数据样本的目标值向量,T={t1,t2,...,tn},const是和参数 w无关的量。


贝叶斯线性回归的学习过程

Dn−1的后验概率 p(θ|Dn−1)上,乘以新的测试样本点 xn的似然估计,得到新的集合 Dn的后验概率 p(θ|Dn),这样相当于 p(θ|Dn−1)成为了 p(θ|Dn)的先验概率分布:

p(θ|Dn)∝p(xn|θ)p(θ|Dn−1)


贝叶斯回归的优缺点

优点:
   ①贝叶斯回归对数据有自适应能力,可以重复的利用实验数据,并防止过拟合。
   ②贝叶斯回归可以在估计过程中引入正则项。
缺点:
   ①贝叶斯回归的学习过程开销太大。


自己的理解

①由最大似然估计的形式可以知道,使用ML拟合数据很可能产生过拟合的情况。
②同样地,由于最大后验估计通过使用贝叶斯理论使得MAP可以通过ML来计算。这里,使用最大后验估计对数据进行拟合就会出现两种情况:当参数向量是一个均匀分布的时候,那么MAP跟ML几乎是一样的,因此会产生过拟合的情况;第二就是,当参数向量具有其它别的概率分布的时候,我们就可以通过假定参数向量符合某种分布,如高斯分布,从而对数据的拟合进行平滑。需要理解的是,数据的概率分布和参数向量的概率分布是不一样的,我们可以假定数据具有某种概率分布,这种概率分布通过一些参数确定该分布的具体形式。而这些参数的取值可能具有某种概率分布。
③所谓的贝叶斯线性回归其实就是使用了线性模型背后的概率模型,通过概率模型确定线性模型的回归系数。而在使用概率模型确定回归系数的过程中就用到了MAP,所以贝叶斯线性回归能够防止过拟合,就是因为它的计算使用了MAP。


参考资料

贝叶斯线性回归