贝叶斯岭回归理论

来源:互联网 发布:linux bash脚本 while 编辑:程序博客网 时间:2024/06/14 10:35

转自:http://blog.csdn.net/dark_scope/article/details/8558244


.引入

     贝叶斯线性回归的引入主要是在最大似然估计中很难决定模型的复杂程度,ridge回归加入的惩罚参数其实也是解决这个问题的,同时可以采用的方法还有对数据进行正规化处理,另一个可以解决此问题的方法就是采用贝叶斯方法。

2.参数分布

     设参数为w,则参数的先验概率就是p(w),设数据噪声的精度是β,也就是服从N(0,1/β),且已知。那么似然函数就是p(t | w),t是生成的目标y值。当然条件中隐含了参数X,那么作如下设定:
(m0和S0分别是正态分布的均值和协方差)
     那么根据贝叶斯公式P(A|B)=P(B|A)*P(A)/P(B),就有
          
其中  
因为先验分布是高斯,似然是高斯分布,所以后验概率同样也是高斯分布
我们假设一个比较特殊的情况,也就是w的分布有一个精度参数α来确定,也就是
    ,那么对应的后验分布的参数就变成了

那么,把这个后验分布写成具体的概率密度函数,然后对它的w求log,就得到了

这个大家可以喝ridge regression的公式比较一下,其实就是当λ = α/β 时的ridge regression

下面对一张图片进行比较详细的解释(几本参考资料里都有这张图,挺重要的)

这张图展示了学习参数的一个过程,是按从上到下,从左到右的顺序进行的。第一列实表示对于单个样本的似然函数,忽略掉第一个,一次是第1,2,20个样本的似然函数
从第一行第二列开始,这是最开始的w的先验分布,也就是α 决定的分布,然后依概率从中随便选取几组参数可以得到第三列的几条直线。然后第二行第一列的是对于第一个样例的似然函数。注意这里的似然是:
 (请自行脑补把μ换成0,σ^2换成β…………)
把圆饼那个图的分布和似然分布结合起来,就得到了第二行第二列的那个图像,由此得到几组的参数的直线画在了第三列,然后重复这个过程,直到最后的到20个点的结果。
这里是生成这个图片的代码:点击打开链接(matlab代码,貌似需要pmtk3工具箱)

3.预测分布(predictive distribution)

预测分布就是给你x的值让你求y得值,当然你可以从w得space里面选一组参数来进行预测,但更为可靠的方法是归纳一下所有的w
也就是
通过一坨计算,可以得到:

下面是一个样例:

其中绿色的线是标准的分布,红线是平均值,粉红色的部分是分布的标准差,可以看到随着样例的越来越多,均值越来越好地拟合了原来的分布