通过贝叶斯logistic回归看拉普拉斯近似

来源:互联网 发布:家用工具品牌 知乎 编辑:程序博客网 时间:2024/06/18 08:37

PRML Reading Group

@(PRML)[拉普拉斯近似, 贝叶斯logist回归]

首先贝叶斯logistic回归是什么呢?

如果想了解拉普拉斯近似,我们不妨可以先从他的应用—-贝叶斯logistic回归看起,那么它和贝叶斯线性回归,logistic回归有什么区别呢?

  • 线性模型:像我们熟悉的logistic回归,通常做法就是取一个二项分布的似然函数,再最大似然这个函数,转换成求最小二乘法,再求导出w向量的解析解,最后就是用梯度下降,牛顿啊去估计这个参数w的最优解(就是那一套通用流程)。所以线性模型重点就是放在求某个参数上。但。。。是,logistic回归属于点估计,点少了,很容易造成容易过拟合overfitting
  • 贝叶斯模型:它估计的是一个分布。而不是一个最优化的值Wmap,我们通过似然函数×先验求出后验概率分布之后,再用它去积分进行了类别预测,考虑的是全局的所有w,所以自然的就消除了过拟合。但。。。是, 所以这也就是为什么难操作intractable

拉普拉斯近似

Alt text

logistc回归的贝叶斯观点中,后验分布不是高斯分布了(上图),所以我们就不能精确的对w求积分,因此有必要介绍某种形式的近似。我们就引入了拉普拉斯近似。


目标:找到定义在一组变量上的概率密度的高斯近似


拉普拉斯近似的推导

单一连续变量:

1.寻找众数

  • 假定分布
    P(z)=1Zf(z)

    Z=f(z)是归一化系数。
    我们假定Z的值是未知的。在拉普拉斯方法中,我们就是要寻找高斯近似q(z),他的中心位于p(z)众数的位置,所以就去寻找众数,即寻找一个点使p(z)=0

2.泰勒展开 并取指数

  • 高斯分布的对数是变量的二次函数。所以考虑lnf(z)以众数z0为中心的泰勒展开:

    ln(z)lnf(z0)12A(zz0)

    没有一阶项是因为z0是概率分布的局部最大值

  • 两边同时取指数

    f(z)f(z0)exp{A2(zz0)2}


3.归一化

  • 使用归一化的高斯分布的标准形式,得到归一化的概率分布q(z):
    q(z)=(A2π)12exp{A2(zz0)2}

    • 高斯近似只在精度A>0时有良好的定义,也就是驻点z0一定是个局部最大值,使得f(z)在驻点z0处的二阶导数为负

推广到M维空间z

  • M维空间z上的概率分布p(z)=f(z)Z,在驻点z0处,梯度f(z)将会消失,在驻点z0处展开,我们有:
    ln(z)lnf(z0)12(zz0)TA(zz0)

    其中M×MHessian矩阵A的定义为A=lnf(z)zz0
  • 同时取指数:
    f(z)f(z0)exp{12(zz0)TA(zz0)2}
  • 归一化,q(z)正比于f(z)(2.43):
    |A|12(2π)M2exp{12(zz0)TA(zz0)2}
  • 前提是精度矩阵A是正定的,表明驻点z0一定是一个局部最大值

数据越多,拉普拉斯近似会更有用(根据中心极限定理,分布会更趋近于高斯)


应用到贝叶斯logistic回归

对于logistic回归,精确地贝叶斯推断是无法处理的,特别的,计算后验概率分布需要对先验概率分布于似然函数的乘积进行归一化,而似然函数本身由一系列的logistic sigmoid函数的乘积组成,每个数据点都有一个logistic sigmoid函数。


方法回顾

拉普拉斯近似由以下方式获得:
1.首先寻找后验概率分布的众数
2.然后调解一个以众数为中心的高斯分布
3.这需要计算对数后验概率的二阶导数,这等价于寻找Hessian矩阵。


计算后验

  • 要寻找后验概率的高斯表示,自然的会选择一个高斯先验。高斯的先验的一般形式如下:
    p(w)=N(w|m0,S0)
  • 其中m0,S0是固定的超参数,w的后验概率分布为:
    p(w|t)p(w)p(t|w)
  • 其中t=(t1,t2...tN)T.两侧取对数,使用(4.89)的似然函数,得后验
    lnp(w|t)=12(wm0)TS10(wm0)+n=1N{tnlnyn+(1tn)ln(1yn)}+

    其中yn=σ(wTϕn)

怎样获得后验概率的高斯近似?

  • 首先我们要最大化后验概率分布,得到最大后验的解wMAP,它定义了高斯分布的均值。这样协方差就是负对数似然函数的二阶导数矩阵的逆矩阵
    形式为:
    S1N=lnp(w|t)=S10+n=1Nyn(1yn)ϕnϕTn
  • 所以后验概率的高斯近似就是:
    q(w)=N(w|wMAP,SN)
  • 获得了高斯近似后,剩下的任务就是关于这个概率分布求积分来进行预测。

预测分布

  • 给定一个新的特征向量ϕ,类别的预测分布可以通过对后验概率p(w|t)积分,后验概率本身由高斯分布q(w)近似,即:
    p(C1|ϕ,t)=p(C1|ϕ,w)p(w|t)dwσ(wTϕ)q(w)dw
  • 类别C2的概率就是:
    1p(C1|ϕ,t)
  • 为了计算预测分布,我们注意到函数σ(wTϕ)对于w的依赖只通过他在上的投影而实现。记a=wTϕ,我们有:
    σ(wTϕ)=σ(a)δ(awTϕ)
  • 所以有
    σ(wTϕ)q(w)dw=σ(a)δ(awTϕ)q(w)
  • δ(awTϕ)q(w)=p(a), 注意:Delta函数w施加了一个线性的限制,因此在所有与ϕ 正交的方向上积分,就得到了联合概率q(w)边缘分布,因为q(w)是高斯的,所以边缘也是高斯的。我们可以通过计算各阶矩阵然后交换a和w的积分顺序的方式计算均值和协方差。
    μa=E[a]=p(a)ada=q(w)wTϕdw=wTMAPϕ

    σ2=var[a]=p(a){a2E[a]2}da=ϕTSNϕ
  • 因为a的函数形式和线性回归的预测分布相同,其中噪声的方差被设置为0。所以预测分布的近似变成了:
    p(c1|t)=σ(a)p(a)da=σ(a)N(a|μa,σ2a)da
  • 上面这个公式是一个高斯分布和一个sigmoid函数的卷积,不能求解析值。那我们就需要利用sigmoid函数σ(a)和逆probit函数 Φ(a)的高度相似性来获得一个较好的近似。如何获得更好的近似?那就需要重新为横轴定义标度,使得我们可以用Φ(a)近似σ(a),通过令两个函数在原点处有相同的斜率,我们得出λ2=π8.
    Alt text

  • 使用probit函数的一个优势就是他与高斯的卷积可以用另一个probit函数解析的表示出来。我们可以证明

    Φ(λa)N(a|μ,θ2)da=Φμ(λ2+σ2)12

  • 然后将probit函数的近似σ(a)Φ(λa)应用于这个方程的两侧,得到sigmoid和高斯的卷积近似:
    σ(a)N(a|μ,θ2)daσ(k(σ2)μ)
    k(σ2)=(1+πσ28)
  • 然后把他应用于,我们就得到了近似的预测分布:
    p(C1|ϕ,t)=σ(k(σ2)μa)
1 0
原创粉丝点击