贝叶斯线性回归
问题背景:
为了与PRML第一章一致,我们假定数据出自一个高斯分布:
p(t|x,w,β)=N(t|y(x,w),β−1)=√β2πexp(−β2(t−y(x,w))2)
其中β是精度,y(x,w)=M∑j=0wjxj
w的先验为:
p(w)=N(w|0,α−1I)=(α2π)(M+1)/2exp(−α2wTw)
其中α是高斯分布的精度。
为了表示方便,我们定义一个变换ϕ(x)=(1,x,x2,...,xM)T,那么y(x,w)=wTϕ(x)。为了对w作推断,我们需要收集数据更新先验分布,记收集到的数据为xN={x1,...,xN},tN={t1,...,tN},其中ti是xi对应的响应。进一步我们引入一个矩阵Φ,其定义如下:
Φ=[ϕ(x1)Tϕ(x2)T⋮ϕ(xN)T]
我们可以认为这个矩阵是由ϕ(xi)T平铺而成。
详细推导过程
首先我们先验证p(w|x,t)是个高斯分布。根据贝叶斯公式我们有:
p(w|x,t)∝p(w|α)p(t|x,w)=(α2π)(M+1)/2exp(−α2wTw)N∏i=1√β2πexp(−β2(ti−wTϕ(xi))2)∝exp(−12{αwTw+βN∑i=1(t2i−2tiwTϕ(xi)+wTϕ(xi)ϕ(xi)Tw)})∝exp(−12{wT(αI+βN∑i=1ϕ(xi)ϕ(xi)T)w−2βN∑i=1tiϕ(xi)Tw})∝exp(−12{wT(αI+βΦTΦ)w−2β(ΦTtN)Tw})
令S−1=αI+βΦTΦ,μ=βSΦTtN(注:原书中式1.72写错了)
则
p(w|x,t)∝exp(−12(w−μ)TS−1(w−μ))∝N(w|μ,S)
至此,我们证明了后验分布也是个高斯,接下来我们计算predictive distribution,注意到p(t|x,x,t)是两个高斯分布的卷积,其结果也是一个高斯,但为了严谨起见,还是证明一下。
p(t|x,x,t)=∫p(t|x,w)p(w|x,t)dw=1(2π)M/2+11(β−1|S|)1/2∫exp(−12{β(t−wTϕ(x))2+(w−μ)TS−1(w−μ)})dw=1(2π)M/2+11(β−1|S|)1/2∫exp(−12{βt2−2βtϕ(x)Tw+βwTϕ(x)ϕ(x)Tw+wTS−1w−2μTS−1w+μTS−1μ})dw=1(2π)M/2+11(β−1|S|)1/2exp(−12(βt2+μTS−1μ))⋅∫exp(−12{−2βtϕ(x)Tw+βwTϕ(x)ϕ(x)Tw+wTS−1w−2μTS−1w})dw=1(2π)M/2+11(β−1|S|)1/2exp(−12(βt2+μTS−1μ))⋅∫exp(−12{wT(βϕ(x)ϕ(x)T+S−1)⏟Λ−1w−2(βtϕ(x)T+μTS−1⏟mTΛ−1)w}dw=1(2π)M/2+11(β−1|S|)1/2exp(−12(βt2+μTS−1μ))⋅∫exp(−12{wTΛ−1w−2mTΛ−1w+mTΛ−1m−mTΛ−1m})dw=1(2π)M/2+11(β−1|S|)1/2exp(−12(βt2+μTS−1μ−mTΛ−1m))⋅∫exp(−12{(w−m)TΛ−1(w−m)})dw=(2π)(M+1)/2(2π)M/2+1|Λ|1/2(β−1|S|)1/2exp(−12(βt2+μTS−1μ−mTΛ−1m))=1(2π)1/2|(βϕ(x)ϕ(x)T+S−1)−1|1/2(β−1|S|)1/2exp(−12(βt2+μTS−1μ−mTΛ−1m))=1(2π)1/21(β−1|S||βϕ(x)ϕ(x)T+S−1|)1/2exp(−12(βt2+μTS−1μ−mTΛ−1m))
到这里不知道怎么推下去了,于是去网上闲逛找解决办法,终于找到了一篇论文《Modeling Inverse Covariance Matrices by Basis Expansion》这篇论文里介绍了一个引理
引理 (对称矩阵的秩1扰动) 设α∈R,a∈Rd,P∈Rd×d 为可逆矩阵。如果α≠a−(aTPa)−1那么秩1扰动矩阵P+αaaT可逆,且
(P+αaaT)−1=P−1−αP−1aaTP−11+αaTP−1a
且
det(P+αaaT)=(1+αaTP−1a)det(P)
这条定理说的是如果我们给协方差矩阵一个秩为1的向量外积做扰动,我们可以将扰动后的矩阵的逆和行列式进行展开。具体地,我们考察|βϕ(x)ϕ(x)T+S−1|,发现
|βϕ(x)ϕ(x)T+S−1|=(1+βϕ(x)TSϕ(x))det(S−1)=(1+βϕ(x)TSϕ(x))/|S|
于是
1(β−1|S||βϕ(x)ϕ(x)T+S−1|)1/2=1(β−1|S|⋅(1+βϕ(x)TSϕ(x))|S|)1/2=1(β−1+ϕ(x)TSϕ(x))1/2
接下来考察指数部分exp(−12(βt2+μTS−1μ−mTΛ−1m)),注意到μ=βSΦTtN,于是μTS−1μ=β2(ΦTtN)TS(ΦTtN)。同时,应用上述引理我们有
Λ=(βϕ(x)ϕ(x)T+S−1)−1=S−βSϕ(x)ϕ(x)TS1+βϕ(x)TSϕ(x)=S−Sϕ(x)ϕ(x)TSβ−1+ϕ(x)TSϕ(x)
利用以上两个关系,我们进一步进行推导
exp(−12(βt2+μTS−1μ−mTΛ−1m))=exp(−12{βt2+β2(ΦTtN)TS(ΦTtN)−(βtϕ(x)T+β(ΦTtN)T)ΛΛ−1Λ(βtϕ(x)+βΦTtN)})=exp(−12{βt2+β2(ΦTtN)TS(ΦTtN)−[β2t2ϕ(x)TΛϕ(x)+2β2tϕ(x)TΛ(ΦTtN)+β2(ΦTtN)TΛ(ΦTtN)]})=exp(−12{βt2+β2(ΦTtN)TS(ΦTtN)+[−β2t2ϕ(x)TSϕ(x)+β3t2(ϕ(x)TSϕ(x))21+βϕ(x)TSϕ(x)−2β2tϕ(x)TS(ΦTtN)+2β3tϕ(x)Tϕ(x)ϕ(x)TS(ΦTtN)1+βϕ(x)TSϕ(x)−β2(ΦTtN)TS(ΦTtN)+β3(ΦTtN)TSϕ(x)ϕ(x)TS(ΦTtN)1+βϕ(x)TSϕ(x)]})=exp(−12{(β−β2ϕ(x)TSϕ(x)+β3(ϕ(x)TSϕ(x))21+βϕ(x)TSϕ(x))t2+2(β3ϕ(x)Tϕ(x)ϕ(x)TS(ΦTtN)1+βϕ(x)TSϕ(x)−β2ϕ(x)TS(ΦTtN))t+β3(ΦTtN)TSϕ(x)ϕ(x)TS(ΦTtN)1+βϕ(x)TSϕ(x)})
我们考察每一个系数,首先是t2的系数
β−β2ϕ(x)TSϕ(x)+β3(ϕ(x)TSϕ(x))21+βϕ(x)TSϕ(x)=β+−β2ϕ(x)TSϕ(x)[1+βϕ(x)TSϕ(x)]+β3(ϕ(x)TSϕ(x))21+βϕ(x)TSϕ(x)=β−β2ϕ(x)TSϕ(x)1+βϕ(x)TSϕ(x)=β(1+βϕ(x)TSϕ(x))−β2ϕ(x)TSϕ(x)1+βϕ(x)TSϕ(x)=β1+βϕ(x)TSϕ(x)=1β−1+ϕ(x)TSϕ(x)
接着是t的系数
β3ϕ(x)Tϕ(x)ϕ(x)TS(ΦTtN)1+βϕ(x)TSϕ(x)−β2ϕ(x)TS(ΦTtN)=β3ϕ(x)Tϕ(x)ϕ(x)TS(ΦTtN)−β2ϕ(x)TS(ΦTtN)(1+βϕ(x)TSϕ(x))1+βϕ(x)TSϕ(x)=β3ϕ(x)Tϕ(x)ϕ(x)TS(ΦTtN)−β2ϕ(x)TS(ΦTtN)−β3ϕ(x)TS(ΦTtN)ϕ(x)TSϕ(x)1+βϕ(x)TSϕ(x)=−βϕ(x)TS(ΦTtN)β−1+ϕ(x)TSϕ(x)
最后我们考察常数项
β3(ΦTtN)TSϕ(x)ϕ(x)TS(ΦTtN)1+βϕ(x)TSϕ(x)=β2(ϕ(x)TS(ΦTtN))2β−1+ϕ(x)TSϕ(x)
综合以上,我们有
exp(−12(βt2+μTS−1μ−mTΛ−1m))=exp(−12(β−1+ϕ(x)TSϕ(x)){t2−2βϕ(x)TS(ΦTtN)t+β2(ϕ(x)TS(ΦTtN))2})=exp(−12(β−1+ϕ(x)TSϕ(x))(t−βϕ(x)TS(ΦTtN))2)
综合以上,我们可以得到
p(t|x,x,t)=1√2π⋅(β−1+ϕ(x)TSϕ(x))exp(−12(β−1+ϕ(x)TSϕ(x))(t−βϕ(x)TS(ΦTtN))2)
令
m(x)=βϕ(x)TS(ΦTtN)=μTϕ(x)s2(x)=β−1+ϕ(x)TSϕ(x)
以上两式对应PRML中的式1.70~1.71。式1.71中,第一项表示数据中的噪音(方差越小,数据越集中,不确定性越小);第二项表示关于参数w的不确定性,当N→∞时,第二项趋于0,这是由于当数据量趋于无限大时,关于参数的不确定性逐渐消失,先验的影响逐渐减弱。理论上的证明如下,首先我们考察SN+1:
SN+1=(αI+βN∑i=1ϕ(xi)ϕ(xi)T+βϕ(xN+1)ϕ(xN+1)T)=(S−1N+βϕ(xN+1)ϕ(xN+1)T)=SN−βSNϕ(xN+1)ϕ(xN+1)TSN1+βϕ(xN+1)TSNϕ(xN+1)=SN−β1+βϕ(xN+1)TSNϕ(xN+1)(SNϕ(xN+1))(SNϕ(xN+1))T
于是
σ2N+1(x)=β−1+ϕ(x)TSN+1ϕ(x)=σ2N(x)−β1+βϕ(xN+1)TSNϕ(xN+1)[ϕ(x)T(SNϕ(xN+1))]2≤σ2N(x)
因此序列σ2N(x)是单调递减序列,又由于有下界(0),因此当N→∞时,σ2N(x)→0
于是我们知道
p(t|x,x,t)=N(t|m(x),s2(x))
也就是说后验预测分布也是一个高斯,t的且均值、方差取决于x
需要注意的是当x满足β=−(ϕ(x)TSϕ(x))−1时,方差
s2(x)=β−1+ϕ(x)TSϕ(x)=−ϕ(x)TSϕ(x)+ϕ(x)TSϕ(x)=0
因此在这一点分布未定义
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!