1.1 线性回归
假设我们有一个有关 47 间房子的居住面积和价格的数据集:
| 居住面积(平方英尺) | 价格(1000 $) |
|---|---|
| 2104 | 400 |
| 1600 | 330 |
| 2400 | 369 |
| 1416 | 232 |
| 3000 | 540 |
将其可视化如下:

我们的目标是:给定这样的数据集,我们应该如何预测其他房子的价格,也就是说,我们应该给出怎样的预测函数?
以下列举一些记号和术语,方便之后的讨论:
我们使用上标来表示训练数据,其中 表示第 个输入数据或输入特征 (input features), 表示第 个输出数据或目标变量 (target variables);
一对 称为一个训练样本,而训练样本构成的数据集 被称为训练集;
一般用 表示输入数据的集合 ,一般用 表示输出数据的集合 .
在上例中,.
利用上面的术语,我们可以给有监督学习一个更加正式的表述:给定训练集,我们需要学习获得一个函数 ,使得 是 的良好预测。由于历史原因,这个函数 被称为假设函数 (hypothesis)。上面讲述的过程可以用如下的流程图表示:
如果我们想要预测的目标变量是一个连续随机变量,我们就把这类学习问题称作回归问题 (regression problem);若目标变量是离散随机变量,则称这类学习问题为 (classification problem)。
线性回归
为了让我们的学习问题更加有趣,我们引入更加丰富的训练集:
| Living area (feet) | bedrooms | Price (1000$s) |
|---|---|---|
| 2104 | 3 | 400 |
| 1600 | 3 | 330 |
| 2400 | 3 | 369 |
| 1416 | 2 | 232 |
| 3000 | 4 | 540 |
在这里, 是 中的二维向量: 表示第 个训练样本的第一个分量(房子的面积
为实施有监督学习,我们需要一个假设函数 ,在此处我们选择线性函数作为假设函数:
在此处, 被称为参数或权值 (parameters / weights)。如无歧义,我们可以丢弃下标 ,简记为 . 为简化我们的表达式,我们引入 ,因此从向量内积的角度看,上式可重写为
其中右端的 是参数向量 / 权值向量, 是输入向量, 是输入特征数(不包含
现在,我们所需要做的就是找到 的表达式,使得我们的假设函数 尽可能地接近 . 为量化表示 “接近” 这一概念,我们定义代价函数 (cost function):
我们的目标就是找到一个 ,使得 取得最小值。然后,取这个 作为我们假设函数的参数向量。
LMS 算法
我们可以使用一种算法,它从某个初始猜测值 出发,然后不断地改变 ,使得 不断减小,直到 能够收敛到某个确定的 . 我们可以考虑梯度下降算法 (gradient descent algorithm),这个算法秉承着上面的思路,对 不断进行更新:
WARNING
- 在接下来的所有语境中,我们用 表示把 赋值给 ,而用 表示 和 相等。这是符合数学传统规定的。
- 上式同时对所有 执行。
- 称为学习率。
现在,我们只需计算 的各阶偏导数即可。由于 中有求和项,为了讨论的便利,我们先假设 ,即我们只有一个训练样本,这样我们就可以忽略其中的求和符号:
因此对单个训练数据,我们的更新方法是:
这一法则称为 LMS 更新法则 (least mean squares),也被称为 Widrow-Hoff 学习法则。我们可以发现,这一更新公式与误差项成比例:误差越大,需要更新的越多;反之越少。
对上面这个公式,如果我们将其写成向量的形式,可有:
而对于由多个训练样本组成的训练集,我们有两种方式处理:
方式一:批量梯度下降
利用
一次性处理训练集中的所有训练样本。这种方法的正确性是显然的:对于有限个训练样本,求和和求偏导显然是可以交换次序的(当然,无限项就需要斟酌是否能够交换次序了,一般来说和级数的一致收敛性相关
NOTE
批量梯度下降法的优缺点如下:
- 优点:收敛稳定;
- 缺点:计算开销大,在完成所有样本的计算之后才能更新参数。
方式二:随机梯度下降
算法如下:
这种算法被称为随机梯度下降。
NOTE
随机梯度下降的优缺点如下:
- 优点:相比于批量梯度下降,随机梯度下降的计算开销较小,能够更快地 “靠近” 极值点;
- 缺点:但是随机梯度下降的收敛是震荡的,有时候并不会收敛到极值点。
尽管如此,那些在极值点附近的震荡值是极值点的良好近似!所以在实际运用中,随机梯度下降的应用是更加广泛的。
正规方程
矩阵函数微积分
对函数 ,我们定义它的导数如下:
假设 是一个 矩阵,函数 定义为
则其导数为
最小二乘
接下来我们尝试找出 的准确收敛值。给定一个训练集,我们定义一个 矩阵 ,包含所有的输入特征:
定义 为 维向量,包含所有的目标变量:
因为 ,我们可以发现:
根据二次型相关知识,我们有
微积分观点
因此,为找到使 取到最小值的 ,对左式,我们只需要对 求导即可。
倒数第二个等号利用了恒等式 和 ,其中 为对称阵。
因此,令 ,我们得到了正规方程:
因此有
线性代数观点
事实上,更简洁的理解方式是线性代数的理解方式。如果我们将 理解为 的每一个列向量的线性组合,对于任意的 , 张成了一个线性空间。一般而言, 不在这一线性空间中,对应线性方程组 无解;但如果我们将 投影到该线性空间中,以投影向量替代原线性方程组的右端常数项,那么我们就一定可以找到一组解,且这组解一定会使得 取到最小值。
不妨设 在这一线性空间的投影为 ,那么 就一定垂直于这个线性空间,也就是 与 的所有列向量的点积为零,即
解得
正规方程提供了线性回归的精确数学解,是理解最小二乘本质的基础,但在大数据场景下梯度下降更实用。