线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。
基本形式
一般线性模型表示:
y
^
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
n
x
n
\widehat{y} =\theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2}+...+\theta_{n}x_{n}
y
=θ0+θ1x1+θ2x2+...+θnxn
其中,
x
1
x_{1}
x1,
x
2
x_{2}
x2这些是
x
x
x的第1,2维属性(特征),这里的
x
x
x只是一个列向量,和我们常见到的
X
X
X不同。
X
X
X是包含很多的
x
x
x的,有时
x
x
x为了加以区分,写作
x
(
i
)
x^{(i)}
x(i)的形式,下面我们会用到。
θ
0
,
θ
1
,
θ
2
\theta_{0},\theta_{1},\theta_{2}
θ0,θ1,θ2是对应特征的权重,
θ
0
\theta_{0}
θ0也可以看作是偏置。
写成向量形式:
y
^
=
h
θ
(
x
)
=
θ
T
x
\widehat{y} = h_\theta(x) = \theta^{T}x
y
=hθ(x)=θTx
损失函数
我们要用已知的数据来求解
θ
\theta
θ的值。
我们采用最小二乘法。
基于均方误差最小化来进行模型求解的方法称为“最小二乘法”
均方误差(mean-square error, MSE)是反映估计量与被估计量之间差异程度的一种度量。
M
S
E
(
X
,
h
θ
)
=
1
m
∑
i
=
1
m
(
θ
T
x
(
i
)
−
y
(
i
)
)
2
MSE(X,h_{\theta}) = \frac{1}{m}\sum_{i=1}^{m}(\theta^{T}x^{(i)}-y^{(i)})^{2}
MSE(X,hθ)=m1i=1∑m(θTx(i)−y(i))2
x
(
i
)
x^{(i)}
x(i)就是
X
X
X的第i个列向量,或者说第i个数据,
X
X
X一共有m个数据(m列)。
最大似然估计
最大似然估计线性回归,其实和最小二乘法有异曲同工之妙,我们接下来分析。
误差
真实值与预测的值是有误差的,我们用
ε
\varepsilon
ε表示误差,根据大数定理,每一个样本的误差
ε
(
i
)
\varepsilon^{(i)}
ε(i)是独立同分布的,并且服从均值为 0 方差
σ
2
\sigma^{2}
σ2的高斯分布。
所以,对每一个真是的样本,有:
y
(
i
)
=
θ
T
x
(
i
)
+
ε
(
i
)
y^{(i)} = \theta^{T}x^{(i)}+\varepsilon^{(i)}
y(i)=θTx(i)+ε(i)
推导
最大似然估计是利用已知的样本的结果,在使用某个模型的基础上,反推最有可能导致这样结果的模型参数值。
因为误差服从高斯分布,那么出现误差
ε
(
i
)
\varepsilon^{(i)}
ε(i)的概率为:
p
(
ε
(
i
)
)
=
1
2
π
σ
e
x
p
(
−
(
ε
(
i
)
)
2
2
σ
2
)
p(\varepsilon^{(i)}) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(\varepsilon^{(i)})^{2}}{2\sigma^{2}})
p(ε(i))=2πσ1exp(−2σ2(ε(i))2)
其中,误差的概率
p
(
ε
(
i
)
)
p(\varepsilon^{(i)})
p(ε(i)),就是在已知
θ
\theta
θ给定
x
(
i
)
x^{(i)}
x(i)求得
y
(
i
)
y^{(i)}
y(i)的概率。于是,把误差带入到上式,可得:
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
1
2
π
σ
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
p(y^{(i)}|x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)}-\theta^{T}x^{(i)})^{2}}{2\sigma^{2}})
p(y(i)∣x(i);θ)=2πσ1exp(−2σ2(y(i)−θTx(i))2)
对已发生的m个样本,出现的概率为:
L
(
θ
)
=
∏
i
=
1
m
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
∏
i
=
1
m
1
2
π
σ
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
L(\theta) = \prod_{i=1}^{m} p(y^{(i)}|x^{(i)};\theta) = \prod_{i=1}^{m} \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)}-\theta^{T}x^{(i)})^{2}}{2\sigma^{2}})
L(θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏m2πσ1exp(−2σ2(y(i)−θTx(i))2)
两边取对数:
l
o
g
L
(
θ
)
=
l
o
g
∏
i
=
1
m
1
2
π
σ
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
logL(\theta) = log \prod_{i=1}^{m} \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)}-\theta^{T}x^{(i)})^{2}}{2\sigma^{2}})
logL(θ)=logi=1∏m2πσ1exp(−2σ2(y(i)−θTx(i))2)
= ∑ i = 1 m l o g 1 2 π σ − 1 σ 2 ⋅ 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 = \sum_{i=1}^{m} log \frac{1}{\sqrt{2\pi}\sigma} - \frac{1}{\sigma^{2}}\cdot \frac{1}{2} \sum_{i=1}^{m} (y^{(i)}-\theta^{T}x^{(i)})^{2} =i=1∑mlog2πσ1−σ21⋅21i=1∑m(y(i)−θTx(i))2
要使出现的概率最大,也就是要使上面表达式的值最大,减号左边是一个定值,等价于得使得下面得表达式值最小:
J
(
θ
)
=
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
J(\theta) = \frac{1}{2} \sum_{i=1}^{m} (y^{(i)}-\theta^{T}x^{(i)})^{2}
J(θ)=21i=1∑m(y(i)−θTx(i))2
现在我们看一下,其实就是最小二乘法。
求解方法
方程法
将损失函数写成矩阵形式:
J
(
θ
)
=
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
=
1
2
(
X
θ
−
Y
)
T
(
X
θ
−
Y
)
J(\theta) = \frac{1}{2} \sum_{i=1}^{m} (y^{(i)}-\theta^{T}x^{(i)})^{2} = \frac{1}{2} (X\theta-Y)^{T} (X\theta-Y)
J(θ)=21i=1∑m(y(i)−θTx(i))2=21(Xθ−Y)T(Xθ−Y)
J
(
θ
)
J(\theta)
J(θ)对
θ
\theta
θ求偏导:
▽
θ
J
(
θ
)
=
▽
θ
(
1
2
(
X
θ
−
y
)
T
(
X
θ
−
y
)
)
=
▽
θ
(
1
2
(
θ
T
X
T
−
y
T
)
(
X
θ
−
y
)
)
\triangledown_{\theta} J(\theta) = \triangledown_{\theta} \left (\frac{1}{2} (X\theta-y)^{T} (X\theta-y) \right ) = \triangledown_{\theta} \left (\frac{1}{2} (\theta^{T}X^{T}-y^{T}) (X\theta-y) \right )
▽θJ(θ)=▽θ(21(Xθ−y)T(Xθ−y))=▽θ(21(θTXT−yT)(Xθ−y))
= ▽ θ ( 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) ) = \triangledown_{\theta} \left (\frac{1}{2} (\theta^{T}X^{T} X\theta - \theta^{T}X^{T}y - y^{T}X\theta + y^{T}y) \right ) =▽θ(21(θTXTXθ−θTXTy−yTXθ+yTy))
= 1 2 ( 2 X T X θ − X T y − X T y + 0 ) = X T X θ − X T y = \frac{1}{2} \left ( 2X^{T} X \theta - X^{T}y - X^{T}y + 0 \right ) = X^{T} X \theta - X^{T}y =21(2XTXθ−XTy−XTy+0)=XTXθ−XTy
令偏导为0,得:
θ
=
(
X
T
X
)
−
1
X
T
y
\theta = (X^{T}X)^{-1} X^{T}y
θ=(XTX)−1XTy
trick: 记忆方法
记住
X
θ
=
y
X\theta = y
Xθ=y,然后等式两边在左同时乘上
X
T
X^{T}
XT,得到
X
T
X
θ
=
X
T
y
X^{T} X \theta = X^{T} y
XTXθ=XTy,再把左边得因子移到右边,得
θ
=
(
X
T
X
)
−
1
X
T
y
\theta = (X^{T}X)^{-1} X^{T}y
θ=(XTX)−1XTy
上面用到了一些矩阵求导公式,摘要一些用到的:
d
B
T
A
B
d
B
=
2
A
B
\frac{d B^{T} A B}{d B} = 2AB
dBdBTAB=2AB
d A T B d A = B \frac{d A^{T}B}{d A} = B dAdATB=B
d A B d B = A T \frac{d AB}{d B} = A^{T} dBdAB=AT
其他可以参考 常用的向量矩阵求导公式
梯度下降法
在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。
梯度下降基本算法为: 首先用随机值填充
θ
\theta
θ(初始化),然后逐步改进,目的是降低代价函数,直到算法收敛到最小或者达到指定步数为止。
θ
:
=
θ
−
α
⋅
▽
θ
J
(
θ
)
\theta := \theta - \alpha \cdot \bigtriangledown_{\theta}J(\theta)
θ:=θ−α⋅▽θJ(θ)
其中 α \alpha α为学习率, θ \theta θ是我们想要求得参数。
常见得几种梯度下降:
-
批量梯度下降(BGD)
优点:得到全局最优解;易于并行实现;
缺点:当样本数目很多时,训练过程会很慢。 -
随机梯度下降(SGD)
优点:训练速度快;
缺点:准确度下降,并不是全局最优;不易于并行实现。 -
小批量梯度下降(MBGD)
结合SGD和BGD,是一种比较好得方法。
本文参考:
线性回归 - 爖
其他资料:
latex在线编辑
latex中文说明书