一、频率派线性回归
1、单变量的线性回归
数据集为最简单的一种情形,一个一维输入对应一个一维输出,所以训练数据集可以表示为 ( x 1 , t 1 ) , ( x 2 , t 2 ) , , , , , ( x n , t n ) (x_1,t_1),(x_2,t_2),,,,,(x_n,t_n) (x1,t1),(x2,t2),,,,,(xn,tn)一共N个数据
单变量线性回归的模型:
y = θ 0 + θ 1 ∗ x (1.1) \begin{aligned} y=\theta_0+\theta_1*x \tag{1.1}\\ \end{aligned} y=θ0+θ1∗x(1.1)
所以说我们的目标就是,找到合适的 θ \theta θ使得实际的输出要尽可能的逼近真实的输出。想要实现这个目标,关键就要找的一个代价函数,使得代价函数最小化,在这里我们一般都用的是实际输出与真实输出的均方误差作为代价函数,即:
L ( θ ) = 1 N ∑ i = 1 N ( y i − t i ) 2 (1.2) \begin{aligned} L(\theta)=\frac{1}{N}\displaystyle\sum_{i=1}^{N}(y_i-t_i)^2 \tag{1.2}\\ \end{aligned} L(θ)=N1i=1∑N(yi−ti)2(1.2)
我们将 y i y_i yi的表达式代入可得
L ( θ ) = 1 N ∑ i = 1 N ( θ 0 + θ 1 ∗ x i − t i ) 2 (1.3) \begin{aligned} L(\theta)=\frac{1}{N}\displaystyle\sum_{i=1}^{N}(\theta_0+\theta_1*x_i-t_i)^2 \tag{1.3}\\ \end{aligned} L(θ)=N1i=1∑N(θ0+θ1∗xi−ti)2(1.3)
要将上式最小化我们有多个方法,用的最多的就是梯度下降法和求导法,在这里我们主要讲一下求导法,即对参数 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1分别求偏导。
∂ L ( θ ) ∂ θ 0 = 2 N ( N θ 0 − ∑ i = 1 N ( y i − θ 1 x i ) ) (1.4) \begin{aligned} \frac{\partial L(\theta)}{\partial \theta_0}=\frac{2}{N}(N\theta_0-\displaystyle\sum_{i=1}^{N}(y_i-\theta_1x_i)) \tag{1.4}\\ \end{aligned} ∂θ0∂L(θ)=N2(Nθ0−i=1∑N(yi−θ1xi))(1.4)
∂ L ( θ ) ∂ θ 1 = 2 N ( θ 1 ∑ i = 1 N x i 2 − ∑ i = 1 N ( y i − θ 0 ) x i ) (1.5) \begin{aligned} \frac{\partial L(\theta)}{\partial \theta_1}=\frac{2}{N}(\theta_1\displaystyle\sum_{i=1}^{N}x_i^2-\displaystyle\sum_{i=1}^{N}(y_i-\theta_0)x_i) \tag{1.5}\\ \end{aligned} ∂θ1∂L(θ)=N2(θ1i=1∑Nxi2−i=1∑N(yi−θ0)xi)(1.5)
所以令上式都为零可以解得最优解:
θ 1 = ∑ i = 1 N y i ( x i − 1 N ∑ i = 1 N x i ) ∑ i = 1 N x i 2 − 1 N ( ∑ i = 1 N x i ) 2 (1.6) \begin{aligned} \theta_1=\frac{\displaystyle\sum_{i=1}^{N}y_i(x_i-\frac{1}{N}\displaystyle\sum_{i=1}^{N}x_i)}{\displaystyle\sum_{i=1}^{N}x_i^2-\frac{1}{N}(\displaystyle\sum_{i=1}^{N}x_i)^2} \tag{1.6}\\ \end{aligned} θ1=i=1∑Nxi2−N1(i=1∑Nxi)2i=1∑Nyi(xi−N1i=1∑Nxi)(1.6)
θ 0 = 1 N ∑ i = 1 N ( y i − θ 1 x i ) (1.7) \begin{aligned} \theta_0=\frac{1}{N}\displaystyle\sum_{i=1}^{N}(y_i-\theta_1x_i) \tag{1.7}\\ \end{aligned} θ0=N1i=1∑N(yi−θ1xi)(1.7)
详细的计算过程我这边就不写了,可以自行推导。
2、多变量的线性回归
多变量的线性回归中x是一个向量,这个向量是D为维的,所以说整个数据集X是一个D*N矩阵,表示为 ( x D 1 , y 1 ) , ( x D 2 , y 2 ) , , , , ( x D N , y N ) (x_{D1},y_1),(x_{D2},y_2),,,,(x_{DN},y_N) (xD1,y1),(xD2,y2),,,,(xDN,yN)
多变量线性回归的模型
y = θ 0 + θ i ∗ x 1 + θ 2 ∗ x 2 = θ T x (1.8) \begin{aligned} y=\theta_0+\theta_i*x_1+\theta_2*x_2=\theta^Tx \tag{1.8}\\ \end{aligned} y=θ0+θi∗x1+θ2∗x2=θTx(1.8)
对多变量的参数求解依旧和单变量是相似的,代价函数也是取最小平方和
L ( θ ) = ∑ i = 1 N ( θ T x i − y i ) 2 (1.9) \begin{aligned} L(\theta)=\displaystyle\sum_{i=1}^{N}(\theta^Tx_i-y_i)^2 \tag{1.9}\\ \end{aligned} L(θ)=i=1∑N(θTxi−yi)2(1.9)
通过求偏导我们可以得到:
θ
=
(
X
T
X
)
−
1
X
T
Y
(1.10)
\begin{aligned} \theta=(X^TX)^{-1}X^TY \tag{1.10}\\ \end{aligned}
θ=(XTX)−1XTY(1.10)
(正规方程,直接通过他就可以得到参数的最优解。)
二、贝叶斯线性回归
贝叶斯方法区别于频率派,引入参数的先验和后验概率,将参数看做是一个随机变量,求得参数的概率密度函数,即可求得参数的最优解。贝叶斯估计其实就是最大后验估计加上一个高斯先验得到后验概率,参数的最优解就是对后验概率求期望,也就是高斯分布中的 μ \mu μ值。
贝叶斯线性回归的模型和频率相似,我们假设这边基函数为 ϕ ( x ) \phi(x) ϕ(x),那么其数学形式为:
y ( x , w ) = ∑ j = 0 M w j ϕ j ( x ) (2.1) \begin{aligned} y(x,w)=\displaystyle\sum_{j=0}^{M}w_j\phi_j(x) \tag{2.1}\\ \end{aligned} y(x,w)=j=0∑Mwjϕj(x)(2.1)
其中
ϕ
(
x
)
\phi(x)
ϕ(x)为前面提到的基函数,且
ϕ
0
(
x
)
=
1
\phi_0(x)=1
ϕ0(x)=1,
w
=
(
w
0
,
w
1
,
.
.
.
.
.
.
.
w
M
)
\begin{aligned} w=(w_0,w_1,.......w_M) \\ \end{aligned}
w=(w0,w1,.......wM)
ϕ = ( ϕ 1 , ϕ 2 , . . . . . . . , ϕ M ) \begin{aligned} \phi=(\phi_1,\phi_2,.......,\phi_M) \\ \end{aligned} ϕ=(ϕ1,ϕ2,.......,ϕM)
我们给定训练数据集为
X = ( x M 1 , y 1 ) , ( x M 2 , y 2 ) , , , , ( x M N , y N ) \begin{aligned} X=(x_{M1},y_1),(x_{M2},y_2),,,,(x_{MN},y_N) \\ \end{aligned} X=(xM1,y1),(xM2,y2),,,,(xMN,yN)
贝叶斯方法就是引入参数的先验,我们这边假设 w w w的先验服从高斯分布
p ( w ) = N ( w ∣ 0 , α − 1 I ) (2.2) \begin{aligned} p(w)=N(w|0,\alpha^{-1}I) \tag{2.2}\\ \end{aligned} p(w)=N(w∣0,α−1I)(2.2)
所以线性模型的概率为:
p ( t ∣ x , w , β ) = N ( t ∣ y ( x , w ) , β − 1 I ) (2.3) \begin{aligned} p(t|x,w,\beta)=N(t|y(x,w),\beta^{-1}I) \tag{2.3}\\ \end{aligned} p(t∣x,w,β)=N(t∣y(x,w),β−1I)(2.3)
表示我的真实输出也是服从均值为 y ( x , w ) y(x,w) y(x,w),残差为 β − 1 I \beta^{-1}I β−1I的高斯分布。
所以我们可以通过贝叶斯公式求得参数的后验概率:
p ( w ∣ t ) ∝ p ( t ∣ w , x , β ) p ( w ∣ α ) (2.4) \begin{aligned} p(w|t)∝p(t|w,x,\beta)p(w|\alpha) \tag{2.4}\\ \end{aligned} p(w∣t)∝p(t∣w,x,β)p(w∣α)(2.4)
所以说后验概率分布的对数由似然函数与先验的对数求和的方式得到,形式为:
l
n
p
(
w
∣
t
)
=
l
n
∏
i
=
1
N
p
(
t
i
∣
w
,
x
i
,
β
)
∏
j
=
1
N
p
(
w
j
∣
α
)
=
∑
i
=
1
N
l
n
p
(
t
i
∣
w
,
x
i
,
β
)
+
∑
j
=
1
N
l
n
p
(
w
j
∣
α
)
(2.5)
\begin{aligned} lnp(w|t)=&ln\displaystyle\prod_{i=1}^{N}p(t_i|w,x_i,\beta)\displaystyle\prod_{j=1}^{N}p(w_j|\alpha)\\ &=\displaystyle\sum_{i=1}^{N}lnp(t_i|w,x_i,\beta)+\displaystyle\sum_{j=1}^{N}lnp(w_j|\alpha)\tag{2.5}\\ \end{aligned}
lnp(w∣t)=lni=1∏Np(ti∣w,xi,β)j=1∏Np(wj∣α)=i=1∑Nlnp(ti∣w,xi,β)+j=1∑Nlnp(wj∣α)(2.5)
将我们前面得到的似然函数和先验分布带入上式中可以得到
l n p ( w ∣ t ) = − β 2 ∑ i = 1 N ( t i − w T ϕ ( x i ) ) 2 − α 2 w T w + 常 数 (2.6) \begin{aligned} lnp(w|t)=-\frac{\beta}{2}\displaystyle\sum_{i=1}^{N}(t_i-w^T\phi(x_i))^2-\frac{\alpha}{2}w^Tw+常数\tag{2.6}\\ \end{aligned} lnp(w∣t)=−2βi=1∑N(ti−wTϕ(xi))2−2αwTw+常数(2.6)
所以后验分布关于 w w w的最大化就等价于平方和误差函数加上一个正则化项进行最小化。对于此,我们的方法就和上面的一样了,求他的极大似然解,求导即可。这边就不作详细阐述了。
贝叶斯的学习过程:
贝叶斯的学习过程就是通过数据来更新我们已知的先验信息,当我们得到了参数的后验信息,此时又传过来一个数据,那么我们就可以把刚刚求得的后验信息看作是相对于这个数据的一个先验信息,这样,我们就可以得到一个新的后验信息,这样一直下去,我们就可以求得参数的一个最优解。在PRML这本书中,有对这段话的详细阐述(第115页)。
三、两者之间的比较
1、频率派估计参数时,对于数据集的大小是有要求的,一般来说,数据集越大参数估计的才越准确;而贝叶斯学派是通过求得参数的后验分布来估计参数的取值,所以一般而言贝叶斯的方法只需要很小的数据集就可以得到精确的解。
2、频率派进行参数估计时,是将参数假设为一个未知的常数,而我们的工作就是通过数据集来学习这个参数,在学习过程中我们会不断地逼近这个常数;而贝叶斯学派是将参数看成一个随机变量,我们将通过参数的先验概率和似然函数来计算参数的后验概率,求使得后验概率最大的值为参数的最大后验取值。
3、频率学派在进行参数估计时常常会遇见过拟合的问题,所以频率学派的做法一般是会加上一个正则化项,来参数的估计值拉下来;而贝叶斯估计引入先验概率,我们可以求得关于参数的后验概率,我们根据后验概率直接求期望,就可以得到参数的最优值。
4、但贝叶斯的一个缺点就是在学习过程中学习的复杂度会比较高。