未知の入力値に対する出力を確率的に計算するために、事後予測分布を計算する。
事後予測分布
確率モデルにおいて、出力データ D が与えられたという条件のもとで、さらに未知のデータ D∗ が従う分布 p(D∗∣D) を事後予測分布 (posterior predictive distribution) という。
この分布は、次式のように、既知のデータ D から計算されるパラメータ θ の事後分布 p(θ∣D) にモデル p(D∗∣θ) を掛け、さらに θ について積分して周辺化したものとして定義される。
p(D∗∣D):=∫dθp(D∗∣θ)p(θ∣D)
回帰モデルにおいては次のような形をしている。
p(y∗∣X∗,X,y):=∫dwp(y∗∣X∗,w)p(w∣X,y)
ただし X∗∈Rd∗×n,y∗∈Rd∗ は未知の入出力データであり、次のようなものとする。
X∗=x1x2⋮xd∗,y∗=y1y2⋮yd∗
事後予測分布を計算することで、出力が未知であるような入力データに対する出力データを、不確かさも含めて分布として推定することができる。そこで、事後予測分布を用いるという方法によって線形回帰を行なうものを、俗にベイズ線形回帰 (Bayesian linear regression) などと言ったりする。
ただし、事後予測分布の計算が解析的に可能な場合は限られており、多くの場合はMCMCなどにより近似的に数値計算するのが現実的である。
具体的な計算
具体例を見てみよう。
尤度関数の仮定
まず、尤度関数を以下のようなものにする。
p(y∣X,w)=Nd(y∣Xw,σ2Id)
さらに、未知のデータ X∗,y∗ についても、同じ分布に従うものと考え、分布 p(y∗∣X∗,w) を次式で定める。
p(y∗∣X∗,w)=Nd∗(y∗∣X∗w,σ2Id∗)
ただし、今回は未知のデータの個数を d∗ 個として、X∗∈Rd∗×n,y∗∈Rd∗ としておこう。
事後分布の計算
続いて、パラメータの事前分布として正規分布を仮定する。
p(w)=Nn(w∣m0,V0)∝exp(−21(w−m0)TV0−1(w−m0))
この場合、パラメータの事後分布は次のような正規分布になる。
p(w∣X,y)=Nn(w∣md,Vd) ⎩⎨⎧mdVd−1=Vd(σ21XTy+V0−1m0)=σ21XTX+V0−1
計算
材料が揃ったので、事後予測分布の計算に取り掛かる。
以下の計算においては、w および y∗ に関係のない項をすべて const. として纏めていることに注意。
==∝=∝==p(y∗∣X∗,X,y)∫dwp(y∗∣X∗,w)p(w∣X,y)∫dwNd∗(y∗∣X∗w,σ2Id∗)Nn(w∣md,Vd)∫dwexp(−2σ21∥y∗−X∗w∥22)exp(−21(w−md)Vd−1(w−md))∫dwexp−21(1)(σ21∥y∗−X∗w∥22+(w−md)Vd−1(w−md))(1)====(2)=====σ21wTX∗TX∗w−2σ21wTX∗Ty∗+σ21y∗Ty∗+wTVd−1w−2wTVd−1md+const.mdTVd−1mdwTV+−1(σ21X∗TX∗+Vd−1)w−2wTV+−1m+(σ21X∗Ty∗+Vd−1md)+σ21y∗Ty∗+const.wTV+−1w−2wTV+−1m++σ21y∗Ty∗+const.(w−m+)TV+−1(w−m+)+(2)σ21y∗Ty∗−m+V+−1m++const.σ21y∗Ty∗−m+V+−1m+σ21y∗Ty∗−y∗T(σ21)2X∗V+X∗Ty∗−2y∗Tσ21X∗V+Vd−1md+const.y∗TVy∗∣y−1(σ21Id∗−(σ21)2X∗V+X∗T)y∗−2y∗TVy∗∣y−1my∗∣yσ21X∗V+Vd−1md+const.y∗TVy∗∣y−1y∗−2y∗TVy∗∣y−1my∗∣y+const.(y∗−my∗∣y)TVy∗∣y−1(y∗−my∗∣y)+const.∫dwexp(−21(w−m+)TV+−1(w−m+)−21(y∗−my∗∣y)TVy∗∣y−1(y∗−my∗∣y))∫dwNn(w∣m+,V+)Nd∗(y∗∣my∗∣y,Vy∗∣y)Nd∗(y∗∣my∗∣y,Vy∗∣y)
こうして事後予測分布が計算された。
p(y∗∣X∗,X,y)=Nd∗(y∗∣my∗∣y,Vy∗∣y) ⎩⎨⎧my∗∣y=Vy∗∣y−1=V+−1=md=Vd−1=σ21Vy∗∣yX∗V+Vd−1mdσ21(Id∗−σ21X∗V+X∗T)σ21X∗TX∗+Vd−1Vd(σ21XTy+V0−1m0)σ21XTX+V0−1