贝叶斯回归
回归模型
假设Data: { ( x 1 , y 1 ) , . . . ( x n , y n ) } {\{(x_1,y_1),...(x_n,y_n)\}} {(x1,y1),...(xn,yn)}
对于 X = ( x 1 , x 2 , . . . x n ) X={(x_1,x_2,...x_n)} X=(x1,x2,...xn),每个 x i x_i xi有p个特征,就是一个矩阵 [ x 11 x 12 . . . x 1 p x 21 x 22 . . . x 2 p . . . . . . . . . . . . x n 1 x n 2 . . . x n p ] \begin{bmatrix}x_{11} & x_{12} & ... & x_{1p}\\ x_{21} & x_{22} & ... & x_{2p}\\ ... & ... & ... & ... \\x_{n1} & x_{n2} & ... & x_{np} \end{bmatrix} ⎣⎢⎢⎡x11x21...xn1x12x22...xn2............x1px2p...xnp⎦⎥⎥⎤
,Y= [ y 1 y 2 . . . y n ] {\begin{bmatrix} y_1 \\ y_2 \\... \\y_n \end{bmatrix}} ⎣⎢⎢⎡y1y2...yn⎦⎥⎥⎤
对于线性回归模型来说,我们要找到一组参数矩阵
W
W
W使得
{
f
(
x
)
=
W
T
X
y
=
f
(
x
)
+
ϵ
\left \{ \begin{array}{c} f(x)=W^TX \\ y=f(x)+\epsilon \\ \end{array}\right.
{f(x)=WTXy=f(x)+ϵ
其中一般假设
ϵ
∼
N
(
0
,
σ
2
)
\epsilon \sim N(0,\sigma^2)
ϵ∼N(0,σ2)
贝叶斯方法有两个步骤,一个是Inference,一个是predict
Inference求参数w,predict求新的测试机数据 x ∗ {x^*} x∗对应的 y ∗ y^* y∗
1. Inference
p ( W ∣ D a t a ) = p ( W ∣ X , Y ) = p ( W , Y ∣ X ) p ( Y ∣ X ) = p ( Y ∣ W , X ) P ( W ) ∫ p ( Y ∣ W , X ) P ( W ) d W p(W|Data)=p(W|X,Y)=\frac {p(W,Y|X)} {p(Y|X)}=\frac {p(Y|W,X)P(W)} {\int p(Y|W,X)P(W)dW} p(W∣Data)=p(W∣X,Y)=p(Y∣X)p(W,Y∣X)=∫p(Y∣W,X)P(W)dWp(Y∣W,X)P(W)
其中 p ( W , Y ∣ X ) = p ( Y ∣ W , X ) P ( W ∣ X ) {p(W,Y|X)=p(Y|W,X)P(W|X)} p(W,Y∣X)=p(Y∣W,X)P(W∣X)但由于W和X相互独立,所以 P ( W ∣ X ) = p ( W ) P(W|X)=p(W) P(W∣X)=p(W)
然后因为
p
(
Y
∣
W
,
X
)
p(Y|W,X)
p(Y∣W,X)是一个联合概率密度嘛,就是似然,故
p
(
Y
∣
W
,
X
)
=
∏
i
=
1
n
p
(
y
i
∣
W
,
x
i
)
p(Y|W,X)=\prod_{i=1}^{n} p(y_i|W,x_i)
p(Y∣W,X)=i=1∏np(yi∣W,xi)
由
ϵ
∼
N
(
0
,
σ
2
)
\epsilon \sim N(0,\sigma^2)
ϵ∼N(0,σ2) ,故
p
(
y
i
∣
x
i
,
w
)
∼
N
(
W
T
x
i
,
σ
2
)
p(y_i|x_i,w) \sim N(W^Tx_i,\sigma^2)
p(yi∣xi,w)∼N(WTxi,σ2),然后因为多个正态相乘还是正态,可得上式属于正态分布
现在一般会先假设一个先验令 p ( W ) ∼ N ( 0 , Σ ) {p(W) \sim N(0,\Sigma)} p(W)∼N(0,Σ),
由 p ( W ∣ D a t a ) ∝ p ( Y ∣ W , X ) p ( W ) p(W|Data) \propto p(Y|W,X)p(W) p(W∣Data)∝p(Y∣W,X)p(W),高斯分布又属于指数族分布,指数族分布都有的共轭的性质,所以可知 p ( W ∣ D a t a ) p(W|Data) p(W∣Data)也是一个高斯分布。高斯的共轭是指一个分布的先验和似然概率都是高斯分布,那他的后验也是高斯分布。
现在就可以我们最终Inference的一个模型 p ( W ∣ D a t a ) p(W|Data) p(W∣Data)是一个高斯分布,现在只需要求出这个高斯分布的均值 μ w \mu_w μw和方差 Σ w \Sigma_w Σw,
下面就是一波推导
p
(
Y
∣
X
,
W
)
=
∏
i
=
1
n
1
2
π
σ
e
x
p
{
−
1
2
σ
2
(
y
i
−
W
T
x
i
)
2
}
=
1
2
π
n
2
σ
n
e
x
p
{
−
1
2
σ
2
∑
i
=
1
n
(
y
i
−
W
T
x
i
)
2
}
=
1
2
π
n
2
σ
n
e
x
p
{
−
1
2
(
Y
−
X
W
)
T
σ
−
2
I
(
Y
−
X
W
)
}
p(Y|X,W)=\prod_{i=1}^{n} \frac {1}{\sqrt{2\pi}\sigma} exp\{- \frac {1}{2 \sigma^2 }(y_i-W^Tx_i)^2\} \\ =\frac {1}{{2\pi}^{\frac {n}{2}}\sigma^n} exp\{- \frac {1}{2 \sigma^2 }\sum_{i=1}^{n}(y_i-W^Tx_i)^2\} \\=\frac {1}{{2\pi}^{\frac {n}{2}}\sigma^n} exp\{-\frac {1}{2} (Y-XW)^T\sigma^{-2}I(Y-XW)\}
p(Y∣X,W)=i=1∏n2πσ1exp{−2σ21(yi−WTxi)2}=2π2nσn1exp{−2σ21i=1∑n(yi−WTxi)2}=2π2nσn1exp{−21(Y−XW)Tσ−2I(Y−XW)}
其中I为单位矩阵,故
p
(
Y
∣
X
,
W
)
∼
N
(
X
W
,
σ
−
2
I
)
p(Y|X,W) \sim N(XW,\sigma^{-2}I)
p(Y∣X,W)∼N(XW,σ−2I)
所以 p ( W ∣ D a t a ) ∝ N ( X W , σ − 2 I ) N ( 0 , Σ ) p(W|Data) \propto N(XW,\sigma^{-2}I)N(0,\Sigma) p(W∣Data)∝N(XW,σ−2I)N(0,Σ)
,同样也是高斯分布相乘,这里省略步骤,比较复杂,直接给出答案,
p
(
W
∣
D
a
t
a
)
=
N
(
μ
w
,
Σ
w
)
,
μ
w
=
σ
−
2
A
−
1
X
T
Y
,
σ
w
=
A
−
1
,
其
中
A
=
σ
−
2
X
T
X
+
Σ
−
1
p(W|Data)=N(\mu_w,\Sigma_w),\\ \mu_w=\sigma^{-2}A^{-1}X^TY,\\ \sigma_w=A^{-1}\\, 其中A=\sigma^{-2}X^TX +\Sigma^{-1}
p(W∣Data)=N(μw,Σw),μw=σ−2A−1XTY,σw=A−1,其中A=σ−2XTX+Σ−1
2.predict
现在已知 p ( w ∣ D a t a ) = N ( μ w , Σ w ) p(w|Data)=N(\mu_w,\Sigma_w) p(w∣Data)=N(μw,Σw),且 μ w , Σ w \mu_w,\Sigma_w μw,Σw已知,
故对于新的测试 x ∗ x^* x∗,套用回归模型 f ( x ∗ ) = x ∗ T W f(x^*)=x^*{^T}W f(x∗)=x∗TW, x ∗ x^* x∗是常数,常数乘高斯分布,故有 f ( x ∗ ) = N ( x ∗ T u w , x ∗ T Σ w x ∗ ) f(x^*)=N(x^*{^T}u_w,x^*{^T}\Sigma_wx^*) f(x∗)=N(x∗Tuw,x∗TΣwx∗),
所以 y ∗ = f ( x ) + ϵ = N ( x ∗ T u w , x ∗ T Σ w x ∗ + σ 2 ) y^*=f(x)+\epsilon=N(x^*{^T}u_w,x^*{^T}\Sigma_wx^*+\sigma^2) y∗=f(x)+ϵ=N(x∗Tuw,x∗TΣwx∗+σ2)
代码实现
哎,还不想搞
总结
贝叶斯回归是典型的贝叶斯派方法。考虑将参数w看成随机变量,进行建模,这种方法和之前了解的线性回归不太一样,之前的线性回归是没有概率的,而贝叶斯将参数看成随机变量,这种方法,也使得最终预测的y也是一个分布,就很模糊理论了,直觉上很吊的样子