摘要: 线性回归是直接从问题到解决方案, 而岭回归之类则让我们理解正则项.
1. 一元线性回归
在二维平面有一系列数据点, x x x 坐标表示其数据, y y y 坐标表示其标签. 对于新的数据, 如何预测其标签? 为此, 我们可以建立一个线性函数 y = a x + b y = ax + b y=ax+b.
- 输入: 数据点集合 { ( x i , y i ) } i = 1 n \{(x_i, y_i)\}_{i = 1}^n {(xi,yi)}i=1n.
- 输出: 线性函数的系数 a , b a, b a,b.
- 优化目标: min ∑ i = 1 n ( y i − y i ′ ) 2 \min \sum_{i = 1}^n (y_i - y_i')^2 min∑i=1n(yi−yi′)2, 其中 y i ′ = a x i + b y_i' = a x_i + b yi′=axi+b.
这个问题在高中学过, 称为最小二乘法. 从优化目标可以看出, 优化的是 l 2 l_2 l2 模.
图 1 给出了广告费与销售额之间的关系. 虚线所示的 f ( x ) f(x) f(x) 试图对所给的数据点进行拟合. 由此可以预测广告费为 2 万元、14万元等所对应的销售额. 直观地看, a a a 是斜率, b b b 是偏移量.
2. 多元线性回归
多元的情况, 只需要将 x x x 和 a a a 从标量改为向量即可. y y y 与 b b b 仍然为标量. 这时, 拟合直线换成了超平面.
- 输入: 数据点集合 { ( x i , y i ) } i = 1 n \{(\mathbf{x}_i, y_i)\}_{i = 1}^n {(xi,yi)}i=1n, 其中 x i ∈ R m \mathbf{x}_i \in \mathbb{R}^m xi∈Rm.
- 输出: 线性函数的系数 a , b \mathbf{a}, b a,b.
- 优化目标: min ∑ i = 1 n ( y i − f ( x i ) ) 2 \min \sum_{i = 1}^n (y_i - f(\mathbf{x}_i))^2 min∑i=1n(yi−f(xi))2, 其中 f ( x i ) = a x i + b f(\mathbf{x}_i) = \mathbf{a} \mathbf{x}_i + b f(xi)=axi+b.
为了解该问题, 可以将数据集合用矩阵表示, 标签集合则用向量表示, 即:
Y
=
X
θ
+
b
.
(1)
\mathbf{Y} = \mathbf{X\theta} + b. \tag{1}
Y=Xθ+b.(1)
在
X
\mathbf{X}
X 最左边加上一列全 1, 可以把
b
b
b 吸收进
a
\mathbf{a}
a 里面去, 获得
Y
=
X
θ
,
(2)
\mathbf{Y} = \mathbf{X\theta}, \tag{2}
Y=Xθ,(2)
其中
θ
=
(
θ
0
,
θ
1
,
…
,
θ
m
)
\mathbf{\theta} = (\theta_0, \theta_1, \dots, \theta_m)
θ=(θ0,θ1,…,θm)
例如:
X
=
[
1
0.2
0.4
0.3
1
0.3
0.5
0.4
1
0.3
0.7
0.5
1
0.4
0.6
0.6
1
0.2
0.8
0.6
]
,
Y
=
[
0.2
0.3
0.7
0.4
0.5
]
\mathbf{X} = \left[\begin{array}{lll} 1 & 0.2 & 0.4 & 0.3\\ 1 & 0.3 & 0.5 & 0.4\\ 1 & 0.3 & 0.7 & 0.5\\ 1 & 0.4 & 0.6 & 0.6\\ 1 & 0.2 & 0.8 & 0.6\\ \end{array}\right], \mathbf{Y} = \left[\begin{array}{l} 0.2\\ 0.3\\ 0.7\\ 0.4\\ 0.5\\ \end{array}\right]
X=
111110.20.30.30.40.20.40.50.70.60.80.30.40.50.60.6
,Y=
0.20.30.70.40.5
由于实例个数 (这里
n
=
5
n = 5
n=5) 多于特征个数 (这里
m
=
3
m = 3
m=3), (2) 式是一个超定方程组
{
1
θ
0
+
0.2
θ
1
+
0.4
θ
2
+
0.3
θ
3
=
0.2
1
θ
0
+
0.3
θ
1
+
0.5
θ
2
+
0.4
θ
3
=
0.3
1
θ
0
+
0.3
θ
1
+
0.7
θ
2
+
0.5
θ
3
=
0.7
1
θ
0
+
0.4
θ
1
+
0.6
θ
2
+
0.6
θ
3
=
0.4
1
θ
0
+
0.2
θ
1
+
0.8
θ
2
+
0.6
θ
3
=
0.5
(3)
\left\{\begin{array}{l} 1\theta_0 + 0.2\theta_1 + 0.4\theta_2 + 0.3\theta_3 = 0.2\\ 1\theta_0 + 0.3\theta_1 + 0.5\theta_2 + 0.4\theta_3 = 0.3\\ 1\theta_0 + 0.3\theta_1 + 0.7\theta_2 + 0.5\theta_3 = 0.7\\ 1\theta_0 + 0.4\theta_1 + 0.6\theta_2 + 0.6\theta_3 = 0.4\\ 1\theta_0 + 0.2\theta_1 + 0.8\theta_2 + 0.6\theta_3 = 0.5\\ \end{array}\right. \tag{3}
⎩
⎨
⎧1θ0+0.2θ1+0.4θ2+0.3θ3=0.21θ0+0.3θ1+0.5θ2+0.4θ3=0.31θ0+0.3θ1+0.7θ2+0.5θ3=0.71θ0+0.4θ1+0.6θ2+0.6θ3=0.41θ0+0.2θ1+0.8θ2+0.6θ3=0.5(3)
即一般情况下不存在这样的
θ
\mathbf{\theta}
θ 使得该方程组成立. 为了理解这个事情, 可以回到一元线性回归, 当数据点 3 个或以上, 就不存在一条直线刚好穿过所有的点.
根据优化目标, 可以解得 (参见知乎上的推导 或 CSDN 上其他作者的贴子):
θ
=
(
X
T
X
)
−
1
X
T
Y
.
(4)
\mathbf{\theta} = (\mathbf{X}^{\mathsf{T}}\mathbf{X})^{-1}\mathbf{X}^\mathsf{T}\mathbf{Y} \tag{4}.
θ=(XTX)−1XTY.(4)
如果这里求矩阵的逆出了问题 (有些矩阵没有逆), 就可以用梯度下降法来求解.
3. 岭回归
(3) 式在求逆矩阵的时候可能出问题, 为了解决它, 引入
新的优化目标:
min
∑
i
=
1
n
(
y
i
−
f
(
x
i
)
)
2
+
λ
∑
j
=
1
m
θ
j
2
\min \sum_{i = 1}^n (y_i - f(\mathbf{x}_i))^2 + \lambda \sum_{j = 1}^m \theta_j^2
min∑i=1n(yi−f(xi))2+λ∑j=1mθj2.
由此推导出
θ
=
(
X
T
X
+
λ
I
)
−
1
X
T
Y
.
(5)
\mathbf{\theta} = (\mathbf{X}^{\mathsf{T}}\mathbf{X} + \lambda \mathbf{I})^{-1}\mathbf{X}^\mathsf{T}\mathbf{Y} \tag{5}.
θ=(XTX+λI)−1XTY.(5)
λ
I
\lambda \mathbf{I}
λI 的加入使得矩阵一定可逆.
除了解决矩阵求逆的问题, 新的优化目标还有个非常重要的作用: 对
θ
j
\theta_j
θj 的值进行惩罚. 也就是说,
θ
j
\theta_j
θj 的绝对值越大, 这个方案越不好.
λ
∑
j
=
1
m
θ
j
2
\lambda \sum_{j = 1}^m \theta_j^2
λ∑j=1mθj2 就是传说中的正则项, 它牺牲了模型在训练集中的拟合能力, 但提升了在新数据上的预测能力 (即泛化能力). 而模型的泛化能力是机器学习的核心.
这里的系数
λ
\lambda
λ 设置得越大, 对训练数据的拟合就越差. 但设置得太小, 就不能达到控制过拟合的目的.
很多机器学习的论文, 都致力于提升模型的泛化能力. 俗气一点, 就是使用不同的正则项, 然后再给出合理的解释, 并用良好的实验结果来证实. 系数
λ
\lambda
λ 的设置, 也通常是人为的.
4. 欠拟合
图 1 所示的糖葫芦串得不错, 但在现实世界中, 用一根直接把数据串起来很困难. 这很容易导致欠拟合, 也就是说, 很多点都拟合得不好.
4.1 局部线性回归
数据往往体现一定的局部性, 即与自己相邻的数据, 影响更大 (回头想想 k k kNN). 所以我们可以更重视局部点的影响, 由此引入局部线性回归, 如图 2 所示. 更多内容参见 其它CSDN 贴子.
4.2 离群点
如图 3 所示, 少量离群点导致拟合函数产生了较大的偏移 (下面这根线). 这些离群点可能是数据采集过程中错误导致. 一种解决方式如下: 生成拟合函数后, 可以把偏差最大的一部分 (如 1%) 训练数据去掉, 再进行拟合 (上面这根线). 这种简单的方式可以削弱离群点的影响.
5. 线性回归在机器学习常识中的意义
- 是机器学习问题定义的一个典型案例.
- 线性模型及其变种在很多地方被采用. 也不是因为线性模型的拟合能力强 (其实它是最弱的), 而是因为它简单, 易于计算.
- 给出了一个典型的优化目标.
- 能从优化目标直接获得最优解, 如 (3) 式所示. 对于绝大多数机器学习问题, 这点无法做到.
- 给出了一个典型的正则项.
6. 常见误区
- 可视化的时候, 标签本身需要占一个维度. 仅 1 个特征的时候,就需要在二维平面上表示. 例中有 3 个特征, 应该使用 4 维空间中的超平面表示. 这与后面的分类问题很容易弄混.
- X \mathbf{X} X 最左边一列为 1, 实际是为了把偏移量放到 θ \mathbf{\theta} θ, 方便表达. 并不是数据多了一个特征.
- 超定方程组不存在解. 误差是难免的. (4) 式理论上使得误差最小.
- 系数 λ \lambda λ 的大小表示对过拟合的控制强度.
- 从一元线性回归来看, 误差不是点到拟合直线的距离, 而是 y i y_i yi 与 f ( x i ) f(x_i) f(xi) 的差值.