机器学习(回归一)——线性回归-最小二乘
从这篇博客开始将介绍机器学习中的比较重要的内容——回归,期间会穿插着涉及到的知识点,如正则化。本篇是回归大家族中最简单的一种——线性回归,采用最小二乘法来求得最优解。
从这篇博客开始将介绍机器学习中的比较重要的内容——回归,期间会穿插着涉及到的知识点,如正则化。
什么是回归(及线性回归)
概念
说到回归,一般都是指线性回归(linear regression),但从广义上来说线性回归是回归家族中的一种,也是最简单的一种。简单来说, 假设现在有一些数据点,我们用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作回归。
回归算法是一种比较常用的机器学习算法,属于有监督算法,用来建立“解释”变量(自变量X)和观测值(因变量Y)之间的关系;从机器学习的角度来讲,用于构建一个算法模型(函数)来做属性(X)与标签(Y)之间的映射关系,在算法的学习过程中,试图寻找一个函数 h : R 2 → R h:R^2 \to R h:R2→R 使得参数之间的关系拟合性最好。
回归算法中算法(函数)的最终结果是一个连续的数据值,输入值(属性值)是一个d维度的属性/数值向量。
“回归”一词的来历 :
今天我们所知道的回归是由达尔文(Charles Darwin)的表兄弟Francis Galton发明的。Galton于1877年完成了第一次回归预测,目的是根据上一代豌豆种子(双亲)的尺寸来预测下一代豌豆种子(孩子)的尺寸。Galton在大量对象上应用了回归分析,甚至包括人的身高。他注意到,如果双亲的高度比平均高度高,他们的子女也倾向于比平均高度高,但尚不及双亲。孩子的高度向着平均高度回退(回归)。Galton在多项研究上都注意到这个现象,所以尽管这个英文单词跟数值预测没有任何关系,但这种研究方法仍被称作回归 。
举例
举个房价预测的例子,现在有房屋面积及其对应的租赁价格如下
房屋面积( m 2 m^2 m2) | 租赁价格(1000¥) |
---|---|
10 | 0.8 |
15 | 1 |
20 | 1.8 |
30 | 2 |
50 | 3.2 |
60 | 3 |
60 | 3.1 |
70 | 3.5 |
请问,如果现在有一个房屋面积为55平,最终的租赁价格是多少比较合适?
比如近似满足y = ax + b。求得a b,代入55,就可得到大概价格。大致的函数图像如下:
当不仅仅考虑面积,还要考虑房间数数量。可在三维坐标系中表示。即:
h
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
h(x)=\theta_0+\theta_1x_1+\theta_2x_2
h(x)=θ0+θ1x1+θ2x2
房屋面积( m 2 m^2 m2) | 房间数量 | 租赁价格(1000¥) |
---|---|---|
10 | 1 | 0.8 |
20 | 1 | 1.8 |
30 | 1 | 2.2 |
30 | 2 | 2.5 |
70 | 3 | 5.5 |
70 | 2 | 5.2 |
… | … | … |
如果考虑的因素更多,也就是有更多的维度呢?此时的表达式:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
…
+
θ
n
x
n
=
θ
0
1
+
θ
1
x
1
+
…
+
θ
n
x
n
=
θ
0
x
0
+
θ
1
x
1
+
…
+
θ
n
x
n
=
∑
i
=
0
n
θ
i
x
i
=
θ
T
x
\begin{aligned} h_\theta (x)&=\theta_0+\theta_1x_1+…+ \theta_nx_n \\ &=\theta_0 1+\theta_1x_1+…+ \theta_nx_n\\ &=\theta_0 x_0+\theta_1x_1+…+ \theta_nx_n\\ &= \sum_{i=0}^n \theta_i x_i\\ &=\bm{\theta}^Tx \end{aligned}
hθ(x)=θ0+θ1x1+…+θnxn=θ01+θ1x1+…+θnxn=θ0x0+θ1x1+…+θnxn=i=0∑nθixi=θTx
最终要求是计算出
θ
\theta
θ 的值,并选择最优的
θ
\theta
θ值构成算法公式。其中
x
0
=
1
x_0=1
x0=1,
θ
0
\theta_0
θ0为偏置项,也就是截距。
ps:(线性回归的本质)
- 线性:θ最高次项为一次( θ \bm{\theta} θ是我们最终要求得的值)
- 回归:Y(或者 h θ ( x ) h_\theta (x) hθ(x))连续
最小二乘法公式推导
误差
上面例子中找到的最终表达式就一定是正确的吗?不一定,往往存在误差,即每个样本的误差。就像上图中,那个平面是我们找到表达式,每个红点是真实的值,他们之间就可能会存在误差,记为 ε n \varepsilon_n εn。
面积为10平和面积为70平之间有关系吗?没有。所以产生的误差
ε
1
\varepsilon_1
ε1和
ε
2
\varepsilon_2
ε2有关系吗?没有,也就是独立的。(独立同分布)
ε
\varepsilon
ε是在各个特征上的误差的叠加。
ε
=
(
ε
1
,
ε
2
,
…
,
ε
n
\bm{\varepsilon}=(\varepsilon_1, \varepsilon_2,…,\varepsilon_n
ε=(ε1,ε2,…,εn)根据中心极限定理,服从高斯正态分布,而且是均值为0。
y
(
i
)
=
θ
T
x
(
i
)
+
ε
(
i
)
(1)
y^{(i)} =\bm{\theta}^Tx^{(i)}+\varepsilon^{(i)} \tag{1}
y(i)=θTx(i)+ε(i)(1)
总结一下,就是误差 ε ( i ) ( 1 ≤ i ≤ n ) \varepsilon^{(i)} {(1\leq i \leq n)} ε(i)(1≤i≤n) 是独立同分布的,服从均值为0,方差为某定值 σ 2 \sigma ^ 2 σ2 的高斯正态分布。(原因:中心极限定理)。实际问题中,很多随机现象可以看做众多因素的独立影响的综合反应,往往服从正态分布.
观察上面的(1)式,
y
(
i
)
y^{(i)}
y(i) 就是真实值,并且
ε
(
i
)
ε^{(i)}
ε(i) 满足均值为0的高斯正态分布,所以:
p
(
ε
(
i
)
)
=
1
σ
2
π
e
−
(
ε
(
i
)
)
2
2
σ
2
(2)
p(\varepsilon^{(i)})= \frac{1}{\sigma \sqrt{2 \pi}} e^{-\frac{\left( ε^{(i)} \right)^2}{2 \sigma^ 2 }}\tag{2}
p(ε(i))=σ2π1e−2σ2(ε(i))2(2)
把(1)式代入(2)式,得:
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
1
σ
2
π
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
(3)
p(y^{(i)}|x^{(i)};\bm{\theta})= \frac{1}{\sigma \sqrt{2 \pi}} exp \left({-\frac{\left(y^{(i)} -\bm{\theta}^Tx^{(i)} \right)^2}{2 \sigma^ 2 }} \right)\tag{3}
p(y(i)∣x(i);θ)=σ2π1exp⎝⎜⎛−2σ2(y(i)−θTx(i))2⎠⎟⎞(3)
注:
e
x
e^x
ex 与
e
x
p
(
x
)
exp(x)
exp(x) 是一样的。
似然函数
构建似然函数。为什么要这样构建,可以参考《【最透彻】13_最大似然估计【小元老师】考研数学,概率论与数理统计》,小元老师讲得确实很透彻。
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
)
(4)
\begin{aligned} L{(\theta)}& = \prod_{i=1}^m p(y^{(i)}|x^{(i)};\bm{\theta}) \\ &= \prod_{i=1}^m \frac{1}{\sigma \sqrt{2 \pi}} exp \left({-\frac{\left(y^{(i)} -\bm{\theta}^Tx^{(i)} \right)^2}{2 \sigma^ 2 }} \right)\tag{4} \end{aligned}
L(θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏mσ2π1exp⎝⎜⎛−2σ2(y(i)−θTx(i))2⎠⎟⎞(4)
对数似然
初始目的是让似然函数
L
(
θ
)
L{(\theta)}
L(θ) 最大化,但不方便计算。现在把(4)式取对数(因为取对数不改变单调性,即
L
(
θ
)
L{(\theta)}
L(θ) 和
l
(
θ
)
l{(\theta)}
l(θ)单调性一致,并且能把上面的“累积”变成“累和”,从而简化运算)
l
(
θ
)
=
log
L
(
θ
)
=
log
∏
i
=
1
m
1
σ
2
π
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
=
m
log
1
σ
2
π
−
1
σ
2
∙
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
(5)
\begin{aligned} l{(\theta)}& = \log L{(\theta)}\\ &= \log \prod_{i=1}^m \frac{1}{\sigma \sqrt{2 \pi}} exp \left({-\frac{\left(y^{(i)} -\bm{\theta}^Tx^{(i)} \right)^2}{2 \sigma^ 2 }} \right)\\ &=m \log \frac{1}{\sigma \sqrt{2 \pi}} - \frac{1}{\sigma^2} \bullet \frac{1}{2} \sum_{i=1}^m \left( y^{(i)} -\bm{\theta}^Tx^{(i)} \right)^2 \tag{5} \end{aligned}
l(θ)=logL(θ)=logi=1∏mσ2π1exp⎝⎜⎛−2σ2(y(i)−θTx(i))2⎠⎟⎞=mlogσ2π1−σ21∙21i=1∑m(y(i)−θTx(i))2(5)
目标函数
通过上面取对数,把似然函数 L ( θ ) L{(\theta)} L(θ) 最大化问题转换成 l ( θ ) l{(\theta)} l(θ)最大化问题。
因为(5)式中
m
log
1
σ
2
π
m \log \frac{1}{\sigma \sqrt{2 \pi}}
mlogσ2π1 与
1
σ
2
\frac{1}{\sigma^2}
σ21 是定值,所以
l
(
θ
)
l{(\theta)}
l(θ)的大小取决于
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\frac{1}{2} \sum_{i=1}^m \left( y^{(i)} -\bm{\theta}^Tx^{(i)} \right)^2
21∑i=1m(y(i)−θTx(i))2。当
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\frac{1}{2} \sum_{i=1}^m \left( y^{(i)} -\bm{\theta}^Tx^{(i)} \right)^2
21∑i=1m(y(i)−θTx(i))2 最小时
l
(
θ
)
l{(\theta)}
l(θ) 取得最大值。所以,似然函数
L
(
θ
)
L{(\theta)}
L(θ) 最大化等价于
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\frac{1}{2} \sum_{i=1}^m \left( y^{(i)} -\bm{\theta}^Tx^{(i)} \right)^2
21∑i=1m(y(i)−θTx(i))2 最小化。即得到最终的目标函数:
l
o
s
s
(
y
j
,
y
^
j
)
=
J
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
(6)
\mathit{loss}{(y_j,\hat{y}_j)} = J{(\theta)} = \frac{1}{2} \sum_{i=1}^m \left( h_\theta \left(x^{(i)} \right) -y^{(i)} \right)^2 \tag{6}
loss(yj,y^j)=J(θ)=21i=1∑m(hθ(x(i))−y(i))2(6)
我们的最终目的,就是让目标函数
J
(
θ
)
J{(\theta)}
J(θ)最小化。(这里给出
1
2
\frac{1}{2}
21的目的就是为了方便求导时化简用)
求解 θ \theta θ
我们的基本思路就是,因为
J
(
θ
)
J{(\theta)}
J(θ) 是凸函数,在导数为0时,取得极值,所以重点就是求导。
J
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
=
1
2
(
X
θ
−
y
)
T
(
X
θ
−
y
)
(7)
J{(\theta)} = \frac{1}{2} \sum_{i=1}^m \left( h_\theta \left(x^{(i)} \right) -y^{(i)} \right)^2 = \frac{1}{2}(X\bm{\theta} -\bm{y})^T(X\bm{\theta}-\bm{y}) \tag{7}
J(θ)=21i=1∑m(hθ(x(i))−y(i))2=21(Xθ−y)T(Xθ−y)(7)
对(7)式((7)式的详细推导在文章最后有介绍)
J
(
θ
)
J{(\theta)}
J(θ) 求导(用到了矩阵求导,详细内容文章最后有介绍):
∇
θ
J
(
θ
)
=
∇
θ
(
1
2
(
X
θ
−
y
)
T
(
X
θ
−
y
)
)
=
∇
θ
(
1
2
(
θ
T
X
T
−
y
T
)
(
X
θ
−
y
)
)
=
∇
θ
(
1
2
(
θ
T
X
T
X
θ
−
θ
T
X
T
y
−
y
T
X
θ
+
y
T
y
)
)
=
1
2
(
2
X
T
X
θ
−
X
T
y
−
X
T
y
)
=
X
T
X
θ
−
X
T
y
(8)
\begin{aligned} \nabla_\theta J(\theta) &= \nabla_\theta \left( \frac{1}{2}(X\bm{\theta} -\bm{y})^T(X\bm{\theta}-\bm{y}) \right) \\ &= \nabla_\theta \left( \frac{1}{2}(\bm{\theta} ^TX^T -\bm{y}^T)(X\bm{\theta}-\bm{y}) \right) \\ &= \nabla_\theta \left( \frac{1}{2}(\bm{\theta} ^T X^T X \bm{\theta} - \bm{\theta}^T X^T \bm{y}- \bm{y}^T X \bm{\theta} + \bm{y}^T \bm{y}) \right) \\ &= \frac{1}{2} \left( 2X^T X \bm{\theta} -X^T \bm{y} - X^T \bm{y} \right) \\ &= X^T X \bm{\theta} - X^T \bm{y} \tag{8} \end{aligned}
∇θJ(θ)=∇θ(21(Xθ−y)T(Xθ−y))=∇θ(21(θTXT−yT)(Xθ−y))=∇θ(21(θTXTXθ−θTXTy−yTXθ+yTy))=21(2XTXθ−XTy−XTy)=XTXθ−XTy(8)
导求为0,即
X
T
X
θ
−
X
T
y
=
0
X^T X \bm{\theta} -X^T \bm{y} = 0
XTXθ−XTy=0,求得最优解
X
T
X
θ
−
X
T
y
=
0
⇓
X
T
X
θ
=
X
T
y
⇓
(
X
T
X
)
−
1
X
T
X
θ
=
(
X
T
X
)
−
1
X
T
y
⇓
θ
=
(
X
T
X
)
−
1
X
T
y
X^T X\bm{\theta} -X^T \bm{y} = 0 \\ \Downarrow \\ X^T X\bm{\theta} = X^T \bm{y} \\ \Downarrow \\ \left( X^T X \right)^{-1} X^T X \bm{\theta} = \left( X^T X \right)^{-1} X^T \bm{y} \\ \Downarrow \\ \bm{\theta} = \left( X^T X \right)^{-1} X^T \bm{y}
XTXθ−XTy=0⇓XTXθ=XTy⇓(XTX)−1XTXθ=(XTX)−1XTy⇓θ=(XTX)−1XTy
所以,最小二乘法(最小二乘法的定义文章最后有介绍)的参数最优解为:
min
θ
J
(
θ
)
=
(
X
T
X
)
−
1
X
T
y
(9)
\min\limits_{\bm{\theta}} J(\theta) = \left( X^T X \right)^{-1} X^T \bm{y} \tag{9}
θminJ(θ)=(XTX)−1XTy(9)
参数解析式优化
最小二乘法的使用要求矩阵
X
T
X
X^T X
XTX 是可逆的;为了防止不可逆或者过拟合的问题存在,可以增加额外数据影响,使得最终的矩阵是可逆的:
θ
=
(
X
T
X
+
λ
I
)
−
1
X
T
y
(10)
\bm{\theta} = \left( X^T X + \lambda I \right)^{-1} X^T \bm{y} \tag{10}
θ=(XTX+λI)−1XTy(10)
(10)式(文章最后有推导,来帮助理解)其实是引入L2正则化的岭回归(后续博客会有专门介绍)的解。
由于矩阵的逆的求解是一个难处,尤其对数据量特别大的时候。所以实际中很少用最小二乘法。
总结
上面讲的线性回归,直观来讲就是找出自变量X和因变量Y的线性关系,也就我们要训练出来的就是这样一个模型:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
…
+
θ
n
x
n
h_\theta (x)=\theta_0+\theta_1x_1+…+ \theta_nx_n
hθ(x)=θ0+θ1x1+…+θnxn
实际上就是训练出
θ
\bm{\theta}
θ 值。通过模型,就能得到预测值,我们最终要做的就是预测值和真实值之间的差最小,可通过误差来反映,得到一个损失函数:
J
(
θ
)
=
1
m
∑
i
=
1
m
(
y
(
i
)
−
y
^
(
i
)
)
J(\theta) = \frac{1}{m} \sum_{i=1}^m \left( y^{(i)} - \hat{y}^{(i)} \right)
J(θ)=m1i=1∑m(y(i)−y^(i))
上文中是通过最大似然估计得到的目标函数:
J
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J{(\theta)} = \frac{1}{2} \sum_{i=1}^m \left( h_\theta \left(x^{(i)} \right) -y^{(i)} \right)^2
J(θ)=21i=1∑m(hθ(x(i))−y(i))2
效果是一样的,这也是最小二乘法。
由于目标函数是一个凸函数的形式,那么在极值处取得最小值,也就是导数为0的时候。最终得到:
min
θ
J
(
θ
)
=
(
X
T
X
)
−
1
X
T
y
\min\limits_{\bm{\theta}} J(\theta) = \left( X^T X \right)^{-1} X^T \bm{y}
θminJ(θ)=(XTX)−1XTy
但有个要求,就是
X
T
X
X^T X
XTX 必须可逆,此时保证不了,但正定矩阵一定可逆。而
X
T
X
X^T X
XTX 是一个半正定矩阵,可以给他的对角线加一个偏移量,得到一个正定矩阵,即:
θ
=
(
X
T
X
+
λ
I
)
−
1
X
T
y
\bm{\theta} = \left( X^T X + \lambda I \right)^{-1} X^T \bm{y}
θ=(XTX+λI)−1XTy
这个式子,也是加上L2正则,即岭回归求解得到的式子,因此这个式子也能解决过拟合的问题。
补充
式子(7)的推导
对于列向量
α
=
(
a
1
,
a
2
,
a
3
,
…
,
a
m
)
T
\bm{\alpha} = (a_1 , a_2 , a_3 , …, a_m)^T
α=(a1,a2,a3,…,am)T :
α
T
α
=
α
∙
α
=
a
1
2
+
a
2
2
+
a
3
2
+
…
+
a
m
2
=
∑
i
=
1
m
a
i
2
\begin{aligned} \bm{\alpha} ^T \bm{\alpha} = \bm{\alpha} \bullet \bm{\alpha} = a_1^2 + a_2^2 + a_3^2 + …+ a_m^2 = \sum_{i=1}^m a_i^2 \end{aligned}
αTα=α∙α=a12+a22+a32+…+am2=i=1∑mai2
α
∙
α
\bm{\alpha} \bullet \bm{\alpha}
α∙α为向量点乘,也称为数量积或内积。
注意,我们在机器学习公式推导中用到的数据表示:
x ( i ) x^{(i)} x(i):表示第 i 个样本;
x i x_{i} xi:x 向量的第 i 维度的值。
对于真实的值构成的列向量
y
=
(
y
(
1
)
,
y
(
2
)
,
y
(
3
)
,
…
,
y
(
m
)
)
T
\bm{y} = (y^{(1)} , y^{(2)} , y^{(3)} , …, y^{(m)})^T
y=(y(1),y(2),y(3),…,y(m))T
以及对应的预测值构成的列向量
y
^
=
(
y
^
(
1
)
,
y
^
(
2
)
,
3
^
(
1
)
,
…
,
y
^
(
m
)
)
T
\bm{\hat{y}} = (\hat{y}^{(1)} , \hat{y}^{(2)} , \hat{3}^{(1)} , …, \hat{y}^{(m)})^T
y^=(y^(1),y^(2),3^(1),…,y^(m))T
求得的参数解列向量
θ
=
(
θ
0
,
θ
1
,
θ
2
,
…
,
θ
n
)
T
\bm{\theta} = (\theta_0, \theta _1, \theta_2,…,\theta_n)^T
θ=(θ0,θ1,θ2,…,θn)T
而样本X(m条样本,样本的维度为n)为:
X
=
(
x
0
1
x
1
1
x
2
1
⋯
x
n
1
x
0
2
x
1
2
x
2
2
⋯
x
n
2
⋮
⋮
⋮
⋱
⋮
x
0
m
x
1
m
x
2
m
⋯
x
n
m
)
X=\begin{pmatrix} x_0^1 & x_1^1 & x_2^1 & \cdots & x_n^1 \\ x_0^2 & x_1^2 & x_2^2 & \cdots & x_n^2 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ x_0^m & x_1^m & x_2^m & \cdots & x_n^m \\ \end{pmatrix}
X=⎝⎜⎜⎜⎛x01x02⋮x0mx11x12⋮x1mx21x22⋮x2m⋯⋯⋱⋯xn1xn2⋮xnm⎠⎟⎟⎟⎞
其中
θ
\theta
θ是未知数,可以写出关于
θ
\theta
θ的方程组:
{
x
0
(
1
)
θ
0
+
x
1
(
1
)
θ
1
+
x
2
(
1
)
θ
2
+
⋯
+
x
n
(
1
)
θ
n
=
y
^
(
1
)
x
0
(
2
)
θ
0
+
x
1
(
2
)
θ
1
+
x
2
(
2
)
θ
2
+
⋯
+
x
n
(
2
)
θ
n
=
y
^
(
2
)
⋯
x
0
(
m
)
θ
0
+
x
1
(
m
)
θ
1
+
x
2
(
m
)
θ
2
+
⋯
+
x
n
(
m
)
θ
n
=
y
^
(
m
)
\begin{cases} x_0^{(1)} \theta_0 +x_1^{(1)} \theta_1 + x_2^{(1)} \theta_2 + & \cdots &+ x_n^{(1)} \theta_n=\hat{y}^{(1)} \\ x_0^{(2)} \theta_0 +x_1^{(2)} \theta_1 + x_2^{(2)} \theta_2 + & \cdots &+ x_n^{(2)} \theta_n=\hat{y}^{(2)} \\ & \cdots \\ x_0^{(m)} \theta_0 +x_1^{(m)} \theta_1 + x_2^{(m)} \theta_2 + & \cdots &+ x_n^{(m)} \theta_n=\hat{y}^{(m)} \\ \end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧x0(1)θ0+x1(1)θ1+x2(1)θ2+x0(2)θ0+x1(2)θ1+x2(2)θ2+x0(m)θ0+x1(m)θ1+x2(m)θ2+⋯⋯⋯⋯+xn(1)θn=y^(1)+xn(2)θn=y^(2)+xn(m)θn=y^(m)
也就是:
X
θ
=
y
^
X \bm{\theta} =\bm{\hat{y}}
Xθ=y^
并且:
h
θ
(
x
(
i
)
)
=
x
0
(
i
)
θ
0
+
x
1
(
i
)
θ
1
+
x
2
(
i
)
θ
2
+
⋯
+
x
n
(
i
)
θ
n
=
x
(
i
)
θ
=
y
^
(
i
)
h_\theta \left( x^{(i)}\right) = x_0^{(i)} \theta_0 +x_1^{(i)} \theta_1 + x_2^{(i)} \theta_2 + \cdots + x_n^{(i)} \theta_n = x^{(i)} \theta = \hat{y}^{(i)}
hθ(x(i))=x0(i)θ0+x1(i)θ1+x2(i)θ2+⋯+xn(i)θn=x(i)θ=y^(i)
所以:
J
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
=
1
2
∑
i
=
1
m
(
y
^
(
i
)
−
y
(
i
)
)
2
=
1
2
(
(
y
^
(
1
)
−
y
(
1
)
)
2
+
(
y
^
(
1
)
−
y
(
1
)
)
2
+
⋯
+
(
y
^
(
n
)
−
y
(
n
)
)
2
)
=
1
2
(
y
^
−
y
)
2
=
1
2
(
y
^
−
y
)
∙
(
y
^
−
y
)
=
1
2
(
y
^
−
y
)
T
(
y
^
−
y
)
=
1
2
(
X
θ
−
y
)
T
(
X
θ
−
y
)
\begin{aligned} J{(\theta)} &= \frac{1}{2} \sum_{i=1}^m \left( h_\theta \left(x^{(i)} \right) -y^{(i)} \right)^2 \\ &= \frac{1}{2} \sum_{i=1}^m \left(\hat{y}^{(i)} -y^{(i)} \right)^2 \\ &= \frac{1}{2} \left( \left(\hat{y}^{(1)} -y^{(1)} \right)^2 + \left(\hat{y}^{(1)} -y^{(1)} \right)^2 + \cdots + \left(\hat{y}^{(n)} -y^{(n)} \right)^2 \right) \\ &= \frac{1}{2} \left( \bm{\hat{y}} - \bm{y} \right)^2 \\ &= \frac{1}{2} \left( \bm{\hat{y}} - \bm{y} \right) \bullet \left( \bm{\hat{y}} - \bm{y} \right)\\ &= \frac{1}{2} \left( \bm{\hat{y}} - \bm{y} \right)^T \left( \bm{\hat{y}} - \bm{y} \right) \\ &= \frac{1}{2} (X\bm{\theta} -\bm{y})^T(X\bm{\theta}-\bm{y}) \end{aligned}
J(θ)=21i=1∑m(hθ(x(i))−y(i))2=21i=1∑m(y^(i)−y(i))2=21((y^(1)−y(1))2+(y^(1)−y(1))2+⋯+(y^(n)−y(n))2)=21(y^−y)2=21(y^−y)∙(y^−y)=21(y^−y)T(y^−y)=21(Xθ−y)T(Xθ−y)
矩阵求导
式子(8)中用到了矩阵求导,常见的几个求导公式:
详细内容可参考《矩阵求导法则与性质》
对于上面的第2个式子,
f
(
x
)
=
x
T
A
x
f{(x)} = \bm{x}^T A \bm{x}
f(x)=xTAx,当
A
A
A 为对称矩阵,即
A
=
A
T
A = A^T
A=AT时:
∂
f
(
x
)
∂
x
=
∂
(
x
T
A
x
)
∂
x
=
A
x
+
A
T
x
=
2
A
x
\frac{\partial f{(x)}}{\partial \bm{x}} = \frac{\partial \left( \bm{x}^T A \bm{x}\right)}{\partial \bm{x}} = A\bm{x} + A^T \bm{x} = 2A \bm{x}
∂x∂f(x)=∂x∂(xTAx)=Ax+ATx=2Ax
在式子(8)中,
X
T
X
X^T X
XTX 为对称矩阵,所以:
∂
(
θ
T
X
T
X
θ
)
∂
θ
=
2
X
T
X
θ
\frac{\partial (\bm{\theta} ^T X^T X \bm{\theta})}{\partial \bm{\theta}} = 2 X^T X \bm{\theta}
∂θ∂(θTXTXθ)=2XTXθ
对于式于(8)中的
θ
T
X
T
y
\bm{\theta}^T X^T \bm{y}
θTXTy ,可以参考上面第4个式子中的第一个,即:
∂
(
θ
T
X
T
y
)
∂
θ
=
X
T
y
\frac{\partial (\bm{\theta}^T X^T \bm{y})}{\partial \bm{\theta}} = X^T \bm{y}
∂θ∂(θTXTy)=XTy
对于式子(8)中的
y
T
X
θ
\bm{y}^T X \bm{\theta}
yTXθ,可以参考上面的第3个式子,即:
∂
(
y
T
X
θ
)
∂
θ
=
∂
(
(
X
T
y
)
T
θ
)
∂
θ
=
X
T
y
\frac{\partial{(\bm{y}^T X \bm{\theta})}}{\partial \bm{\theta}}=\frac{\partial{\left( (X^T \bm{y})^T \bm{\theta} \right)}}{\partial \bm{\theta}} = X^T \bm{y}
∂θ∂(yTXθ)=∂θ∂((XTy)Tθ)=XTy
而式子(8)的
y
T
y
\bm{y}^T \bm{y}
yTy 为常数,求导为0,即:
∂
(
y
T
y
)
∂
θ
=
0
\frac{\partial (\bm{y}^T \bm{y})}{\partial \bm{\theta}} = 0
∂θ∂(yTy)=0
所以有式子(8)中的:
∇
θ
(
1
2
(
θ
T
X
T
X
θ
−
θ
T
X
T
y
−
y
T
X
θ
+
y
T
y
)
)
=
1
2
(
2
X
T
X
θ
−
X
T
y
−
X
T
y
)
\nabla_\theta \left( \frac{1}{2}(\bm{\theta} ^T X^T X \bm{\theta} - \bm{\theta}^T X^T \bm{y}- \bm{y}^T X \bm{\theta} + \bm{y}^T \bm{y}) \right) = \frac{1}{2} \left( 2X^T X \bm{\theta} -X^T \bm{y} - X^T \bm{y} \right)
∇θ(21(θTXTXθ−θTXTy−yTXθ+yTy))=21(2XTXθ−XTy−XTy)
式子(10)式的推导
上面的式子(9):
min
θ
J
(
θ
)
=
(
X
T
X
)
−
1
X
T
y
\min\limits_{\bm{\theta}} J(\theta) = \left( X^T X \right)^{-1} X^T \bm{y}
θminJ(θ)=(XTX)−1XTy
对于
(
X
T
X
)
−
1
\left( X^T X \right)^{-1}
(XTX)−1 ,如果存在,则必须行列式
∣
X
T
X
∣
|X^TX|
∣XTX∣ > 0
而
∣
X
T
X
∣
|X^TX|
∣XTX∣ 无法保证大于 0,可进行一下变换,引入非零向量
μ
\bm{\mu}
μ
μ
T
X
T
X
μ
=
(
X
μ
)
T
(
X
μ
)
=
(
X
μ
)
∙
(
X
μ
)
≥
0
\bm{\mu}^TX^TX\bm{\mu} = (X\bm{\mu})^T(X\bm{\mu}) = (X\bm{\mu})\bullet(X\bm{\mu}) \geq 0
μTXTXμ=(Xμ)T(Xμ)=(Xμ)∙(Xμ)≥0
可得
X
T
X
X^TX
XTX 为半正定矩阵。而对于非零向量
μ
\bm{\mu}
μ,有
μ
T
μ
\bm{\mu}^T\bm{\mu}
μTμ > 0
所以
μ
T
X
T
X
μ
+
μ
T
μ
>
0
μ
T
X
T
X
μ
+
μ
T
I
μ
>
0
μ
T
X
T
X
μ
+
μ
T
λ
I
μ
>
0
μ
T
(
X
T
X
+
λ
I
)
μ
>
0
\bm{\mu}^TX^TX\bm{\mu} + \bm{\mu}^T\bm{\mu} > 0 \\ \bm{\mu}^TX^TX\bm{\mu} + \bm{\mu}^T I \bm{\mu} > 0 \\ \bm{\mu}^TX^TX\bm{\mu} + \bm{\mu}^T \lambda I \bm{\mu} > 0 \\ \bm{\mu}^T(X^TX + \lambda I )\bm{\mu} > 0 \\
μTXTXμ+μTμ>0μTXTXμ+μTIμ>0μTXTXμ+μTλIμ>0μT(XTX+λI)μ>0
所以
X
T
X
+
λ
I
X^TX + \lambda I
XTX+λI 为正定矩阵,即可逆。(因:正定矩阵可逆)
所以式子(9)转换为了式子(10)
θ
=
(
X
T
X
+
λ
I
)
−
1
X
T
y
\bm{\theta} = \left( X^T X + \lambda I \right)^{-1} X^T \bm{y}
θ=(XTX+λI)−1XTy
这样就一定能得最优解。同时,引入了 “
λ
I
\lambda I
λI” 能有效防止过拟合。
对于式子(9),还可以从以下角度来理解(仅仅是为了帮助记忆):
原式子
X
θ
=
y
X \bm{\theta} =\bm{y}
Xθ=y, 要解出
θ
\bm{\theta}
θ ,必须消掉 X,即:
X
−
1
X
θ
=
X
−
1
y
X^{-1} X \bm{\theta} = X^{-1} \bm{y}
X−1Xθ=X−1y
如果 X 可逆,首先得满足 X 为方阵,而
X
T
X
X^TX
XTX 为方阵, 所以,原式子
X
θ
=
y
X \bm{\theta} =\bm{y}
Xθ=y 两边同乘上
X
T
X^T
XT:
X
T
X
θ
=
X
T
y
X^T X \bm{\theta} = X^T \bm{y}
XTXθ=XTy
现在出现了
X
T
X
X^TX
XTX ,两边再同乘
(
X
T
X
)
−
1
(X^TX)^{-1}
(XTX)−1 :
(
X
T
X
)
−
1
(
X
T
X
)
θ
=
(
X
T
X
)
−
1
X
T
y
(X^TX)^{-1} (X^T X) \bm{\theta} = (X^TX)^{-1} X^T \bm{y}
(XTX)−1(XTX)θ=(XTX)−1XTy
得到最终的解:
θ
=
(
X
T
X
)
−
1
X
T
y
\bm{\theta} = (X^TX)^{-1} X^T \bm{y}
θ=(XTX)−1XTy
最小二乘法
我们都学过求解关于 x \bm{x} x 的方程 A x = y A\bm{x}=\bm{y} Ax=y ,线性回归中是关于 θ \theta θ 的方程 X θ = y X \bm{\theta} =\bm{y} Xθ=y ,都是一样的。方程有时是没有解或多解的情况,这时,我们采取如下方针:
- 无解的情况下,至少给出一个答案 x \bm{x} x ,使得 A x A\bm{x} Ax 尽量“接近 y \bm{y} y”
- 有很多解的情况下,从中选出一个最“合理”的解
要注意,这里我们说的“接近”“合理”都是没有定义的。根据要解决的问题的不同,对这些概念进行度量的方法也有所不同,这就不单单是数学能解决的问题了。
实际中我们经常采用以下标准:
- A x − y A\bm{x}-\bm{y} Ax−y 的长度越小,我们认为越“接近”
- x \bm{x} x 的长度越小,我们认为越“合理”
(上面提到的长度,就是模长的意思)在这样的标准下,基于以上方针求解问题答案的方法,称为最小二乘法。最小二乘法作为常用的道具,在奇异值分解、广义逆矩阵等的计算中发挥着重要作用。
很显然,线性回归属于上面的第一种情况,是无解的情况。我们的目标就是解出
θ
\bm{\theta}
θ 使得
X
θ
=
y
^
X \bm{\theta} =\bm{\hat{y}}
Xθ=y^ 尽量接近
y
\bm{y}
y,也就是使误差
ε
\bm{\varepsilon}
ε 尽量小。
更多推荐
所有评论(0)