机器学习(回归一)——线性回归-最小二乘


从这篇博客开始将介绍机器学习中的比较重要的内容——回归,期间会穿插着涉及到的知识点,如正则化。

什么是回归(及线性回归)

概念

说到回归,一般都是指线性回归(linear regression),但从广义上来说线性回归是回归家族中的一种,也是最简单的一种。简单来说, 假设现在有一些数据点,我们用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作回归。

回归算法是一种比较常用的机器学习算法,属于有监督算法,用来建立“解释”变量(自变量X)和观测值(因变量Y)之间的关系;从机器学习的角度来讲,用于构建一个算法模型(函数)来做属性(X)与标签(Y)之间的映射关系,在算法的学习过程中,试图寻找一个函数 h : R 2 R h:R^2 \to R 使得参数之间的关系拟合性最好。

回归算法中算法(函数)的最终结果是一个连续的数据值,输入值(属性值)是一个d维度的属性/数值向量。

“回归”一词的来历 :
今天我们所知道的回归是由达尔文(Charles Darwin)的表兄弟Francis Galton发明的。Galton于1877年完成了第一次回归预测,目的是根据上一代豌豆种子(双亲)的尺寸来预测下一代豌豆种子(孩子)的尺寸。Galton在大量对象上应用了回归分析,甚至包括人的身高。他注意到,如果双亲的高度比平均高度高,他们的子女也倾向于比平均高度高,但尚不及双亲。孩子的高度向着平均高度回退(回归)。Galton在多项研究上都注意到这个现象,所以尽管这个英文单词跟数值预测没有任何关系,但这种研究方法仍被称作回归 。

举例

举个房价预测的例子,现在有房屋面积及其对应的租赁价格如下

房屋面积( m 2 m^2 ) 租赁价格(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

房屋面积( m 2 m^2 ) 房间数量 租赁价格(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}

最终要求是计算出 θ \theta 的值,并选择最优的 θ \theta 值构成算法公式。其中 x 0 = 1 x_0=1 θ 0 \theta_0 为偏置项,也就是截距。
ps:(线性回归的本质)

  1. 线性:θ最高次项为一次( θ \bm{\theta} 是我们最终要求得的值)
  2. 回归:Y(或者 h θ ( x ) h_\theta (x) )连续

最小二乘法公式推导

误差

上面例子中找到的最终表达式就一定是正确的吗?不一定,往往存在误差,即每个样本的误差。就像上图中,那个平面是我们找到表达式,每个红点是真实的值,他们之间就可能会存在误差,记为 ε n \varepsilon_n

面积为10平和面积为70平之间有关系吗?没有。所以产生的误差 ε 1 \varepsilon_1 ε 2 \varepsilon_2 有关系吗?没有,也就是独立的。(独立同分布) ε \varepsilon 是在各个特征上的误差的叠加。 ε = ( ε 1 , ε 2 , , ε n \bm{\varepsilon}=(\varepsilon_1, \varepsilon_2,…,\varepsilon_n )根据中心极限定理,服从高斯正态分布,而且是均值为0。
y ( i ) = θ T x ( i ) + ε ( i ) (1) y^{(i)} =\bm{\theta}^Tx^{(i)}+\varepsilon^{(i)} \tag{1}

对于每个样本 x ( i ) x^{(i)} 代入 h(x) 得到的估计值 y ^ ( i ) \hat{y}^{(i)} 与真实值 y ( i ) y^{(i)} 存在的差值 ε ( i ) ε^{(i)}

总结一下,就是误差 ε ( i ) ( 1 i n ) \varepsilon^{(i)} {(1\leq i \leq n)} 是独立同分布的,服从均值为0,方差为某定值 σ 2 \sigma ^ 2 的高斯正态分布。(原因:中心极限定理)。实际问题中,很多随机现象可以看做众多因素的独立影响的综合反应,往往服从正态分布.

观察上面的(1)式, y ( i ) y^{(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}
把(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}
e x e^x e x p ( 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 ( θ ) L{(\theta)} 最大化,但不方便计算。现在把(4)式取对数(因为取对数不改变单调性,即 L ( θ ) L{(\theta)} l ( θ ) l{(\theta)} 单调性一致,并且能把上面的“累积”变成“累和”,从而简化运算)
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 ( θ ) L{(\theta)} 最大化问题转换成 l ( θ ) l{(\theta)} 最大化问题。

因为(5)式中 m log 1 σ 2 π m \log \frac{1}{\sigma \sqrt{2 \pi}} 1 σ 2 \frac{1}{\sigma^2} 是定值,所以 l ( θ ) l{(\theta)} 的大小取决于 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 。当 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 最小时 l ( θ ) l{(\theta)} 取得最大值。所以,似然函数 L ( θ ) L{(\theta)} 最大化等价于 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 最小化。即得到最终的目标函数:
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}
我们的最终目的,就是让目标函数 J ( θ ) J{(\theta)} 最小化。(这里给出 1 2 \frac{1}{2} 的目的就是为了方便求导时化简用)

求解 θ \theta

我们的基本思路就是,因为 J ( θ ) J{(\theta)} 是凸函数,在导数为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}
对(7)式((7)式的详细推导在文章最后有介绍 J ( θ ) J{(\theta)} 求导(用到了矩阵求导,详细内容文章最后有介绍):
θ 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}
导求为0,即 X T X θ X T y = 0 X^T X \bm{\theta} -X^T \bm{y} = 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}
所以,最小二乘法(最小二乘法的定义文章最后有介绍)的参数最优解为:
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}

参数解析式优化

最小二乘法的使用要求矩阵 X T X X^T X 是可逆的;为了防止不可逆或者过拟合的问题存在,可以增加额外数据影响,使得最终的矩阵是可逆的:
θ = ( 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}
(10)式(文章最后有推导,来帮助理解)其实是引入L2正则化的岭回归(后续博客会有专门介绍)的解。
由于矩阵的逆的求解是一个难处,尤其对数据量特别大的时候。所以实际中很少用最小二乘法。

总结

上面讲的线性回归,直观来讲就是找出自变量X和因变量Y的线性关系,也就我们要训练出来的就是这样一个模型:
h θ ( x ) = θ 0 + θ 1 x 1 + + θ n x n h_\theta (x)=\theta_0+\theta_1x_1+…+ \theta_nx_n
实际上就是训练出 θ \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 ( θ ) = 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
效果是一样的,这也是最小二乘法
由于目标函数是一个凸函数的形式,那么在极值处取得最小值,也就是导数为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}
但有个要求,就是 X T X X^T X 必须可逆,此时保证不了,但正定矩阵一定可逆。而 X T X X^T X 是一个半正定矩阵,可以给他的对角线加一个偏移量,得到一个正定矩阵,即:
θ = ( X T X + λ I ) 1 X T y \bm{\theta} = \left( X^T X + \lambda I \right)^{-1} X^T \bm{y}
这个式子,也是加上L2正则,即岭回归求解得到的式子,因此这个式子也能解决过拟合的问题。



补充

式子(7)的推导

对于列向量 α = ( a 1 , a 2 , a 3 , , a m ) T \bm{\alpha} = (a_1 , a_2 , a_3 , …, a_m)^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}
α α \bm{\alpha} \bullet \bm{\alpha} 为向量点乘,也称为数量积或内积。

注意,我们在机器学习公式推导中用到的数据表示:

x ( i ) x^{(i)} :表示第 i 个样本;
x i x_{i} 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 ) , 3 ^ ( 1 ) , , y ^ ( m ) ) T \bm{\hat{y}} = (\hat{y}^{(1)} , \hat{y}^{(2)} , \hat{3}^{(1)} , …, \hat{y}^{(m)})^T
求得的参数解列向量 θ = ( θ 0 , θ 1 , θ 2 , , θ n ) T \bm{\theta} = (\theta_0, \theta _1, \theta_2,…,\theta_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}
其中 θ \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}
也就是: X θ = y ^ X \bm{\theta} =\bm{\hat{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)}
所以:
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}

矩阵求导

式子(8)中用到了矩阵求导,常见的几个求导公式:
在这里插入图片描述
详细内容可参考《矩阵求导法则与性质》

对于上面的第2个式子, f ( x ) = x T A x f{(x)} = \bm{x}^T A \bm{x} ,当 A A 为对称矩阵,即 A = A T A = A^T 时:
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}
在式子(8)中, X T X X^T X 为对称矩阵,所以:
( θ 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}

对于式于(8)中的 θ T X T y \bm{\theta}^T X^T \bm{y} ,可以参考上面第4个式子中的第一个,即:
( θ T X T y ) θ = X T y \frac{\partial (\bm{\theta}^T X^T \bm{y})}{\partial \bm{\theta}} = X^T \bm{y}
对于式子(8)中的 y T X θ \bm{y}^T X \bm{\theta} ,可以参考上面的第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}
而式子(8)的 y T y \bm{y}^T \bm{y} 为常数,求导为0,即:
( y T y ) θ = 0 \frac{\partial (\bm{y}^T \bm{y})}{\partial \bm{\theta}} = 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)

式子(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}
对于 ( X T X ) 1 \left( X^T X \right)^{-1} ,如果存在,则必须行列式 X T X |X^TX| > 0
X T X |X^TX| 无法保证大于 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
可得 X T X X^TX 为半正定矩阵。而对于非零向量 μ \bm{\mu} ,有 μ T μ \bm{\mu}^T\bm{\mu} > 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 \\
所以 X T X + λ I X^TX + \lambda 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}
这样就一定能得最优解。同时,引入了 “ λ I \lambda I ” 能有效防止过拟合。

对于式子(9),还可以从以下角度来理解(仅仅是为了帮助记忆):
原式子 X θ = y X \bm{\theta} =\bm{y} , 要解出 θ \bm{\theta} ,必须消掉 X,即:
X 1 X θ = X 1 y X^{-1} X \bm{\theta} = X^{-1} \bm{y}
如果 X 可逆,首先得满足 X 为方阵,而 X T X X^TX 为方阵, 所以,原式子 X θ = y X \bm{\theta} =\bm{y} 两边同乘上 X T X^T
X T X θ = X T y X^T X \bm{\theta} = X^T \bm{y}
现在出现了 X T X X^TX ,两边再同乘 ( X T X ) 1 (X^TX)^{-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}
得到最终的解:
θ = ( X T X ) 1 X T y \bm{\theta} = (X^TX)^{-1} X^T \bm{y}

最小二乘法

我们都学过求解关于 x \bm{x} 的方程 A x = y A\bm{x}=\bm{y} ,线性回归中是关于 θ \theta 的方程 X θ = y X \bm{\theta} =\bm{y} ,都是一样的。方程有时是没有解或多解的情况,这时,我们采取如下方针:

  • 无解的情况下,至少给出一个答案 x \bm{x} ,使得 A x A\bm{x} 尽量“接近 y \bm{y}
  • 有很多解的情况下,从中选出一个最“合理”的解

要注意,这里我们说的“接近”“合理”都是没有定义的。根据要解决的问题的不同,对这些概念进行度量的方法也有所不同,这就不单单是数学能解决的问题了。

实际中我们经常采用以下标准:

  • A x y A\bm{x}-\bm{y} 的长度越小,我们认为越“接近”
  • x \bm{x} 的长度越小,我们认为越“合理”

(上面提到的长度,就是模长的意思)在这样的标准下,基于以上方针求解问题答案的方法,称为最小二乘法。最小二乘法作为常用的道具,在奇异值分解、广义逆矩阵等的计算中发挥着重要作用。
很显然,线性回归属于上面的第一种情况,是无解的情况。我们的目标就是解出 θ \bm{\theta} 使得 X θ = y ^ X \bm{\theta} =\bm{\hat{y}} 尽量接近 y \bm{y} ,也就是使误差 ε \bm{\varepsilon} 尽量小。

发布了108 篇原创文章 · 获赞 333 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/zhanglianhai555/article/details/103175091