跳到主要内容

四种完全不同的想法,在同一堆数据上解出同一组参数——这不是巧合,是这一行里最重要的一次「殊途同归」。

线性回归:同一条直线的四种解法

1. 这一章讲什么

三件事: 一条直线怎么用数据「定」出来;四种看起来毫不相干的参数估计方法各自怎么入手; 以及为什么它们最后给出的是同一个(或几乎同一个)答案。

它在全书链条里的位置: 这是第 05 章五个零件的第一次整机装配。 模型 = 线性函数,损失 = 平方损失,这两件都是最简配置——正因为简单, 四种学习准则才能各自走到头、算出闭式答案,然后放在一起对照。 这一章建立的对照表,是后面理解「为什么深度学习里正则化等价于先验」的底稿。

需要第 05 章。 第 6、7 节各用一次第 03 章的最大似然和先验。

2. 顶层全景

同一堆点 (x, y)

├─ 路① 经验风险最小化:直接最小化平方损失
│ ──▶ 令梯度为零,一步解出 ──▶ 最小二乘法

├─ 路② 结构风险最小化:平方损失 + 复杂度惩罚
│ ──▶ 同样一步解出 ──▶ 岭回归(参数被往小里拉)

├─ 路③ 最大似然:假设「直线 + 高斯噪声」生出这些点
│ ──▶ 找让这批点最不意外的参数

└─ 路④ 最大后验:再给参数本身加一个先验
──▶ 找「既解释数据、又不离谱」的参数

结果:路① = 路③(解完全相同)
路② = 路④(惩罚项系数 = 噪声方差 ÷ 先验方差)

一句话链条: 路①③是「只看数据」,路②④是「数据 + 对参数的偏好」; 而「加个惩罚项」和「假设参数本来就该小」是同一件事的两种说法。

3. 一条直线怎么被拟合出来

先看现象: 给你几个点 (x, y)——比如三天的记录:x 是浇水次数,y 是发芽天数。 你想知道「多浇一次水,发芽会晚几天」。

把 x 当特征、y 当标签,这就是线性回归: 假设空间里装的是所有直线 f(x) = w·x + b, 其中 w(斜率)和 b(截距)是要学的参数1。 书里称它为机器学习和统计学中最基础、应用最广的模型2

先做一个让后面省力的小手术:增广向量。 截距 b 总要多写一个位置,很碍事。书里的处理是: 给输入向量末尾拼上一个常数 1,给参数向量末尾拼上 b—— 这两个拼过的新向量叫增广特征向量增广权重向量3:

x̂ = [x₁, x₂, …, x_D, 1] 输入末尾拼个 1
ŵ = [w₁, w₂, …, w_D, b] 参数末尾拼个 b

f(x) = w·x + b = ŵ·x̂ 一次内积,截距被收进内积里

从此模型只剩一行 f(x) = w·x(本书此后写线性回归都用这个简写)4。 这不是数学技巧,是记账技巧:第 4 节那个漂亮的闭式解,全靠这个简写才写得出来。

4. 一步到位的闭式解

问题: 第 05 章说参数要「一步步往好里挪」,能不能不挪,直接算出来?

能,而且这是线性回归独有的待遇。把 N 条样本的增广向量排成一个矩阵 X、 标签排成向量 y,经验风险(平方损失)可以写成 ½‖y − Xᵀw‖²。 它是关于 w 的凸函数——第 02 章讲过,凸函数上局部最低就是全局最低, 所以只要令梯度为零,解出来的就是最优5:

∂R/∂w = −X(y − Xᵀw) = 0

整理得: w* = (XXᵀ)⁻¹ X y

这个解不用迭代,一行公式直接给出——这种解法叫最小二乘法6。 ((XXᵀ)⁻¹X 有个名字叫 Xᵀ 的伪逆矩阵7,知道名字就行,后面用不上。)

代价写在公式里:那个逆矩阵必须存在。 书里把条件说得很清楚:XXᵀ 必须满秩——X 的各行(每个特征算一个维度——矩阵的一列)之间线性无关8。 什么时候必然不满足?样本数 N 小于特征数 D+1 的时候—— 三个未知数两道方程,解有无穷多组,而且能让损失为 0 的解到处都是9

不可逆时有两条退路10:先用主成分分析(第 25 章讲)把特征间的相关性消掉再来; 或者干脆放弃闭式解,回到第 05 章的梯度下降——这个用法还有个专门的名字, 叫最小均方算法11

还有一个更隐蔽的坑:可逆也可能靠不住。 如果两个特征几乎互相决定(比如「身高」和「体重」),这叫多重共线性12。 此时逆矩阵在数值上算不准:数据上一点小扰动,就会让 (XXᵀ)⁻¹ 发生大的改变, 解出的参数跟着乱跳12。这条路,正好通向下一节。

5. 给对角线加一点点

问题: 逆矩阵不稳,能不能从根上让它稳?

书里给的办法朴素得让人怀疑:给 XXᵀ 的对角线元素都加上一个小常数 λ。 加了之后 (XXᵀ + λI) 保证满秩,解变成13:

w* = (XXᵀ + λI)⁻¹ X y

这个做法叫岭回归——1970 年由 Hoerl 和 Kennard 提出13

为什么加在对角线上就能稳住?一句话的直觉: 对角线是每个特征「自己的分量」,给它垫高 λ,就等于告诉求解器 「每个特征至少自带 λ 的分量,谁也不许全靠别人表示」——共线性被强行打破。

更重要的是它的另一张脸。 书里证明了,岭回归的解恰好是下面这个目标的最小化14:

R(w) = ½‖y − Xᵀw‖² + λ/2 · ‖w‖²
↑ ↑
经验风险 参数不许长太大

这正是第 05 章说的「经验风险 + 复杂度惩罚」。λ 越大,参数被往零的方向拉得越狠。 这个「给目标函数挂上参数惩罚项」的做法,正式名字叫正则化14—— 这是全书第一次正经用它,第 19 章会把它展开成一整套手段。

6. 换个说法:哪组参数最像生出这批数据

前两条路都把 y 当成确定的数。现在换一个世界观:把 y 当成随机的。

书里的假设是:标签由直线加上一份随机噪声决定15——

y = w·x + ε, ε 服从均值为 0、方差为 σ² 的高斯分布

于是每个 y 都是「以 w·x 为中心、σ² 为散布」的一次抽奖16。 这个假设一立,第 03 章那套工具就全部可用: 给定参数 w,这 N 个标签恰好长这样的可能性,是各样本概率的连乘—— 这就是 w 的似然函数17

最大似然估计:挑让这批数据「最不意外」的参数。 第 03 章讲过的手法原样搬来: 连乘取对数变连加,令导数为零18。解出来的结果是——

w_ML = (XXᵀ)⁻¹ X y

和最小二乘法一模一样19

这件事值得停三秒。最小二乘法是 18 世纪的几何想法(让总偏差最小), 最大似然是 20 世纪的统计想法(让数据最不意外)——它们给出同一个解, 是因为「平方损失」和「高斯噪声」是同一件事的两种说法: 平方损失里那个 ½(y − f)²,正是高斯分布密度函数指数(以 e 为底的幂)部分的形状。 以后在任何模型上看到平方损失,都可以反问一句:它暗地里假设了什么噪声?

7. 再给参数加一个先验

问题: 最大似然有个老毛病——训练数据少的时候,它会把噪声也当成规律学进去20

第 03 章已经给了出路:把参数本身也看成随机的,给它配一个先验分布。 书里选的是各向同性的高斯分布:假设 w 的每一维独立地以 0 为中心、ν² 为方差21—— 用人话说:在没看到数据之前,我们相信参数应该比较小、在零附近。

用贝叶斯公式把「先验」和「数据证据(似然)」乘起来,得到参数的后验分布; 这个框架叫贝叶斯估计22。如果只要一个最优点(点估计), 就取后验分布里密度最高的那个参数——这叫最大后验估计23

取对数展开,后验正比于24:

log 后验 ∝ − 1/(2σ²)·‖y − Xᵀw‖² − 1/(2ν²)·‖w‖²
↑ ↑
似然(数据说话) 先验(参数别太大)

和第 5 节岭回归的目标函数逐字对照,形式完全相同—— 只要把正则化系数取成 λ = σ²/ν²(噪声方差 ÷ 先验方差)24

这个比值把两家的语言对上了:数据噪声越大(σ² 大),数据说的话越不可信, 惩罚就该越重;先验越笃定(ν² 小),参数被允许的活动范围就越小。 正则化不是一个工程技巧,它是「参数本来该小」这条信念的数学化身—— 这就是为什么第 05 章说,从贝叶斯角度看,正则化等价于引入先验。

书里最后补了一刀把两家接起来:当 ν → ∞,先验退化成「什么值都行」的 无信息先验,最大后验就退化成最大似然25最大似然是最大后验在「完全不带偏好」时的特例。

8. 四条路通向同一个地方

把四节收成一张表——这张表是本章唯一需要记住的东西:

世界观目标函数和别家的关系
最小二乘法几何:总偏差最小½‖y − Xᵀw‖²(XXᵀ)⁻¹Xy= 最大似然
岭回归几何 + 别太复杂½‖y − Xᵀw‖² + λ/2‖w‖²(XXᵀ + λI)⁻¹Xy= 最大后验
最大似然统计:数据最不意外−log 似然(高斯噪声下 = 平方损失)(XXᵀ)⁻¹Xy= 最小二乘
最大后验贝叶斯:数据 + 先验−log 似然 − log 先验同岭回归,λ = σ²/ν²= 岭回归

四种说法、两个答案。 「加惩罚项」与「有先验」是同一件事, 「平方损失」与「高斯噪声」是同一件事。后面所有复杂的模型, 学习准则这栏再怎么换,都还是这张表里的格子。

9. 主走查:三个点加一个噪点

输入: 三个点 (−1, 0)、(0, 1)、(1, 2)。后面那个噪点也是为演示加的。

第一步:写增广矩阵。 每个 x 拼上 1,排成 X;标签排成 y:

X = [ −1 0 1 ] y = [ 0 ]
[ 1 1 1 ] [ 1 ]
[ 2 ]

第二步:算 XXᵀ 和 Xy。

XXᵀ = [ 2 0 ] Xy = [ 2 ] (−1·0 + 0·1 + 1·2 = 2)
[ 0 3 ] [ 3 ] (0 + 1 + 2 = 3)

第三步:闭式解。 XXᵀ 是对角矩阵,逆就是逐项取倒数:

w* = (XXᵀ)⁻¹ Xy = [ 2/2 ] = [ 1 ]
[ 3/3 ] [ 1 ]

w = 1、b = 1,直线 f(x) = x + 1。 残差:三个点的预测是 0、1、2,与标签完全一致——损失为 0。 (这三个点本来就共线,所以解完美;演示下一步就不完美了。)

第四步:加一个噪点 (2, 4),重算。

XXᵀ = [ 6 2 ] Xy = [ 10 ] w* = [ 1.30 ]
[ 2 4 ] [ 7 ] [ 1.10 ]

直线变成 f(x) = 1.3x + 1.1。四个点的预测 −0.2、1.1、2.4、3.7, 残差 0.2、−0.1、−0.4、0.3——一个噪点把斜率从 1.0 拽到了 1.3。

第五步:上岭回归(λ = 1),看参数被拉回来。

(XXᵀ + I) = [ 7 2 ] w* = [ 1.16 ]
[ 2 5 ] [ 0.94 ]

斜率从 1.30 收到 1.16,截距从 1.10 收到 0.94——两个参数都变小了。 再把 λ 加到 10,解变成 [0.57, 0.42]:λ 越大,参数被按得越死, 对那个噪点就越「不在乎」——这就是正则化在数字上的样子。

10. 作者的判断与证据

书里给了完整推导的: 四条路各自的解,以及「最大似然 = 最小二乘」 「最大后验 = 岭回归(λ = σ²/ν²)」这两个等价关系,全部是令导数为零推出来的, 不是经验观察1924

书里给了历史出处的: 岭回归来自 1970 年 Hoerl 与 Kennard 的论文13—— 它比「正则化」这个叫法流行起来要早得多。

书里主动点明立场的: 「最大似然估计和贝叶斯估计可以分别看作 频率学派和贝叶斯学派对参数的不同解释」25—— 书里在这里只是陈述两派,没有站队。

我们要提醒的(不是书里的): 「平方损失 ⟺ 高斯噪声」这条等价 只在噪声真是高斯、且各样本独立时成立。第 6 节说「看到平方损失可以反问噪声假设」, 这句话是本书的读法,书里只给了推导、没给这句提醒。

11. 边界与局限

闭式解是奢侈品。 只有平方损失 + 线性模型才有 (XXᵀ)⁻¹Xy 这种一步到位的解; 从下一章的分类器开始,所有模型都回到迭代优化。这一章的价值不在解法本身, 而在它让四种学习准则各自动了一次真格的,从而能被对照。

多重共线性只给了诊断和一种药。 书里说了它让逆不稳、给了岭回归, 但「怎么发现它、λ 具体选多大」没有展开——那是第 19 章超参数搜索的事。

先验只讲了高斯一种。 换别的先验(比如对应稀疏(大多分量为零)解的拉普拉斯先验) 会得到别的惩罚项,书里在这里只点了一句21,完整的正则化菜单在第 19 章。

没有讲「解出来之后又怎样」。 这条直线在没见过的点上靠不靠谱, 是第 07 章(泛化)的问题,不是这一章的。

12. 可带走的

  1. 线性回归 = 假设空间取所有直线 + 平方损失,最简单的整机;
  2. 增广向量:输入拼 1、参数拼 b,截距从此进内积;
  3. 最小二乘法一步解出,前提是 XXᵀ 满秩;样本比特征少时必然不满秩;
  4. 特征几乎互相决定(多重共线性)时,可逆也靠不住——小扰动会让解乱跳;
  5. 岭回归 = 对角线加 λ = 平方损失加 ‖w‖² 惩罚,三件事是同一件;
  6. 正则化第一次出现:给目标挂一个参数惩罚项,λ 越大参数越小;
  7. 平方损失暗含高斯噪声假设——所以最小二乘 = 最大似然;
  8. 最大后验 = 最大似然 + 先验,高斯先验下正好等于岭回归,λ = σ²/ν²;
  9. 先验弱到「什么都行」时,最大后验退回最大似然——前者是后者的推广;
  10. 四种说法两个答案。 以后见到新的学习准则,先问它坐这张表的哪个格子。

13. 原文地图

主题原书章原文位置
线性回归的定义第2章 机器学习概述text/03-ch02.txt:600(搜「机器学习和统计学中最基础」) · text/03-ch02.txt:603(搜「自变量就是样本的特征向量」)
增广向量第2章 机器学习概述text/03-ch02.txt:617(搜「增广权重向量和增广特征向量」) · text/03-ch02.txt:635(搜「两个向量的拼接操作」)
四种参数估计方法第2章 机器学习概述text/03-ch02.txt:645(搜「四种不同的参数估计方法」)
平方损失与风险函数是凸的第2章 机器学习概述text/03-ch02.txt:649(搜「都为连续的实数值」) · text/03-ch02.txt:676(搜「是关于 𝒘 的凸函数」)
最小二乘法的闭式解第2章 机器学习概述text/03-ch02.txt:684(搜「得到最优的参数」) · text/03-ch02.txt:694(搜「也叫最小二乘法」)
伪逆矩阵第2章 机器学习概述text/03-ch02.txt:685(搜「的伪逆矩阵」)
满秩条件与 N<D+1第2章 机器学习概述text/03-ch02.txt:708(搜「给出的闭式解」) · text/03-ch02.txt:713(搜「不可逆情况是样本数量」)
不可逆时的两条退路第2章 机器学习概述text/03-ch02.txt:717(搜「消除不同特征之间的相关性」) · text/03-ch02.txt:723(搜「也称为最小均方」)
多重共线性第2章 机器学习概述text/03-ch02.txt:729(搜「较大的多重共线性」) · text/03-ch02.txt:732(搜「发生大的改变」)
岭回归第2章 机器学习概述text/03-ch02.txt:733(搜「提出了岭回归」) · text/03-ch02.txt:740(搜「结构风险最小化准则下的最小二乘法估计」)
噪声模型与似然第2章 机器学习概述text/03-ch02.txt:753(搜「加上一个随机噪声」) · text/03-ch02.txt:771(搜「上的似然函数」)
最大似然及其解第2章 机器学习概述text/03-ch02.txt:794(搜「使得似然函数」) · text/03-ch02.txt:802(搜「解和最小二乘法的解相同」)
先验与最大后验第2章 机器学习概述text/03-ch02.txt:809(搜「为各向同性的高斯分布」) · text/03-ch02.txt:834(搜「概率密度最高的参数」)
最大后验等价岭回归第2章 机器学习概述text/03-ch02.txt:851(搜「等价于平方损失的结构风险最小化」)
无信息先验第2章 机器学习概述text/03-ch02.txt:854(搜「退化为均匀分布」) · text/03-ch02.txt:853(搜「频率学派和贝叶斯学派」)

Footnotes

  1. 出处:「第2章 机器学习概述」第 605 段(text/03-ch02.txt:605,搜「一组参数化的线性函数」)。 自变量与因变量的对应见第 603 段(搜「自变量就是样本的特征向量」)。

  2. 出处:「第2章 机器学习概述」第 600 段(text/03-ch02.txt:600,搜「机器学习和统计学中最基础」)。 原文:「线性回归是机器学习和统计学中最基础和最广泛应用的模型。」

  3. 出处:「第2章 机器学习概述」第 617 段(text/03-ch02.txt:617,搜「增广权重向量和增广特征向量」) 与第 635 段(text/03-ch02.txt:635,搜「两个向量的拼接操作」)。

  4. 出处:「第2章 机器学习概述」第 636 段(text/03-ch02.txt:636,搜「不失一般性」)。 原文:「不失一般性……直接用 w 和 x 分别表示增广权重向量和增广特征向量。」

  5. 出处:「第2章 机器学习概述」第 676 段(text/03-ch02.txt:676,搜「是关于 𝒘 的凸函数」)。 梯度结果 ∂R/∂w = −X(y − Xᵀw) 见公式(2.47),同页。

  6. 出处:「第2章 机器学习概述」第 694 段(text/03-ch02.txt:694,搜「也叫最小二乘法」)。 边注:「在古代汉语中『平方』称为『二乘』。」

  7. 出处:「第2章 机器学习概述」第 685 段(text/03-ch02.txt:685,搜「的伪逆矩阵」)。

  8. 出处:「第2章 机器学习概述」第 708 段(text/03-ch02.txt:708,搜「给出的闭式解」)。 原文:「若要直接使用式(2.48)给出的闭式解,XXᵀ 必须存在逆矩阵,即 XXᵀ 是满秩的…… 即 X 中的行向量之间是线性不相关的。」

  9. 出处:「第2章 机器学习概述」第 713 段(text/03-ch02.txt:713,搜「不可逆情况是样本数量」)。 原文:「一种常见的 XXᵀ 不可逆情况是样本数量 N 小于特征数量 (D+1),XXᵀ 的秩为 N。 这时会存在很多解 w*,可以使得 R(w*) = 0。」

  10. 出处:「第2章 机器学习概述」第 717 段(text/03-ch02.txt:717,搜「消除不同特征之间的相关性」)。

  11. 出处:「第2章 机器学习概述」第 723 段(text/03-ch02.txt:723,搜「也称为最小均方」)。 原文:「这种利用梯度下降法来求解的方法也称为最小均方(Least Mean Squares,LMS)算法。」

  12. 出处:「第2章 机器学习概述」第 729 段(text/03-ch02.txt:729,搜「较大的多重共线性」) 与第 732 段(text/03-ch02.txt:732,搜「发生大的改变」)。 边注:「共线性是指一个特征可以通过其他特征的线性组合来较准确地预测。」 2

  13. 出处:「第2章 机器学习概述」第 733 段(text/03-ch02.txt:733,搜「提出了岭回归」)。 原文:「[Hoerl et al., 1970] 提出了岭回归(Ridge Regression), 给 XXᵀ 的对角线元素都加上一个常数 λ 使得 (XXᵀ + λI) 满秩。」 2 3

  14. 出处:「第2章 机器学习概述」第 740 段(text/03-ch02.txt:740,搜「结构风险最小化准则下的最小二乘法估计」)。 「λ > 0 为正则化系数」见第 746 段(搜「为正则化系数」)。 2

  15. 出处:「第2章 机器学习概述」第 753 段(text/03-ch02.txt:753,搜「加上一个随机噪声」)。

  16. 出处:「第2章 机器学习概述」第 762 段(text/03-ch02.txt:762,搜「服从均值为 0、方差为」)。 原文:「其中 ε 服从均值为 0、方差为 σ² 的高斯分布。这样,y 服从均值为 wᵀx、 方差为 σ² 的高斯分布。」

  17. 出处:「第2章 机器学习概述」第 771 段(text/03-ch02.txt:771,搜「上的似然函数」)。 边注还给出了似然与概率的区别:概率描述固定参数时数据的分布, 似然描述已知数据时不同参数对分布的影响。

  18. 出处:「第2章 机器学习概述」第 788 段(text/03-ch02.txt:788,搜「对似然函数取对数」) 与第 794 段(text/03-ch02.txt:794,搜「使得似然函数」)。

  19. 出处:「第2章 机器学习概述」第 802 段(text/03-ch02.txt:802,搜「解和最小二乘法的解相同」)。 2

  20. 出处:「第2章 机器学习概述」第 805 段(text/03-ch02.txt:805,搜「当训练数据比较少时会发生过拟合」)。 原文:「最大似然估计的一个缺点是当训练数据比较少时会发生过拟合,估计的参数可能不准确。」

  21. 出处:「第2章 机器学习概述」第 809 段(text/03-ch02.txt:809,搜「为各向同性的高斯分布」)。 2

  22. 出处:「第2章 机器学习概述」第 826 段(text/03-ch02.txt:826,搜「后验概率分布的方法称为」)。 原文:「这种估计参数 w 的后验概率分布的方法称为贝叶斯估计,是一种统计推断问题。 采用贝叶斯估计的线性回归也称为贝叶斯线性回归。」

  23. 出处:「第2章 机器学习概述」第 834 段(text/03-ch02.txt:834,搜「概率密度最高的参数」)。 「点估计」的说法见第 832 段(搜「即点估计」)。

  24. 出处:「第2章 机器学习概述」第 851 段(text/03-ch02.txt:851,搜「等价于平方损失的结构风险最小化」)。 原文:「最大后验概率等价于平方损失的结构风险最小化,其中正则化系数 λ = σ²/ν²。」 对数后验的展开见公式(2.65)~(2.67),同页。 2 3

  25. 出处:「第2章 机器学习概述」第 853 段(text/03-ch02.txt:853,搜「频率学派和贝叶斯学派」) 与第 854 段(text/03-ch02.txt:854,搜「退化为均匀分布」)。 原文:「当 ν → ∞ 时,先验分布 p(w; ν) 退化为均匀分布,称为无信息先验, 最大后验估计退化为最大似然估计。」 2