在很多机器学习或数据挖掘的问题中,我们面对的只有数据,但数据中潜在的概率密度函数我们是不知道的,我们需要用数据将概率密度分布估计出来。想要确定数据对应的概率密度分布,我们需要确定两个东西:①概率密度函数的形式;②概率密度函数的参数。
一般情况下,都是先假定数据是具有某种概率分布的,然后再通过数据计算出这些数据对应这个概率分布所对应的参数是什么。而常用的参数估计方法有:极大似然估计、最大后验估计、贝叶斯估计、最大熵估计、混合模型估计。它们之间是递进关系的,想要理解后一个参数估计方法,最好对前一个参数估计有足够的理解。因此想要理解贝叶斯线性回归,或者叫做贝叶斯参数估计,就必须对极大似然估计、最大后验估计有清楚的理解。
首先,以一个分类问题来说明一般参数估计面对的数据形式。考虑一个M类的问题,特征向量服从 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} 是样本集合。假设不同的样本之间具有统计独立性,那么:
在最大似然估计(ML)中, θ 是被看做是未知数,相当于一个自变量,从所有可能的取值中计算出能使得似然函数最大的取值。所以,最大似然估计是θ的函数。
从最大后验估计开始,我们将参数 θ 看成一个因变量,在已知样本集{x1,x2,...,xN}的条件下,估计参数 θ 。这里一定要注意的是,在最大似然估计中,参数θ是一个自变量,最大似然函数是 θ 的函数,最大似然函数里θ没有概率意义,计算的是是哪一个 θ 能够使得似然函数表示的先验概率最大。而在最大后验估计中,我们需要通过已知样本集求未知θ的概率, θ 是有概率意义的,θ有自己的分布。也就是说,最大后验估计需要计算的是 p(θ|X) 。
根据贝叶斯理论:
为了防止标号混淆,这里定义已有的样本集合为 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) 联系起来:
为了明确的表示样本集合 D 中有n个样本,这里采用记号:Dn={x1,x2,...,xn}。根据前一个公式,在 n>1 的情况下有:
贝叶斯线性回归不仅可以解决极大似然估计中存在的过拟合问题,而且它对数据样本的利用率是100%,仅仅使用训练样本就可以有效而准确地确定模型的复杂度。
这里面对的模型是线性回归模型,线性回归模型是一组输入变量 x 的基函数的线性组合,在数学上的形式如下:
根据前面关于贝叶斯估计的增量学习可以很容易得到下面这个式子,这个就是贝叶斯学习过程:在前一个训练集合Dn−1的后验概率 p(θ|Dn−1) 上,乘以新的测试样本点 xn 的似然估计,得到新的集合 Dn 的后验概率 p(θ|Dn) ,这样相当于 p(θ|Dn−1) 成为了 p(θ|Dn) 的先验概率分布:
优点:
①贝叶斯回归对数据有自适应能力,可以重复的利用实验数据,并防止过拟合。
②贝叶斯回归可以在估计过程中引入正则项。
缺点:
①贝叶斯回归的学习过程开销太大。
①由最大似然估计的形式可以知道,使用ML拟合数据很可能产生过拟合的情况。
②同样地,由于最大后验估计通过使用贝叶斯理论使得MAP可以通过ML来计算。这里,使用最大后验估计对数据进行拟合就会出现两种情况:当参数向量是一个均匀分布的时候,那么MAP跟ML几乎是一样的,因此会产生过拟合的情况;第二就是,当参数向量具有其它别的概率分布的时候,我们就可以通过假定参数向量符合某种分布,如高斯分布,从而对数据的拟合进行平滑。需要理解的是,数据的概率分布和参数向量的概率分布是不一样的,我们可以假定数据具有某种概率分布,这种概率分布通过一些参数确定该分布的具体形式。而这些参数的取值可能具有某种概率分布。
③所谓的贝叶斯线性回归其实就是使用了线性模型背后的概率模型,通过概率模型确定线性模型的回归系数。而在使用概率模型确定回归系数的过程中就用到了MAP,所以贝叶斯线性回归能够防止过拟合,就是因为它的计算使用了MAP。
贝叶斯线性回归 http://blog.csdn.net/daunxx/article/details/51725086