第01章:机器学习概览

“All models are wrong, but some are useful.” —— George Box

重要提示:本章不仅是概念的堆砌,更是世界观的建立。

我们将深入探讨频率派与贝叶斯派的百年纠葛,这不仅仅是数学流派之争,更是我们认知世界的两种底层逻辑。此外,我们还将突破传统的教科书,带你领略现代深度学习中颠覆性的**“双下降” (Double Descent)** 现象,看看传统理论在过参数化时代是如何被挑战的。


目录


一、世界观的碰撞:频率派 vs 贝叶斯派

统计机器学习领域长期存在着两个对立统一的流派。理解这个对立,对后续理解正则化(Regularization)和概率图模型(PGM)至关重要。

1.1 频率派 (The Frequentist View)

  • 核心信仰世界是确定的。参数 θ \theta θ 是一个未知但固定的常量 (Unknown Constant)。虽然我们不知道它具体是多少,但它真真切切地在那里,不增不减。

  • 方法论极大似然估计 (MLE)
    θ ^ M L E = arg ⁡ max ⁡ θ P ( X ∣ θ ) \hat{\theta}_{MLE} = \arg\max_{\theta} P(X|\theta) θ^MLE=argθmaxP(Xθ)

    直觉:既然 θ \theta θ 是固定的,那就找一个 θ \theta θ,使得"观测到当前数据 X X X"这一事件发生的概率最大。

    但是,MLE 的这个公式在绝大多数情况下并没有解析解(除了少数简单模型如高斯分布的均值估计)。因此,我们必须借助数值优化方法(如梯度下降)来迭代求解。这就引出了频率派的核心技术路线:

  • 演进路线:频率派将机器学习视为一个优化问题 (Optimization)
    L ( θ ) → ∇ θ L → θ t + 1 = θ t − η g \mathcal{L}(\theta) \rightarrow \nabla_\theta \mathcal{L} \rightarrow \theta_{t+1} = \theta_t - \eta g L(θ)θLθt+1=θtηg

    • 代表算法:线性回归、逻辑回归、SVM、神经网络 (BackProp)。

1.2 贝叶斯派 (The Bayesian View)

  • 核心信仰世界是不确定的。参数 θ \theta θ 本身是一个随机变量 (Random Variable),它服从某个分布。数据 X X X 反而是固定的证据 (Evidence)。
  • 方法论贝叶斯定理 (Bayes’ Theorem)
    P ( θ ∣ X ) = P ( X ∣ θ ) P ( θ ) P ( X ) P(\theta|X) = \frac{P(X|\theta)P(\theta)}{P(X)} P(θX)=P(X)P(Xθ)P(θ)
    • P ( θ ∣ X ) P(\theta|X) P(θX)后验 (Posterior) —— 看了数据修正后的信念。
    • P ( X ∣ θ ) P(X|\theta) P(Xθ)似然 (Likelihood) —— 数据所呈现的样子。
    • P ( θ ) P(\theta) P(θ)先验 (Prior) —— 看数据之前的主观信念(这很重要!)。
  • 最大后验估计 (MAP):如果我们被迫给出一个具体的数值,而不是分布:
    θ ^ M A P = arg ⁡ max ⁡ θ P ( θ ∣ X ) = arg ⁡ max ⁡ θ log ⁡ P ( X ∣ θ ) ⏟ Likelihood + log ⁡ P ( θ ) ⏟ Prior \hat{\theta}_{MAP} = \arg\max_{\theta} P(\theta|X) = \arg\max_{\theta} \underbrace{\log P(X|\theta)}_{\text{Likelihood}} + \underbrace{\log P(\theta)}_{\text{Prior}} θ^MAP=argθmaxP(θX)=argθmaxLikelihood logP(Xθ)+Prior logP(θ)

    洞见 θ ^ M L E \hat{\theta}_{MLE} θ^MLE 其实就是 P ( θ ) P(\theta) P(θ) 为均匀分布时的 θ ^ M A P \hat{\theta}_{MAP} θ^MAP!MLE 是 MAP 的特例。
    正则化本质:L2 正则化其实等价于引入了 高斯先验 的 MAP;L1 正则化等价于 拉普拉斯先验

  • 演进路线:贝叶斯派将机器学习视为一个积分问题 (Integration)
    P ( x n e w ∣ X ) = ∫ P ( x n e w ∣ θ ) P ( θ ∣ X ) d θ P(x_{new}|X) = \int P(x_{new}|\theta) P(\theta|X) d\theta P(xnewX)=P(xnewθ)P(θX)dθ
    • 代表算法:朴素贝叶斯、LDA主题模型、高斯过程、变分自动编码器 (VAE)。

从抽象到具体:让公式活起来

到这里,频率派和贝叶斯派的公式都已摆在眼前。但老实说,光看公式很难真正理解两者的差异——什么是"先验被淹没"?什么是"正则化等价于先验"?这些话术听起来玄乎,却缺少实感。

接下来,让我们用抛硬币这个最简单的案例,亲手推导一遍 MLE 和 MAP。你会看到:MLE 如何因数据稀疏而过拟合,贝叶斯先验如何通过"伪计数"优雅地约束参数空间,以及当数据量趋于无穷时,先验如何自动退场。这个推导将成为我们理解正则化、主题模型、变分推断等高级技术的基石。

1.3 核心案例推导:抛硬币的哲学

为什么要推导这个?

抛硬币虽然简单,但它是理解 MLE 与 MAP 差异的最佳载体。通过这个推导,你会明白:

  • MLE 在数据少时为何容易过拟合
  • 贝叶斯先验如何在数学上"约束"参数空间
  • 为什么 Beta 分布是二项分布的共轭先验
  • 当数据量 N → ∞ N \to \infty N 时,先验如何被"淹没"
1.3.1 问题设定

假设有一枚硬币,正面朝上的概率为 θ \theta θ(未知)。我们抛了 N N N 次,观测到:

  • H H H 次正面 (Heads)
  • T T T 次反面 (Tails),其中 N = H + T N = H + T N=H+T

目标:估计参数 θ \theta θ


1.3.2 频率派:极大似然估计 (MLE)

Step 1:写出似然函数

每次抛硬币是独立的伯努利试验,因此观测到数据 D = { H , T } D = \{H, T\} D={H,T} 的概率为:

P ( D ∣ θ ) = θ H ( 1 − θ ) T P(D|\theta) = \theta^H (1-\theta)^T P(Dθ)=θH(1θ)T

Step 2:对数似然函数

为了求导方便,取对数:

log ⁡ P ( D ∣ θ ) = H log ⁡ θ + T log ⁡ ( 1 − θ ) \log P(D|\theta) = H \log \theta + T \log(1-\theta) logP(Dθ)=Hlogθ+Tlog(1θ)

Step 3:求导并令其为零

∂ ∂ θ log ⁡ P ( D ∣ θ ) = H θ − T 1 − θ = 0 \frac{\partial}{\partial \theta} \log P(D|\theta) = \frac{H}{\theta} - \frac{T}{1-\theta} = 0 θlogP(Dθ)=θH1θT=0

解得:

θ ^ M L E = H H + T = H N \boxed{\hat{\theta}_{MLE} = \frac{H}{H+T} = \frac{H}{N}} θ^MLE=H+TH=NH

直觉:MLE 就是频率派的"经验频率"。


1.3.3 MLE 的致命缺陷

思考:如果我们只抛了 5 次硬币,全是正面( H = 5 , T = 0 H=5, T=0 H=5,T=0),MLE 会给出 θ ^ M L E = 1 \hat{\theta}_{MLE} = 1 θ^MLE=1。这意味着这枚硬币 100% 会正面朝上,这合理吗?

这就是 过拟合 (Overfitting) 的典型表现:MLE 完全依赖当前数据,没有任何"常识"约束。当数据量很少时,估计结果极其不稳定。


1.3.4 贝叶斯派:最大后验估计 (MAP)

Step 1:引入先验分布

贝叶斯派认为 θ \theta θ 本身是随机变量,应该有一个先验分布 P ( θ ) P(\theta) P(θ)

但问题来了:先验分布有无数种选择(高斯、均匀、指数…),我们该选哪一个?答案是:选择共轭先验 (Conjugate Prior)

为什么选择共轭先验?

共轭先验有一个神奇的性质:先验和后验属于同一分布族。这意味着:

  • 如果先验是 Beta 分布,那么看了数据后,后验仍然是 Beta 分布(只是参数更新了)
  • 这极大简化了计算,避免了复杂的积分运算

对于抛硬币问题(二项分布似然),共轭先验恰好是 Beta 分布。这不是巧合,而是数学上的精心设计。

因此我们选择 Beta 分布 作为先验:

P ( θ ) = Beta ( α , β ) = θ α − 1 ( 1 − θ ) β − 1 B ( α , β ) P(\theta) = \text{Beta}(\alpha, \beta) = \frac{\theta^{\alpha-1} (1-\theta)^{\beta-1}}{B(\alpha, \beta)} P(θ)=Beta(α,β)=B(α,β)θα1(1θ)β1

其中 B ( α , β ) B(\alpha, \beta) B(α,β) 是归一化常数(Beta 函数)。

Step 2:写出后验分布

根据贝叶斯定理:

P ( θ ∣ D ) ∝ P ( D ∣ θ ) P ( θ ) = θ H ( 1 − θ ) T ⋅ θ α − 1 ( 1 − θ ) β − 1 = θ H + α − 1 ( 1 − θ ) T + β − 1 \begin{aligned} P(\theta|D) &\propto P(D|\theta) P(\theta) \\ &= \theta^H (1-\theta)^T \cdot \theta^{\alpha-1} (1-\theta)^{\beta-1} \\ &= \theta^{H+\alpha-1} (1-\theta)^{T+\beta-1} \end{aligned} P(θD)P(Dθ)P(θ)=θH(1θ)Tθα1(1θ)β1=θH+α1(1θ)T+β1

这正好是 Beta ( H + α , T + β ) \text{Beta}(H+\alpha, T+\beta) Beta(H+α,T+β)!验证了共轭性。

Step 3:求 MAP 估计

MAP 就是找后验分布的最大值点。对 log ⁡ P ( θ ∣ D ) \log P(\theta|D) logP(θD) 求导:

log ⁡ P ( θ ∣ D ) = ( H + α − 1 ) log ⁡ θ + ( T + β − 1 ) log ⁡ ( 1 − θ ) + const \begin{aligned} \log P(\theta|D) &= (H+\alpha-1) \log \theta + (T+\beta-1) \log(1-\theta) + \text{const} \end{aligned} logP(θD)=(H+α1)logθ+(T+β1)log(1θ)+const

求导并令其为零:

∂ ∂ θ log ⁡ P ( θ ∣ D ) = H + α − 1 θ − T + β − 1 1 − θ = 0 \begin{aligned} \frac{\partial}{\partial \theta} \log P(\theta|D) &= \frac{H+\alpha-1}{\theta} - \frac{T+\beta-1}{1-\theta} = 0 \end{aligned} θlogP(θD)=θH+α11θT+β1=0

解得:

θ ^ M A P = H + α − 1 H + T + α + β − 2 \boxed{\hat{\theta}_{MAP} = \frac{H + \alpha - 1}{H + T + \alpha + \beta - 2}} θ^MAP=H+T+α+β2H+α1


1.3.5 深度直觉:先验就是"伪计数"

观察 MAP 的公式,可以改写为:

θ ^ M A P = H + ( α − 1 ) N + ( α + β − 2 ) \hat{\theta}_{MAP} = \frac{H + (\alpha - 1)}{N + (\alpha + \beta - 2)} θ^MAP=N+(α+β2)H+(α1)

核心洞见

  • ( α − 1 ) (\alpha - 1) (α1) 相当于"伪正面"次数
  • ( β − 1 ) (\beta - 1) (β1) 相当于"伪反面"次数
  • 总的"伪观测"次数为 ( α + β − 2 ) (\alpha + \beta - 2) (α+β2)

举例

  • 如果我们设 α = 2 , β = 2 \alpha = 2, \beta = 2 α=2,β=2(均匀先验的一种形式),相当于在看数据之前,假设已经观测到了 1 次正面和 1 次反面。
  • 现在我们抛 5 次硬币,全是正面( H = 5 , T = 0 H=5, T=0 H=5,T=0):
    θ ^ M A P = 5 + 1 5 + 0 + 2 = 6 7 ≈ 0.857 \hat{\theta}_{MAP} = \frac{5 + 1}{5 + 0 + 2} = \frac{6}{7} \approx 0.857 θ^MAP=5+0+25+1=760.857
    比 MLE 的 1.0 更加保守合理!

1.3.6 当数据量很大时:先验被"淹没"

观察公式:

θ ^ M A P = H + ( α − 1 ) N + ( α + β − 2 ) \hat{\theta}_{MAP} = \frac{H + (\alpha - 1)}{N + (\alpha + \beta - 2)} θ^MAP=N+(α+β2)H+(α1)

N → ∞ N \to \infty N 时:

θ ^ M A P ≈ H N = θ ^ M L E \hat{\theta}_{MAP} \approx \frac{H}{N} = \hat{\theta}_{MLE} θ^MAPNH=θ^MLE

哲学启示

  • 当数据很少时,先验起主导作用(防止过拟合)
  • 当数据很多时,数据本身说话,先验的影响趋于零
  • 这正是贝叶斯方法的优雅之处:让数据和先验在不同阶段各司其职

1.3.7 可视化对比

假设真实 θ = 0.7 \theta = 0.7 θ=0.7,我们观测 N N N 次抛硬币,对比 MLE 和 MAP 的表现:

N N N观测结果 ( H H H) θ ^ M L E \hat{\theta}_{MLE} θ^MLE θ ^ M A P \hat{\theta}_{MAP} θ^MAP (Beta(2,2))
551.0000.857
1070.7000.667
100700.7000.698
10007000.7000.699

可以看到:

  • N = 5 N=5 N=5 时,MLE 严重过拟合(估计为 1.0),而 MAP 更稳健(0.857)
  • N ≥ 100 N \geq 100 N100 时,两者几乎一致

1.3.8 扩展:完全贝叶斯推断

MAP 仍然是给出一个点估计。完全的贝叶斯推断是保留整个后验分布:

P ( θ ∣ D ) = Beta ( H + α , T + β ) P(\theta|D) = \text{Beta}(H+\alpha, T+\beta) P(θD)=Beta(H+α,T+β)

当我们预测下一次抛硬币的结果时,不是用某个固定的 θ ^ \hat{\theta} θ^,而是对所有可能的 θ \theta θ 积分:

P ( 下次是正面 ∣ D ) = ∫ 0 1 θ ⋅ P ( θ ∣ D ) d θ = H + α N + α + β P(\text{下次是正面}|D) = \int_0^1 \theta \cdot P(\theta|D) d\theta = \frac{H+\alpha}{N+\alpha+\beta} P(下次是正面D)=01θP(θD)dθ=N+α+βH+α

与 MAP 的区别

  • MAP 是取分布的最大值点(Mode)
  • 完全贝叶斯是取分布的期望(Mean)
  • 对于 Beta 分布,Mean = α α + β \frac{\alpha}{\alpha+\beta} α+βα,而 Mode = α − 1 α + β − 2 \frac{\alpha-1}{\alpha+\beta-2} α+β2α1(当 α , β > 1 \alpha, \beta > 1 α,β>1 时)

小结:通过抛硬币这个简单案例,我们完成了一次完整的数学推导之旅。我们看到了 MLE 如何因数据稀疏而过拟合,贝叶斯先验如何通过"伪计数"优雅地约束参数空间,以及当数据充足时先验如何自动退场。这个推导将成为我们理解正则化、主题模型、变分推断等高级技术的基石。


二、统计学习三要素:解构算法的万能公式

李航老师在《统计学习方法》中提出了著名的公式,这套方法论可以解构任何算法:

方法 = 模型 + 策略 + 算法 \text{方法} = \text{模型} + \text{策略} + \text{算法} 方法=模型+策略+算法

2.1 模型 (Model)

我们要学习的假设空间 (Hypothesis Space) F \mathcal{F} F

  • 线性模型 f ( x ) = w T x + b f(x) = w^T x + b f(x)=wTx+b
  • 树模型:非线性的 if-else 规则集合
  • 神经网络:多层非线性复合函数

2.2 策略 (Strategy)

评价模型好坏的标准,即损失函数 (Loss Function)

  • 平方损失 (L2) ( y − f ( x ) ) 2 (y - f(x))^2 (yf(x))2 —— 线性回归。
  • 交叉熵 (Cross Entropy) − ∑ y log ⁡ p -\sum y \log p ylogp —— 逻辑回归/分类。
  • Hinge Loss [ 1 − y f ( x ) ] + [1 - y f(x)]_+ [1yf(x)]+ —— SVM 的灵魂。

结构风险最小化 (SRM)
min ⁡ f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) ⏟ 经验风险 (拟合程度) + λ J ( f ) ⏟ 正则化 (模型复杂度) \min_{f \in \mathcal{F}} \underbrace{\frac{1}{N} \sum_{i=1}^N L(y_i, f(x_i))}_{\text{经验风险 (拟合程度)}} + \underbrace{\lambda J(f)}_{\text{正则化 (模型复杂度)}} fFmin经验风险 (拟合程度) N1i=1NL(yi,f(xi))+正则化 (模型复杂度) λJ(f)


从工程技巧到数学本质

我们在 2.2 节看到了正则化项 λ J ( f ) \lambda J(f) λJ(f) 的作用——它能防止过拟合,这是工程实践中的共识。但如果你追问:“正则化为什么有效?它背后的数学原理是什么?”,很多教材会戛然而止。

接下来,让我们从贝叶斯视角重新审视正则化。我们将通过严格的数学推导证明一个惊人的结论:频率派的 L2 正则化,在数学上完全等价于贝叶斯派的高斯先验。这不是一个模糊的类比,而是一个精确的等式。当你理解了这个等价性,你会发现频率派和贝叶斯派不过是同一枚硬币的两面——一个显式地惩罚复杂度,一个隐式地编码信念。

2.3 数学证明:为什么正则化等价于先验?

核心问题

在 1.2 节我们提到"L2 正则化等价于高斯先验",但这个说法凭什么成立?这一小节将通过严格的数学推导,揭示正则化与贝叶斯先验在数学上的等价性。这是机器学习面试中的经典白板题,也是打通频率派与贝叶斯派的关键桥梁。

2.3.1 问题设定:线性回归模型

假设我们有一个线性回归模型:

y = w T x + ϵ y = w^T x + \epsilon y=wTx+ϵ

其中:

  • w ∈ R d w \in \mathbb{R}^d wRd 是待估计的权重向量
  • ϵ ∼ N ( 0 , σ 2 ) \epsilon \sim \mathcal{N}(0, \sigma^2) ϵN(0,σ2) 是高斯噪声
  • 训练数据: D = { ( x i , y i ) } i = 1 N \mathcal{D} = \{(x_i, y_i)\}_{i=1}^N D={(xi,yi)}i=1N

2.3.2 频率派视角:L2 正则化

频率派通过结构风险最小化来对抗过拟合:

w ^ R i d g e = arg ⁡ min ⁡ w 1 2 N ∑ i = 1 N ( y i − w T x i ) 2 ⏟ MSE Loss + λ 2 ∥ w ∥ 2 ⏟ L2 Regularization \hat{w}_{Ridge} = \arg\min_{w} \underbrace{\frac{1}{2N} \sum_{i=1}^N (y_i - w^T x_i)^2}_{\text{MSE Loss}} + \underbrace{\frac{\lambda}{2} \|w\|^2}_{\text{L2 Regularization}} w^Ridge=argwminMSE Loss 2N1i=1N(yiwTxi)2+L2 Regularization 2λw2

直觉

  • 第一项让模型拟合数据
  • 第二项惩罚权重的大小,防止过拟合
  • λ \lambda λ 控制正则化强度

2.3.3 贝叶斯派视角:从先验到 MAP

Step 1:写出似然函数

因为噪声 ϵ ∼ N ( 0 , σ 2 ) \epsilon \sim \mathcal{N}(0, \sigma^2) ϵN(0,σ2),所以:

y i ∣ x i , w ∼ N ( w T x i , σ 2 ) y_i | x_i, w \sim \mathcal{N}(w^T x_i, \sigma^2) yixi,wN(wTxi,σ2)

对于所有 N N N 个样本,似然函数为:

P ( D ∣ w ) = ∏ i = 1 N 1 2 π σ 2 exp ⁡ ( − ( y i − w T x i ) 2 2 σ 2 ) \begin{aligned} P(\mathcal{D}|w) &= \prod_{i=1}^N \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(y_i - w^T x_i)^2}{2\sigma^2}\right) \end{aligned} P(Dw)=i=1N2πσ2 1exp(2σ2(yiwTxi)2)

取对数似然:

log ⁡ P ( D ∣ w ) = − 1 2 σ 2 ∑ i = 1 N ( y i − w T x i ) 2 − N 2 log ⁡ ( 2 π σ 2 ) \begin{aligned} \log P(\mathcal{D}|w) &= -\frac{1}{2\sigma^2} \sum_{i=1}^N (y_i - w^T x_i)^2 - \frac{N}{2} \log(2\pi\sigma^2) \end{aligned} logP(Dw)=2σ21i=1N(yiwTxi)22Nlog(2πσ2)


Step 2:引入高斯先验

贝叶斯派认为权重 w w w 本身应该服从某个先验分布。我们选择零均值高斯先验

P ( w ) = N ( 0 , τ 2 I ) = ( 1 2 π τ 2 ) d exp ⁡ ( − ∥ w ∥ 2 2 τ 2 ) P(w) = \mathcal{N}(0, \tau^2 I) = \left(\frac{1}{\sqrt{2\pi\tau^2}}\right)^d \exp\left(-\frac{\|w\|^2}{2\tau^2}\right) P(w)=N(0,τ2I)=(2πτ2 1)dexp(2τ2w2)

为什么选择零均值?

  • 体现了奥卡姆剃刀原则:在没有证据时,倾向于认为权重应该接近零(简单模型)
  • τ 2 \tau^2 τ2 控制先验的"强度": τ 2 \tau^2 τ2 越小,越强烈地认为 w w w 应该接近零

取对数先验:

log ⁡ P ( w ) = − ∥ w ∥ 2 2 τ 2 − d 2 log ⁡ ( 2 π τ 2 ) \begin{aligned} \log P(w) &= -\frac{\|w\|^2}{2\tau^2} - \frac{d}{2} \log(2\pi\tau^2) \end{aligned} logP(w)=2τ2w22dlog(2πτ2)


Step 3:写出后验分布

根据贝叶斯定理:

P ( w ∣ D ) ∝ P ( D ∣ w ) P ( w ) P(w|\mathcal{D}) \propto P(\mathcal{D}|w) P(w) P(wD)P(Dw)P(w)

取对数:

log ⁡ P ( w ∣ D ) = log ⁡ P ( D ∣ w ) + log ⁡ P ( w ) + const \begin{aligned} \log P(w|\mathcal{D}) &= \log P(\mathcal{D}|w) + \log P(w) + \text{const} \end{aligned} logP(wD)=logP(Dw)+logP(w)+const

代入前面的结果:

log ⁡ P ( w ∣ D ) = − 1 2 σ 2 ∑ i = 1 N ( y i − w T x i ) 2 − ∥ w ∥ 2 2 τ 2 + const \begin{aligned} \log P(w|\mathcal{D}) &= -\frac{1}{2\sigma^2} \sum_{i=1}^N (y_i - w^T x_i)^2 - \frac{\|w\|^2}{2\tau^2} + \text{const} \end{aligned} logP(wD)=2σ21i=1N(yiwTxi)22τ2w2+const


Step 4:MAP 估计 = 最大化后验

MAP 就是找让后验概率最大的 w w w

w ^ M A P = arg ⁡ max ⁡ w log ⁡ P ( w ∣ D ) \begin{aligned} \hat{w}_{MAP} &= \arg\max_{w} \log P(w|\mathcal{D}) \end{aligned} w^MAP=argwmaxlogP(wD)

等价于:

w ^ M A P = arg ⁡ max ⁡ w [ − 1 2 σ 2 ∑ i = 1 N ( y i − w T x i ) 2 − ∥ w ∥ 2 2 τ 2 ] \begin{aligned} \hat{w}_{MAP} &= \arg\max_{w} \left[ -\frac{1}{2\sigma^2} \sum_{i=1}^N (y_i - w^T x_i)^2 - \frac{\|w\|^2}{2\tau^2} \right] \end{aligned} w^MAP=argwmax[2σ21i=1N(yiwTxi)22τ2w2]

去掉负号,转为最小化

w ^ M A P = arg ⁡ min ⁡ w [ 1 2 σ 2 ∑ i = 1 N ( y i − w T x i ) 2 + ∥ w ∥ 2 2 τ 2 ] \begin{aligned} \hat{w}_{MAP} &= \arg\min_{w} \left[ \frac{1}{2\sigma^2} \sum_{i=1}^N (y_i - w^T x_i)^2 + \frac{\|w\|^2}{2\tau^2} \right] \end{aligned} w^MAP=argwmin[2σ21i=1N(yiwTxi)2+2τ2w2]


2.3.4 神奇的等价性

提取公共因子 1 2 σ 2 \frac{1}{2\sigma^2} 2σ21

w ^ M A P = arg ⁡ min ⁡ w [ 1 N ∑ i = 1 N ( y i − w T x i ) 2 + σ 2 N τ 2 ∥ w ∥ 2 ] \begin{aligned} \hat{w}_{MAP} &= \arg\min_{w} \left[ \frac{1}{N} \sum_{i=1}^N (y_i - w^T x_i)^2 + \frac{\sigma^2}{N\tau^2} \|w\|^2 \right] \end{aligned} w^MAP=argwmin[N1i=1N(yiwTxi)2+Nτ2σ2w2]

定义正则化系数:

λ = σ 2 N τ 2 \begin{aligned} \lambda &= \frac{\sigma^2}{N\tau^2} \end{aligned} λ=Nτ2σ2

最终得到:

w ^ M A P = arg ⁡ min ⁡ w [ 1 N ∑ i = 1 N ( y i − w T x i ) 2 + λ ∥ w ∥ 2 ] = w ^ R i d g e \boxed{\hat{w}_{MAP} = \arg\min_{w} \left[ \frac{1}{N} \sum_{i=1}^N (y_i - w^T x_i)^2 + \lambda \|w\|^2 \right] = \hat{w}_{Ridge}} w^MAP=argwmin[N1i=1N(yiwTxi)2+λw2]=w^Ridge


2.3.5 深度解读

惊人的结论

贝叶斯的 MAP 估计 在数学上完全等价于 频率派的 L2 正则化!

这个等价性揭示了:

  1. 正则化系数 λ \lambda λ 的含义
    λ = σ 2 N τ 2 = 噪声方差 样本量 × 先验方差 \lambda = \frac{\sigma^2}{N\tau^2} = \frac{\text{噪声方差}}{\text{样本量} \times \text{先验方差}} λ=Nτ2σ2=样本量×先验方差噪声方差

    • 噪声 σ 2 \sigma^2 σ2 越大, λ \lambda λ 越大(数据不可靠,更依赖先验)
    • 样本量 N N N 越大, λ \lambda λ 越小(数据充足,先验被淹没)
    • 先验 τ 2 \tau^2 τ2 越小, λ \lambda λ 越大(先验越强,正则化越强)
  2. 频率派与贝叶斯派的统一

    • 频率派:显式地惩罚 ∥ w ∥ 2 \|w\|^2 w2,称为"正则化"
    • 贝叶斯派:隐式地通过先验 P ( w ) ∼ N ( 0 , τ 2 ) P(w) \sim \mathcal{N}(0, \tau^2) P(w)N(0,τ2) 约束 w w w
    • 两者在数学上完全一致,只是哲学叙述不同
  3. 为什么是高斯先验?

    • L2 正则化 ∥ w ∥ 2 \|w\|^2 w2 对应高斯先验 N ( 0 , τ 2 ) \mathcal{N}(0, \tau^2) N(0,τ2)
    • L1 正则化 ∥ w ∥ 1 \|w\|_1 w1 对应拉普拉斯先验 Laplace ( 0 , b ) \text{Laplace}(0, b) Laplace(0,b)
    • 正则化的形式决定了先验的类型

2.3.6 扩展:L1 正则化与拉普拉斯先验

类似地,如果我们选择拉普拉斯先验

P ( w ) = ∏ j = 1 d 1 2 b exp ⁡ ( − ∣ w j ∣ b ) ∝ exp ⁡ ( − ∥ w ∥ 1 b ) P(w) = \prod_{j=1}^d \frac{1}{2b} \exp\left(-\frac{|w_j|}{b}\right) \propto \exp\left(-\frac{\|w\|_1}{b}\right) P(w)=j=1d2b1exp(bwj)exp(bw1)

则对应的 MAP 估计为:

w ^ M A P = arg ⁡ min ⁡ w [ 1 2 σ 2 ∑ i = 1 N ( y i − w T x i ) 2 + ∥ w ∥ 1 b ] \begin{aligned} \hat{w}_{MAP} &= \arg\min_{w} \left[ \frac{1}{2\sigma^2} \sum_{i=1}^N (y_i - w^T x_i)^2 + \frac{\|w\|_1}{b} \right] \end{aligned} w^MAP=argwmin[2σ21i=1N(yiwTxi)2+bw1]

这正是 Lasso 回归(L1 正则化)!

对比总结

  • Ridge (L2) ↔ \leftrightarrow 高斯先验 N ( 0 , τ 2 ) \mathcal{N}(0, \tau^2) N(0,τ2) —— 权重倾向于小但非零
  • Lasso (L1) ↔ \leftrightarrow 拉普拉斯先验 —— 权重倾向于稀疏(很多为零)

2.3.7 可视化对比

让我们用一张图理解这个等价性:

频率派的优化问题                     贝叶斯派的概率推断
┌────────────────────┐              ┌────────────────────┐
│                    │              │                    │
│  min MSE + λ‖w‖²  │              │  max P(w|D)        │
│                    │              │                    │
└─────────┬──────────┘              └─────────┬──────────┘
          │                                   │
          │                                   │
          │          等价变换                 │
          └───────────────────────────────────┘
                         │
                         ▼
          ┌──────────────────────────┐
          │  min MSE + λ‖w‖²         │
          │  = min -log P(D|w) - log P(w) │
          └──────────────────────────┘

小结:通过这个推导,我们证明了"约束与信念本是同一枚硬币的两面"。频率派的正则化是显式地惩罚复杂度,贝叶斯派的先验是隐式地编码信念,但它们在数学上殊途同归。这个洞见是理解 SVM、神经网络中的 Weight Decay、以及变分推断等高级技术的基石。当你在调参 λ \lambda λ 时,本质上就是在调整"先验的强度" τ 2 \tau^2 τ2;当你在设计正则化项时,本质上就是在选择先验分布的形式。

2.4 算法 (Algorithm)

求解最优解的具体计算步骤。

  • 解析解:直接公式算出来(如 OLS)。
  • 数值优化:梯度下降 (SGD)、牛顿法、拟牛顿法 (BFGS)、坐标下降 (SMO)。

三、核心难题:偏差-方差权衡 (Bias-Variance Tradeoff)

为什么模型越复杂越容易过拟合?让我们从数学期望的角度把它拆解开。

3.1 误差分解公式推导

假设真实数据生成机制为 y = f ( x ) + ϵ y = f(x) + \epsilon y=f(x)+ϵ,其中噪声 E [ ϵ ] = 0 , V a r ( ϵ ) = σ ϵ 2 E[\epsilon]=0, Var(\epsilon)=\sigma_\epsilon^2 E[ϵ]=0,Var(ϵ)=σϵ2
我们训练出的模型为 f ^ ( x ) \hat{f}(x) f^(x)。在测试样本上的期望泛化误差可以完美分解为:

E [ ( y − f ^ ) 2 ] = Bias 2 [ f ^ ] + Var [ f ^ ] + Noise \begin{aligned} E[(y - \hat{f})^2] &= \text{Bias}^2[\hat{f}] + \text{Var}[\hat{f}] + \text{Noise} \end{aligned} E[(yf^)2]=Bias2[f^]+Var[f^]+Noise

📝 详细推导过程(点击展开)

为什么要展开这个推导?

这个分解不是显而易见的。很多教材直接给出结论,但这个展开过程蕴含了深刻的数学技巧:配方法、期望的线性性、以及独立性假设。理解这个推导,你会明白为什么"偏差"和"方差"是两个正交的概念,为什么它们可以完美分离。


给定条件

  • 真实模型: y = f ( x ) + ϵ y = f(x) + \epsilon y=f(x)+ϵ
  • 噪声: E [ ϵ ] = 0 ,  Var ( ϵ ) = σ ϵ 2 E[\epsilon] = 0, \ \text{Var}(\epsilon) = \sigma_\epsilon^2 E[ϵ]=0, Var(ϵ)=σϵ2
  • 训练集: D \mathcal{D} D(随机抽样)
  • 学习到的模型: f ^ ( x ; D ) \hat{f}(x; \mathcal{D}) f^(x;D)(依赖于训练集)

目标:计算在固定测试点 x x x 处的期望泛化误差(对所有可能的训练集和噪声求期望)。


Step 1:写出期望泛化误差

E D , ϵ [ ( y − f ^ ) 2 ] \begin{aligned} E_{\mathcal{D}, \epsilon}[(y - \hat{f})^2] \end{aligned} ED,ϵ[(yf^)2]

为简化记号,后续我们将 f ^ ( x ; D ) \hat{f}(x; \mathcal{D}) f^(x;D) 简写为 f ^ \hat{f} f^ f ( x ) f(x) f(x) 简写为 f f f


Step 2:代入真实模型 y = f + ϵ y = f + \epsilon y=f+ϵ

E [ ( y − f ^ ) 2 ] = E [ ( f + ϵ − f ^ ) 2 ] = E [ ( f − f ^ + ϵ ) 2 ] \begin{aligned} E[(y - \hat{f})^2] &= E[(f + \epsilon - \hat{f})^2] \\ &= E[(f - \hat{f} + \epsilon)^2] \end{aligned} E[(yf^)2]=E[(f+ϵf^)2]=E[(ff^+ϵ)2]


Step 3:展开平方项

E [ ( f − f ^ + ϵ ) 2 ] = E [ ( f − f ^ ) 2 + 2 ( f − f ^ ) ϵ + ϵ 2 ] \begin{aligned} E[(f - \hat{f} + \epsilon)^2] &= E[(f - \hat{f})^2 + 2(f - \hat{f})\epsilon + \epsilon^2] \end{aligned} E[(ff^+ϵ)2]=E[(ff^)2+2(ff^)ϵ+ϵ2]

利用期望的线性性:

= E [ ( f − f ^ ) 2 ] + 2 E [ ( f − f ^ ) ϵ ] + E [ ϵ 2 ] \begin{aligned} &= E[(f - \hat{f})^2] + 2E[(f - \hat{f})\epsilon] + E[\epsilon^2] \end{aligned} =E[(ff^)2]+2E[(ff^)ϵ]+E[ϵ2]


Step 4:处理交叉项

关键观察 f ^ \hat{f} f^ 只依赖于训练集 D \mathcal{D} D,而 ϵ \epsilon ϵ 是测试样本的噪声,两者独立

因此:

E [ ( f − f ^ ) ϵ ] = E D [ f − f ^ ] ⋅ E ϵ [ ϵ ] = E D [ f − f ^ ] ⋅ 0 = 0 \begin{aligned} E[(f - \hat{f})\epsilon] &= E_{\mathcal{D}}[f - \hat{f}] \cdot E_{\epsilon}[\epsilon] \\ &= E_{\mathcal{D}}[f - \hat{f}] \cdot 0 \\ &= 0 \end{aligned} E[(ff^)ϵ]=ED[ff^]Eϵ[ϵ]=ED[ff^]0=0

同时,由于 E [ ϵ ] = 0 E[\epsilon] = 0 E[ϵ]=0,根据方差定义:

E [ ϵ 2 ] = Var ( ϵ ) + ( E [ ϵ ] ) 2 = σ ϵ 2 + 0 = σ ϵ 2 \begin{aligned} E[\epsilon^2] &= \text{Var}(\epsilon) + (E[\epsilon])^2 \\ &= \sigma_\epsilon^2 + 0 \\ &= \sigma_\epsilon^2 \end{aligned} E[ϵ2]=Var(ϵ)+(E[ϵ])2=σϵ2+0=σϵ2

代入得:

E [ ( y − f ^ ) 2 ] = E [ ( f − f ^ ) 2 ] + σ ϵ 2 \begin{aligned} E[(y - \hat{f})^2] &= E[(f - \hat{f})^2] + \sigma_\epsilon^2 \end{aligned} E[(yf^)2]=E[(ff^)2]+σϵ2


Step 5:分解第一项 E [ ( f − f ^ ) 2 ] E[(f - \hat{f})^2] E[(ff^)2]

这是关键的一步!我们使用配方法,引入 E [ f ^ ] E[\hat{f}] E[f^](模型的期望预测):

E [ ( f − f ^ ) 2 ] = E [ ( f − E [ f ^ ] + E [ f ^ ] − f ^ ) 2 ] = E [ ( f − E [ f ^ ] ) ⏟ 偏差项 + ( E [ f ^ ] − f ^ ) ⏟ 方差项 ) 2 ] \begin{aligned} E[(f - \hat{f})^2] &= E\left[(f - E[\hat{f}] + E[\hat{f}] - \hat{f})^2\right] \\ &= E\left[\underbrace{(f - E[\hat{f}])}_{\text{偏差项}} + \underbrace{(E[\hat{f}] - \hat{f})}_{\text{方差项}}\right)^2] \end{aligned} E[(ff^)2]=E[(fE[f^]+E[f^]f^)2]=E 偏差项 (fE[f^])+方差项 (E[f^]f^) 2]

展开平方:

= E [ ( f − E [ f ^ ] ) 2 ] + E [ ( E [ f ^ ] − f ^ ) 2 ] + 2 E [ ( f − E [ f ^ ] ) ( E [ f ^ ] − f ^ ) ] \begin{aligned} &= E[(f - E[\hat{f}])^2] + E[(E[\hat{f}] - \hat{f})^2] + 2E[(f - E[\hat{f}])(E[\hat{f}] - \hat{f})] \end{aligned} =E[(fE[f^])2]+E[(E[f^]f^)2]+2E[(fE[f^])(E[f^]f^)]


Step 6:处理三项

第一项

E [ ( f − E [ f ^ ] ) 2 ] = ( f − E [ f ^ ] ) 2 ( f  和  E [ f ^ ]  都是常数) = Bias 2 [ f ^ ] \begin{aligned} E[(f - E[\hat{f}])^2] &= (f - E[\hat{f}])^2 \quad \text{($f$ 和 $E[\hat{f}]$ 都是常数)} \\ &= \text{Bias}^2[\hat{f}] \end{aligned} E[(fE[f^])2]=(fE[f^])2f  E[f^] 都是常数)=Bias2[f^]

第二项

E [ ( E [ f ^ ] − f ^ ) 2 ] = E [ ( f ^ − E [ f ^ ] ) 2 ] = Var [ f ^ ] \begin{aligned} E[(E[\hat{f}] - \hat{f})^2] &= E[(\hat{f} - E[\hat{f}])^2] \\ &= \text{Var}[\hat{f}] \end{aligned} E[(E[f^]f^)2]=E[(f^E[f^])2]=Var[f^]

第三项(交叉项)

E [ ( f − E [ f ^ ] ) ( E [ f ^ ] − f ^ ) ] = ( f − E [ f ^ ] ) ⋅ E [ E [ f ^ ] − f ^ ] = ( f − E [ f ^ ] ) ⋅ ( E [ f ^ ] − E [ f ^ ] ) = 0 \begin{aligned} E[(f - E[\hat{f}])(E[\hat{f}] - \hat{f})] &= (f - E[\hat{f}]) \cdot E[E[\hat{f}] - \hat{f}] \\ &= (f - E[\hat{f}]) \cdot (E[\hat{f}] - E[\hat{f}]) \\ &= 0 \end{aligned} E[(fE[f^])(E[f^]f^)]=(fE[f^])E[E[f^]f^]=(fE[f^])(E[f^]E[f^])=0


Step 7:最终结果

将所有项合并:

E [ ( y − f ^ ) 2 ] = ( E [ f ^ ] − f ) 2 ⏟ Bias 2 + E [ ( f ^ − E [ f ^ ] ) 2 ] ⏟ Variance + σ ϵ 2 ⏟ Noise \begin{aligned} E[(y - \hat{f})^2] &= \underbrace{(E[\hat{f}] - f)^2}_{\text{Bias}^2} + \underbrace{E[(\hat{f} - E[\hat{f}])^2]}_{\text{Variance}} + \underbrace{\sigma_\epsilon^2}_{\text{Noise}} \end{aligned} E[(yf^)2]=Bias2 (E[f^]f)2+Variance E[(f^E[f^])2]+Noise σϵ2

即:

E [ ( y − f ^ ) 2 ] = Bias 2 [ f ^ ] + Var [ f ^ ] + σ ϵ 2 \boxed{E[(y - \hat{f})^2] = \text{Bias}^2[\hat{f}] + \text{Var}[\hat{f}] + \sigma_\epsilon^2} E[(yf^)2]=Bias2[f^]+Var[f^]+σϵ2


核心洞见

  1. Bias 刻画"平均而言,模型离真实函数有多远"(系统性误差)
  2. Variance 刻画"不同训练集会让模型波动多大"(随机性误差)
  3. Noise 是数据本身的不可约误差
  4. 三者正交分解,互不干扰
  1. Bias (偏差) E [ f ^ ] − f E[\hat{f}] - f E[f^]f
    • 刻画模型的拟合能力
    • 模型越简单(如线性),Bias 越大(欠拟合)。
  2. Variance (方差) E [ ( f ^ − E [ f ^ ] ) 2 ] E[(\hat{f} - E[\hat{f}])^2] E[(f^E[f^])2]
    • 刻画模型的稳定性
    • 模型越复杂(如高阶多项式),Variance 越大(过拟合,对数据扰动敏感)。
  3. Noise (噪声) σ ϵ 2 \sigma_\epsilon^2 σϵ2
    • 数据本身的质量。这是不可约误差 (Irreducible Error),是泛化误差的下界。

3.2 经典 U 型曲线

随着模型复杂度增加:

  • Bias ↓ \downarrow (越来越准)
  • Variance ↑ \uparrow (越来越不稳定)
  • 总误差:先降后升,呈 U 型。最佳模型是在两者之间找到平衡点(Sweet Spot)。

四、实战演练:亲眼目睹过拟合与正则化

我们通过代码直观感受:为什么加了正则化(先验),曲线就能变平滑?

import numpy as np
import matplotlib.pyplot as plt
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression, Ridge

# 1. 真实函数:y = sin(2πx) + 噪声
def true_fun(X):
    return np.sin(2 * np.pi * X)

# 2. 生成合成数据
np.random.seed(0)
n_samples = 30
X = np.sort(np.random.rand(n_samples))
y = true_fun(X) + np.random.randn(n_samples) * 0.2

X_test = np.linspace(0, 1, 100)

# 3. 对比不同复杂度的模型
degrees = [1, 4, 15]
plt.figure(figsize=(14, 4))

for i, degree in enumerate(degrees):
    ax = plt.subplot(1, 3, i + 1)

    if degree == 15:
        # 特例:高阶多项式 + L2正则化
        model = Ridge(alpha=0.1)
        title_suffix = "(With Regularization)"
    else:
        model = LinearRegression()
        title_suffix = ""

    pipeline = Pipeline([
        ("poly", PolynomialFeatures(degree=degree, include_bias=False)),
        ("lr", model)
    ])
    pipeline.fit(X[:, np.newaxis], y)
    y_pred = pipeline.predict(X_test[:, np.newaxis])

    plt.plot(X_test, y_pred, label="Model", color="r")
    plt.plot(X_test, true_fun(X_test), label="True function", linestyle="--")
    plt.scatter(X, y, edgecolor='b', s=20, label="Samples")
    plt.title(f"Degree {degree} {title_suffix}")
    plt.legend()

plt.show()

关键现象:当 Degree=15 时,如果不加正则化,曲线会剧烈震荡(过拟合);但如果我们加上 Ridge(alpha=0.1),即使是 15 次多项式,曲线也变得惊人地平滑!这验证了贝叶斯先验对模型复杂度的约束作用


4.1 从"跑通代码"到"验证理论":深度解析

核心问题:上述代码不仅仅是"演示过拟合",更是对 2.3 节数学推导的实证验证。让我们逐行剖析,揭示代码与理论的精确对应关系。

4.1.1 理论回顾:Ridge 回归的数学本质

在 2.3.4 节,我们证明了 Ridge 回归的目标函数:

w ^ R i d g e = arg ⁡ min ⁡ w [ 1 N ∑ i = 1 N ( y i − w T x i ) 2 + λ ∥ w ∥ 2 ] \hat{w}_{Ridge} = \arg\min_{w} \left[ \frac{1}{N} \sum_{i=1}^N (y_i - w^T x_i)^2 + \lambda \|w\|^2 \right] w^Ridge=argwmin[N1i=1N(yiwTxi)2+λw2]

等价于贝叶斯 MAP 估计:

w ^ M A P = arg ⁡ max ⁡ w [ log ⁡ P ( y ∣ X , w ) + log ⁡ P ( w ) ] \hat{w}_{MAP} = \arg\max_{w} \left[ \log P(y|X,w) + \log P(w) \right] w^MAP=argwmax[logP(yX,w)+logP(w)]

其中正则化系数与先验方差的关系为:

λ = σ 2 N τ 2 \lambda = \frac{\sigma^2}{N\tau^2} λ=Nτ2σ2

  • σ 2 \sigma^2 σ2:观测噪声方差(数据的不确定性)
  • τ 2 \tau^2 τ2:先验方差(对权重大小的先验信念强度)
  • N N N:样本数量

4.1.2 代码与理论的逐行对应

让我们将代码与理论公式一一映射:

1. 数据生成过程(对应贝叶斯模型假设)

y = true_fun(X) + np.random.randn(n_samples) * 0.2

理论对应
y i = f ( x i ) + ϵ i , ϵ i ∼ N ( 0 , σ 2 ) y_i = f(x_i) + \epsilon_i, \quad \epsilon_i \sim \mathcal{N}(0, \sigma^2) yi=f(xi)+ϵi,ϵiN(0,σ2)

这里 0.2 正是噪声标准差 σ = 0.2 \sigma = 0.2 σ=0.2,因此 σ 2 = 0.04 \sigma^2 = 0.04 σ2=0.04

洞见:这行代码在数学上定义了似然函数 P ( y ∣ X , w ) P(y|X,w) P(yX,w) 的形式——高斯分布。


2. Ridge 正则化参数(对应先验强度)

model = Ridge(alpha=0.1)

理论对应
λ = 0.1 \lambda = 0.1 λ=0.1

但这个 alpha=0.1 背后隐藏着什么?根据 λ = σ 2 N τ 2 \lambda = \frac{\sigma^2}{N\tau^2} λ=Nτ2σ2,我们可以反推出隐式的先验方差:

τ 2 = σ 2 N λ = 0.04 30 × 0.1 = 0.04 3 ≈ 0.0133 \tau^2 = \frac{\sigma^2}{N\lambda} = \frac{0.04}{30 \times 0.1} = \frac{0.04}{3} \approx 0.0133 τ2=Nλσ2=30×0.10.04=30.040.0133

物理意义解读

  • λ \lambda λ 越大 → 先验方差 τ 2 \tau^2 τ2 越小 → 先验信念越强 → 权重被约束得越死 → 曲线越平滑
  • λ \lambda λ 越小 → 先验方差 τ 2 \tau^2 τ2 越大 → 先验信念越弱 → 允许权重变大 → 曲线可以更灵活(但可能过拟合)

在我们的例子中, τ 2 = 0.0133 \tau^2 = 0.0133 τ2=0.0133 意味着先验认为"权重的绝对值大概率不超过 0.0133 ≈ 0.115 \sqrt{0.0133} \approx 0.115 0.0133 0.115"。这个强约束使得即使模型有 15 个多项式项,每个权重也不能太大,从而避免剧烈震荡。


3. 多项式展开(对应特征空间的维度)

PolynomialFeatures(degree=15, include_bias=False)

理论对应:将输入 x x x 映射到高维特征空间:

ϕ ( x ) = [ x , x 2 , x 3 , … , x 15 ] T \phi(x) = [x, x^2, x^3, \dots, x^{15}]^T ϕ(x)=[x,x2,x3,,x15]T

此时权重向量 w ∈ R 15 w \in \mathbb{R}^{15} wR15,模型变为:

f ^ ( x ) = w 1 x + w 2 x 2 + ⋯ + w 15 x 15 \hat{f}(x) = w_1 x + w_2 x^2 + \cdots + w_{15} x^{15} f^(x)=w1x+w2x2++w15x15

过拟合的根源:当 degree=15 时,模型有 15 个自由度,而我们只有 30 个样本点。如果没有正则化,模型会找到一组权重 w w w,使得曲线精确穿过几乎所有训练点,但在训练点之间剧烈震荡(高方差)。


4. 优化过程(对应 MAP 估计的求解)

pipeline.fit(X[:, np.newaxis], y)

理论对应:在后台,Ridge 正在求解:

w ^ = arg ⁡ min ⁡ w [ ∑ i = 1 30 ( y i − w T ϕ ( x i ) ) 2 + 0.1 × ∥ w ∥ 2 ] \hat{w} = \arg\min_{w} \left[ \sum_{i=1}^{30} (y_i - w^T \phi(x_i))^2 + 0.1 \times \|w\|^2 \right] w^=argwmin[i=130(yiwTϕ(xi))2+0.1×w2]

这个优化问题有闭式解(Closed-form Solution):

w ^ = ( X T X + λ I ) − 1 X T y \hat{w} = (X^T X + \lambda I)^{-1} X^T y w^=(XTX+λI)1XTy

其中 X X X 是特征矩阵, I I I 是单位矩阵。

关键点:注意分母中的 λ I \lambda I λI 项!这正是正则化(先验)的作用:

  • λ = 0 \lambda = 0 λ=0(无先验)时,解退化为普通最小二乘 ( X T X ) − 1 X T y (X^T X)^{-1} X^T y (XTX)1XTy
  • λ > 0 \lambda > 0 λ>0 时, λ I \lambda I λI 使得矩阵 ( X T X + λ I ) (X^T X + \lambda I) (XTX+λI) 的条件数变小,即使 X T X X^T X XTX 接近奇异(样本量少于特征数)时,也能稳定求解

4.1.3 数值实验:验证 λ \lambda λ 的作用

让我们通过对比不同 alpha 值,直观感受先验强度对模型的约束:

alpha对应 τ 2 \tau^2 τ2先验信念强度曲线表现
0.0011.33极弱几乎完美拟合训练点,剧烈震荡
0.010.133轻微震荡,开始平滑
0.10.0133中等平滑曲线,较好泛化
1.00.00133过于平滑,开始欠拟合

实验建议:修改代码中的 alpha 值,观察曲线形状的变化,你会发现:

  • alpha 从 0.001 增加到 1.0 时,曲线从"狂野震荡"逐渐变为"保守平滑"
  • 这正是贝叶斯先验从"几乎不约束"到"强力约束"的过程

4.1.4 更深层的洞见:为什么正则化能"杀死"震荡?

几何直觉

  • 15 次多项式的曲线要剧烈震荡,必然需要某些高次项的系数 w k w_k wk 非常大(正负交替)
  • L2 正则化 ∥ w ∥ 2 = w 1 2 + w 2 2 + ⋯ + w 15 2 \|w\|^2 = w_1^2 + w_2^2 + \cdots + w_{15}^2 w2=w12+w22++w152 会惩罚所有大的权重
  • 在优化过程中,模型被迫在"拟合训练数据"和"保持权重较小"之间权衡
  • 最终妥协的结果是:曲线大致跟随真实函数趋势,但不会为了穿过每个点而让高次项系数爆炸

代数证明(简化版):假设某个权重 w k w_k wk 很大,比如 w k = 10 w_k = 10 wk=10,则:

  • 不加正则化时:只要它能让 MSE 下降,就会被接受
  • 加正则化后:需要让 MSE 下降的收益,超过 λ w k 2 = 0.1 × 100 = 10 \lambda w_k^2 = 0.1 \times 100 = 10 λwk2=0.1×100=10 的惩罚,才值得保留这么大的权重

4.1.5 本节小结

通过这段代码,我们完成了从理论到实践的完整闭环:

  1. 数学推导(2.3 节):证明了 Ridge 回归 = 高斯先验 MAP
  2. 参数映射(本节):明确了 alpha=0.1 对应 λ = σ 2 N τ 2 \lambda = \frac{\sigma^2}{N\tau^2} λ=Nτ2σ2
  3. 物理解释(本节):理解了 λ \lambda λ 增大 = 先验方差 τ 2 \tau^2 τ2 减小 = 约束变强
  4. 视觉验证(代码图像):看到了平滑曲线就是先验约束的直接体现

关键领悟

当你调用 Ridge(alpha=0.1) 时,你并不是在简单地"添加一个惩罚项",而是在数学上等价于告诉模型:“我先验地相信,权重应该服从 N ( 0 , 0.0133 ) \mathcal{N}(0, 0.0133) N(0,0.0133) 的分布”。这个先验信念与数据的似然函数共同决定了最终的后验分布,而 MAP 估计就是这个后验分布的峰值。

下次当你在机器学习实践中调参 λ \lambda λ 时,不要只是盲目网格搜索,而应该思考:

  • 当前任务的噪声水平 σ 2 \sigma^2 σ2 大致是多少?
  • 我有多少样本 N N N
  • 我愿意对权重施加多强的约束(先验方差 τ 2 \tau^2 τ2 应该多大)?
  • 根据 λ = σ 2 N τ 2 \lambda = \frac{\sigma^2}{N\tau^2} λ=Nτ2σ2 来指导 λ \lambda λ 的选择范围

这就是从"炼丹"到"理性设计"的跨越。


五、拓展深入:当传统理论失效——双下降现象

思考:如果不加正则化,一味地增加模型参数(比如几千亿参数的大模型),模型一定会过拟合吗?

5.1 经典理论的困境

传统的 Bias-Variance Tradeoff 告诉我们,随着参数量增加,测试误差会先降后升(U型曲线)。这解释了 SVM、随机森林等传统算法。

5.2 深度学习的怪象

但在深度学习时代(Deep Learning Era),我们发现了一个惊人的现象:
当参数量远远超过样本量(Over-parameterized)时,测试误差在短暂上升后,竟然再次下降!这就是著名的 “双下降” (Double Descent) 现象。

  1. 第一下降区 (Under-parameterized):符合传统 U 型曲线。
  2. 插值阈值 (Interpolation Threshold):当模型大到刚好能记住所有训练样本时,过拟合最严重,测试误差达到峰值。
  3. 第二下降区 (Over-parameterized):当参数量继续增加,模型变得极其庞大时,虽然它依然记住了所有样本(训练误差为0),但测试误差反而继续降低,且往往低于经典的 Sweet Spot。

5.3 为什么会这样?

这目前是学术界的前沿热点。一种解释是:
极度过参数化的模型(如大模型)在 SGD 优化下,倾向于寻找**"最平坦"的最小值 (Flattest Minima)。这种平坦性自带了一种隐式的正则化效果**,使得模型具有了某种奥卡姆剃刀式的简单性,从而神奇地拥有了良好的泛化能力。

启示:在深度学习时代,"过拟合"的定义正在被重写。有时候,(足够大)真的就是


六、本章小结

本章看似零散地讲解了流派之争、三要素、偏差方差等概念,但实际上它们构成了一个严密的认知闭环。如果我们从更高的维度俯瞰,会发现一个惊人的洞见:频率派和贝叶斯派的百年纠葛,本质上是求值 vs 求分布两种世界观的对立。

频率派认为参数 θ \theta θ 是固定的未知常量,所以机器学习是一个优化问题 arg ⁡ max ⁡ θ P ( X ∣ θ ) \arg\max_\theta P(X|\theta) argmaxθP(Xθ)。当面对过拟合风险时,他们选择显式地惩罚模型复杂度,引入正则化项 λ J ( f ) \lambda J(f) λJ(f)。而贝叶斯派则认为 θ \theta θ 本身就是随机变量,机器学习是一个积分问题 ∫ P ( x n e w ∣ θ ) P ( θ ∣ X ) d θ \int P(x_{new}|\theta) P(\theta|X) d\theta P(xnewθ)P(θX)dθ,通过先验分布 P ( θ ) P(\theta) P(θ) 来编码对参数的"主观信念"。

但更深刻的是,这两种看似对立的方法论,在数学上竟然完全等价。L2 正则化等价于引入高斯先验 N ( 0 , σ 2 ) \mathcal{N}(0, \sigma^2) N(0,σ2),L1 正则化等价于拉普拉斯先验。这揭示了一个哲学真理:约束与信念,本是同一枚硬币的两面。频率派的"惩罚复杂度"和贝叶斯派的"编码信念",殊途同归。

从统计学习三要素(模型、策略、算法)到偏差-方差权衡,我们看到了机器学习如何在拟合能力与泛化能力之间走钢丝。传统理论告诉我们,模型复杂度应该有一个"甜蜜点"(Sweet Spot),对应经典的 U 型曲线。但深度学习时代的双下降现象,彻底颠覆了这一认知:当模型足够大时,即使完美记住所有训练样本,测试误差反而会再次下降。这种"隐式正则化"的魔力,来自于 SGD 倾向于寻找最平坦的最小值。

回顾全章,我们建立了一套完整的认知体系,如下图所示:

数学等价

机器学习的哲学基石

频率派:世界是确定的

贝叶斯派:世界是不确定的

方法论:MLE
极大似然估计

方法论:MAP/MCMC
后验分布估计

统计学习三要素

模型:假设空间 F

策略:损失函数 + 正则化

算法:优化求解器

核心难题:
偏差-方差权衡

高偏差 Low Bias
欠拟合
模型过于简单

高方差 High Var
过拟合
对数据扰动敏感

解决方案分支

频率派:显式正则化
L1/L2/Dropout

贝叶斯派:引入先验
P theta ~ N 0 σ²

现代深度学习:
双下降现象

过参数化时
隐式正则化
Flattest Minima

从理论到实践,我们可以构建这样一条完整链条:世界观决定了方法论(MLE vs MAP),三要素框架解构了任何算法的本质,结构风险最小化给出了对抗过拟合的数学工具,而偏差-方差分解则提供了诊断模型问题的量化手段。传统范式通过 U 型曲线寻找 Sweet Spot,支撑着 SVM、随机森林等经典算法;而现代范式则在双下降的指引下,拥抱 Transformer、GPT 等超大规模模型。

这一章也为我们留下了几个值得深思的问题:如果贝叶斯派的先验本质上是"主观的",我们凭什么相信它能带来客观的泛化能力?为什么 L2 正则化恰好等价于高斯先验,而不是其他分布?双下降现象告诉我们"大即是美",但在资源受限的场景下,我们该如何平衡模型规模与计算成本?这些问题的答案,将在后续章节中逐步揭晓。


推荐阅读

  • 白板推导系列 - P1 绪论 (shuhuai008, B站):深入讲解频率派与贝叶斯派的哲学差异,包含详细的板书推导过程。
  • 《统计学习方法》 - 第1章 概论 (李航):系统阐述统计学习三要素框架(模型、策略、算法)。
  • Belkin et al. (2019). “Reconciling modern machine learning practice and the classical bias-variance trade-off”:关于传统偏差-方差权衡理论与现代机器学习实践冲突的开创性研究。
  • Nakkiran et al. (2021). “Deep Double Descent: Where Bigger Models and More Data Hurt”:深入探讨双下降现象的理论解释和实验验证。

下章预告

理解了"为什么要学机器学习",我们需要锻造"如何推导机器学习"的数学兵器。

下一章 第02章:线性代数基础 将带你掌握机器学习推导的核心武器——矩阵求导术。我们不会停留在机械的公式记忆,而是从几何直觉出发,理解为什么梯度是"最陡峭的上升方向",为什么 Hessian 矩阵能刻画"曲率"。这套武器,将让你看懂 90% 机器学习论文的推导过程。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐