Class 4 - Objective Function, Validation and Regularization

1. Loss Runction and Risk

1.1. 三种类型的问题

对于一个已经训练好的监督学习模型 $h(\cdot)$ ,以及一组给定的数据 $(x_i,y_i),i=1,...,n$ ,我们该如何评估这个模型的性能?

  • 模型 $h(\cdot)$:我们给它一个输入,它会给我们一个预测输出。
  • 数据 $(x_i,y_i)$:这是我们拥有的“标准答案”数据集,其中:
    • $x_i\in\mathcal{R}^d$ 代表第 $i$ 个样本的输入特征 。它是一个 $d$ 维的向量,也就是说,每个样本都由 $d$ 个数值特征来描述。比如,在房价预测中,$x_i$​ 可能包含了房屋的面积、卧室数量、楼层等信息,那么 $d$ 就是特征的数量。
    • $y_i​$ 是第 $i$ 个样本的真实标签目标值 。这是我们希望模型能够预测出来的正确答案。

为了解决上面的核心问题,我们首先要明确我们要处理的是哪一类问题。这取决于标签 $y$ 的取值范围,我们将其称为标签空间 $\mathcal{C}$ 。我们定义三种最核心的监督学习任务类型:

  1. 二元分类 (Binary Classification)
    • 标签空间 $\mathcal{C}={+1,-1}$ 或者 ${0,1}$ 。
    • 这是最简单的分类问题,目标是把样本分成两类。例如,判断一封邮件是否为垃圾邮件(是/否),或者判断一个肿瘤是良性还是恶性。用数字 ${+1,−1}$ 或 ${0,1}$ 来代表这两个类别,便于数学处理。
  2. 多类分类 (Multi-class Classification)
    • 标签空间 $\mathcal{C}={1,2,...,K}$ 。
    • 当分类的类别超过两种时,就是多类分类问题。例如,手写数字识别,需要将图片识别为 $0,1,2,...,9$ 这10个类别之一(此时 $K=10$)。再比如,新闻主题分类,可能需要分为体育、财经、科技、娱乐等多个类别。
  3. 回归 (Regression)
    • 标签空间 $\mathcal{C}=\mathcal{R}$($\mathcal{R}$ 代表所有实数的集合)。
    • 与分类问题不同,回归问题的目标不是预测一个类别,而是预测一个连续的数值。例如,预测明天的气温、预测一支股票的价格、或者预测房屋的售价。这些预测值可以是任意的实数。

1.2. Loss Funtion

明确了不同类型的问题后,我们给出损失函数的定义:

损失函数衡量的是模型对单个数据样本 $(x,y)$ 的预测效果 。具体来说,就是预测值 $\hat{y}=h(x)$ 和真实值 $y$ 之间的差异程度 。可以把它看作是一个“惩罚函数”。预测得越离谱,函数输出的“惩罚值”(也就是损失)就越大;预测得越准,损失就越小。

三种常见的损失函数:

  1. 平方损失 (Squared loss)
    • 公式:$L(y,h(x))=(h(x)-y)^2$
    • 这是回归问题中最常用的一种损失函数,也被称为L2损失
      • 优点:由于平方的存在,它会对较大的误差施加更重的惩罚(比如,误差为2的损失是4,误差为3的损失是9)。这使得模型倾向于去修正那些预测得离谱的点。此外,这个函数是处处可导的,数学性质很好,便于使用梯度下降等优化算法。
      • 缺点:也正是因为对大误差的惩罚很重,它对异常点 (outliers) 非常敏感。如果数据中有一个偏差很大的异常点,模型会花费很大力气去拟合它,可能导致整体的性能变差。
  2. 绝对值损失 (Absolute loss)
    • 公式:$L(y,h(x))=|h(x)-y|$
    • 这也是一种用于回归问题的损失函数,也叫L1损失
    • 补充知识
      • 优点:与平方损失相比,它对所有误差的惩罚都是线性的,因此对异常点有更好的鲁棒性(robustness)。一个异常点不会对模型的训练产生过度的影响。
      • 缺点:这个函数在 $h(x)=y$ 的点(即误差为0的点)是不可导的,这给优化过程带来了一些数学上的不便,但工程上有很多方法可以解决。
  3. 0-1 损失 (0-1 loss)
    • 公式:$L(y,h(x))=I(h(x)\neq y)$
    • 这是分类问题中最直接、最符合直觉的一种损失函数。
    • 补充知识
      • 这里的 $I(\cdot)$ 是一个指示函数 (indicator function)。如果括号里的条件成立,函数值为1;否则为0。所以,0-1损失的含义很简单:预测对了,损失是0;预测错了,损失是1。
      • 理论上完美,实践中困难:虽然0-1损失完美地描述了我们追求的目标(即最小化错误分类的个数),但它是一个非凸、不连续的函数,无法求导。这导致优化算法(如梯度下降)完全无法在其上工作。因此,在实际应用中,我们很少直接优化0-1损失,而是使用一些性质更好的“替代品”,比如后面会讲到的对数损失 (Log Loss) 或合页损失 (Hinge Loss)

依靠损失函数,我们将一个学习问题转换为了一个优化问题。通过定义一个损失函数,就为“学习”设定了一个明确的目标:找到一个模型 $h(⋅)$,使得它在所有训练数据上的总损失(或者平均损失)最小,接下来的任务就交给了各种优化算法(比如梯度下降),它们会通过迭代计算,不断调整模型的内部参数,来一步步地逼近这个最小损失值。

1.3. Risk - 风险

我们定义风险 $R(h)$。 $$R(h)=E_{(x,y)\sim F(X,Y)}[L(y,h(x))]$$ 这个公式中,$E[\cdot]$ 代表数学期望,$L(y,h(x))$ 代表模型 $h$ 在单个数据点 $(x,y)$ 上的损失。$(x,y)\sim F(X,Y)$ 表示数据点 $(x,y)$ 是从一个真实但未知的联合概率分布 $F(X,Y)$ 中抽样出来的。

可以想象宇宙中存在一个包含了所有可能数据的“上帝视角”的数据集。比如,要识别猫,这个分布 $F(X,Y)$ 就包含了古往今来、世界上所有的猫的照片。风险 $R(h)$ 的含义就是:你的模型 $h$ 在这个“上帝视角”的数据集上,所表现出的平均损失

这才是我们衡量模型泛化能力的终极指标。我们真正想要的,是一个在所有未知数据上都能表现很好的模型,即一个拥有最小真实风险的模型。但是这个 $F(X,Y)$ 是未知的。我们永远无法获取所有的数据,所以真实风险 $R(h)$ 是无法被直接计算的。它只是一个我们希望达到但永远无法精确测量的理论目标。

1.4. Empirical Risk - 经验风险

因为统计学中我们可以用样本估计总体,因此我们引入经验风险 $R_{emp}(h)$ $$R_{emp}(h)=\frac{1}{n}\sum_{i=1}^nL(y_i,h(x_i))$$ 我们有一个包含 $n$ 个样本的已知数据集 ${x_i,y_i}_{i=1}^n$ ,我们要做的就是用模型 $h$ 跑一遍这个数据集,计算出每个样本的损失 $L(y_i,h(x_i))$ ,然后把这 $n$ 个损失值加起来,最后除以样本总数 $n$,得到平均损失

这么做能行的原因是蒙特卡洛思想,我们无法对整个庞大的数据分布求期望(积分),但我们可以通过随机抽样(我们手上的数据集 ${x_i,y_i}$ 就是一次抽样),然后计算这些样本的平均值,来近似那个我们无法直接计算的期望值。

根据大数定律,只要我们的样本量 $n$ 足够大,并且是独立同分布地从真实分布 $F(X,Y)$ 中抽取的,那么经验风险 $R_{emp​}(h)$ 就会是真实风险 $R(h)$ 的一个很好的近似

因此,机器学习算法的实际目标就变成了最小化经验风险。这个原则被称为经验风险最小化 (Empirical Risk Minimization, ERM)。我们通过调整模型参数,使得模型在训练集上的平均损失最小。

需要注意的是,过度地、不计一切代价地去最小化经验风险是危险的。如果一个模型把训练数据“背”得太好(经验风险极低,甚至为0),它很可能失去了对未知数据的泛化能力(真实风险反而很高)。这就是过拟合 (Overfitting) 现象。

2. 回归损失函数与似然

2.1. 机器学习视角

回归分析的定义是估计因变量 $Y$ 和一个或多个自变量 $X$ 之间的关系,我们可以给出一个核心的统计模型表达式: $$y=h(x)+\epsilon$$ 这个公式是理解许多机器学习模型统计基础的关键。它把我们观察到的目标值 $y$ 分解成了两个部分:

  • $h(x)$: 这是系统性部分或称信号 (Signal)。它代表了 $y$ 中可以通过输入特征 $x$ 来解释和预测的确定性关系。在机器学习中,这正是我们想要学习到的那个模型函数。
  • $ϵ$ : 这是随机误差项或称噪声 (Noise)。它代表了所有 $h(x)$ 无法解释的部分。这可能来源于:
    • 数据采集过程中的随机测量误差。
    • 我们没有观察到或没有包含在模型中的其他影响因素(例如,预测房价时没有考虑房主的装修品味)。
    • 问题本身固有的、无法消除的随机性。我们只能观察到数据对 $(x_i​,y_i​)$,但我们无法直接观察到每一次测量的真实误差 $ϵ$。

直接在所有可能的函数中去寻找最优的 $h$ 是不现实的,并且会导致模型缺乏泛化能力。

因为“所有可能的函数”是一个无限大的集合。你可以在数据点之间画出无数条奇形怪状的、扭曲的曲线。在这样一个无限的空间里进行搜索,计算上是不可行的。

更重要的是,即使你能找到一个函数完美地穿过所有训练数据点(即对训练集而言,$ϵ$ 为0),这个函数也几乎肯定会过拟合。它只是“背诵”了训练数据,而没有学到数据背后真正的规律,因此在遇到新的、未见过的数据时,表现会非常糟糕。

所以我们的策略是:应该首先指定一个可能的函数集合 $H$(称为假设空间假设类),然后在这个有限的集合中寻找最优的函数 $h^∗$。在实践中,我们通常会选择一个参数模型 $h_θ$​ 来定义这个空间,其形态由一组有限的参数 $θ$ 来控制。

这种做法的巨大优势在于,它将一个抽象的“寻找最优函数”的问题,转化为了一个具体的“寻找最优参数”的问题。寻找函数是困难的,但寻找一组能让函数表现最好的数字(参数)则是一个可以通过计算来解决的优化问题。

以最经典的线性回归作为例子 $$h_\theta(x)=\theta^Tx$$ 在这个例子里,我们的假设空间 $H$ 就是所有可能的线性函数,而具体是哪一个线性函数,完全由参数 $θ$ 来决定。从机器学习的角度来看,我们的任务就是找到一组最好的参数 $θ^∗$,而“最好”的定义就是能让经验风险最小化。 $$\theta^*=\arg\min_\theta\frac{1}{n}\sum_{i=1}^nL(y_i,h_\theta(x_i))$$ 这个公式就是经验风险最小化 (Empirical Risk Minimization, ERM) 的数学表达。

2.2. 统计学视角

2.2.1. 高斯分布假设

监督学习问题也可以从统计学的角度来研究。再次回顾那个核心的统计模型: $$y=h_\theta(x)+\epsilon$$ 前面的机器学习视角,主要关注的是如何让 $h_θ​(x)$ 去逼近 $y$,而对 $ϵ$ 的具体形态不作过多探究。而统计学的视角则恰恰相反,它会从对误差 $ϵ$ 的分析入手,通过理解噪声的规律来反推出模型的最佳参数。

统计学的核心思想是:我们可以通过对误差项 $ϵ$ 做出一个概率分布的假设,来获得我们观测到整个数据集 ${(x_i,y_i)}_{i=1}^n$ 的似然。即,我们虽然不知道每一个样本的真实误差 $ϵ_i$​ 是多少,但我们可以假设所有这些误差都服从同一个概率分布规律

最常见、最重要的一个假设是: $$\epsilon_i\overset{i.i.d.}{\operatorname*{\sim}}N(0,\sigma^2)$$ 这个假设很重要,因为 $h_θ​(x)$ 虽然是一个函数,但是在计算出来后一定是一个标量值,那么一旦我们知道了 $ϵ_i$​ 的分布,我们就可以推导出 $y_i​$ 的分布。根据 $y_i=h_\theta(x_i)+\epsilon_i$ 。

  • 如果 $ϵ_i$​ 服从均值为0的正态分布。
  • 那么 $y_i$​ 就服从均值为 $h_θ​(x_i​)$ 的正态分布。

这样一来,对于任意一组给定的模型参数 $θ$,我们都可以计算出“我们现在观测到的这组数据 ${y_i​}$ 出现的概率是多少”。这个概率,就是似然。那么,在所有可能的参数 $θ$ 中,找到那个能让我们观测到的这组数据出现概率最大的 $θ$,这组 $θ$ 不就是最“靠谱”的参数吗?这个原则,就是大名鼎鼎的最大似然估计 (Maximum Likelihood Estimation, MLE)

下面我们更严谨的数学化,误差项 $ϵ_i$​ 服从正态分布这个前提下,观测值 $y_i$​ 本身的概率分布: $$y_i|x_i\sim N(h_\theta(x_i),\sigma^2)$$

  • 这个表达式的含义是“在给定输入 $x_i​$ 的条件下,$y_i​$ 的值服从一个正态分布”。
  • 这个正态分布的均值是 $h_θ​(x_i​)$。这非常符合直觉:因为 $y_i=h_\theta(x_i)+\epsilon_i$,而误差 $ϵ_i​$ 的均值为0,所以 $y_i​$ 的期望值自然就是我们模型的预测值 $h_θ​(x_i​)$。
  • 这个正态分布的方差是 $σ^2$。这也很好理解,$y_i$​ 的波动完全来自于误差 $ϵ_i​$ 的波动,所以它们的方差是相同的。

知道了单个 $y_i​$ 的分布后,我们就可以写出观测到整个数据集的概率,这就是似然函数。 $$p({y_i}{i=1}^n|{x_i}{i=1}^n,\theta)=\prod_{i=1}^n\frac{1}{\sqrt{2\pi\sigma^2}}\exp\left{-\frac{(y_i-h_\theta(x_i))^2}{2\sigma^2}\right}$$

  • $\frac{1}{\sqrt{2\pi\sigma^2}}\exp{\cdot}$ 是正态分布的概率密度函数 (PDF) 公式。它计算的是在均值为 $h_θ​(x_i​)$、方差为 $σ^2$ 的正态分布中,出现 $y_i​$ 这个值的“可能性”大小。
  • 因为我们假设每个样本的误差是独立的,所以观测到整个数据集的联合概率就是每个样本概率的乘积,所以用连乘符号。

直接处理一长串的乘积在数学上和计算上都非常困难(很多个小于1的数相乘容易导致数值下溢)。因此,一个标准操作是取对数,将“连乘”变为“连加”。 $$\log p({y_i}{i=1}^n|{x_i}{i=1}^n,\theta)=-\frac{\sum_{i=1}^n(y_i-h_\theta(x_i))^2}{2\sigma^2}+\mathrm{constant}$$

  • 对数函数 $log$ 是一个单调递增函数,所以最大化一个函数与其最大化它的对数是等价的。但对数似然在数学上要简洁得多。
  • $log$ 作用于连乘 $∏$,会变成连加 $∑$。
  • $log$ 作用于指数函数 $exp$,两者会抵消。
  • 原来式子中的 $\frac{1}{\sqrt{2\pi\sigma^2}}$​ 项在求对数后变成​ $\sum_{i=1}^n\log(\frac{1}{\sqrt{2\pi\sigma^2}})$ 。因为这个部分不包含我们要优化的参数 $θ$,所以在优化时可以视作一个常数项

我们看等号左边,我们要的是最大化这个似然,即在数学定义上就是找最大似然估计: $$\hat{\theta}{MLE}=\arg\max\theta\log p({y_i}{i=1}^n|{x_i}{i=1}^n,\theta)$$ 因为右边是一个常数加一个负数,所以等同于最小化右边的函数: $$=\arg\min_\theta\frac{\sum_{i=1}^n(y_i-h_\theta(x_i))^2}{n}$$ 注意 $\sum_{i=1}^n(y_i-h_\theta(x_i))^2$ ,这个公式其实就是残差平方和,也就是平方损失函数 $L(y,\hat{y})=(y-\hat{y})^2$ 的定义。因此,最小化“平均残差平方和”,就等价于最小化使用平方损失作为损失函数时的经验风险 $R_{emp}(h_\theta)$ $$=\arg\min_\theta\frac{1}{n}\sum_{i=1}^nL(y_i,h_\theta(x_i))=\arg\min_\theta R_{emp}(h_\theta)$$ 因此,在误差服从正态分布的假设下,最大化对数似然,等价于使用平方损失函数来最小化经验风险(即最小化残差平方和)

这其实为我们常用的线性回归中的“最小二乘法”提供了坚实的概率论基础。我们选择最小化平方误差,不仅仅因为它计算方便、性质好,更是因为它在“高斯噪声”这个非常普遍且合理的假设下,是统计上最“靠谱”的估计方法。

因此,我们选择一个误差的计算方法,等价于我们假设噪声的一个分布,这个结论也是可以推广的:

  • 平方损失 (L2 Loss) ⟺ 高斯噪声假设。
  • 后面课程会讲到的绝对值损失 (L1 Loss) ⟺ 拉普拉斯噪声假设。
  • 交叉熵损失 (Cross-Entropy Loss) ⟺ 伯努利/多项分布假设(用于分类)。

2.2.2. 拉普拉斯分布假设

如果我们假设误差项 $ϵ_i​$ 是独立同分布地来自于一个双指数分布(即拉普拉斯分布)$Laplace(0, b)$

$y$ 的分布: 首先,基于 $y_i=h_\theta(x_i)+\epsilon_i$ 的关系,可以直接得出 $y_i|x_i\sim\mathrm{Laplace}(h_\theta(x_i),b)$ 。即在给定 $x_i​$ 时,$y_i​$ 服从一个位置参数(相当于均值)为 $h_θ​(x_i​)$、尺度参数为 $b$ 的拉普拉斯分布。

似然函数: 由于样本独立,总的似然函数是每个样本概率密度函数的连乘。 $$p({y_i}{i=1}^n|{x_i}{i=1}^n,\theta)=\prod_{i=1}^n\frac{1}{2b}\exp\left{-\frac{|y_i-h_\theta(x_i)|}{b}\right}$$ 对数似然函数: 同样地,我们取对数将连乘变为连加。 $$\log p({y_i}{i=1}^n|{x_i}{i=1}^n,\theta)=-\frac{\sum_{i=1}^n|y_i-h_\theta(x_i)|}{b}+\mathrm{constant}$$ 由于 $b$ 是一个正常数且式子前方有一个负号,最大化整个表达式就等价于最小化分子中的求和项: $$\sum_{i=1}^n|y_i-h_\theta(x_i)|$$ 这是绝对误差之和 (Sum of Absolute Errors, SAE)。这与我们使用绝对值损失 (Absolute Loss) 时的经验风险是成正比的。

因此从统计学的最大似然估计出发,在假设误差服从拉普拉斯分布的前提下,我们推导出的优化目标,与从机器学习的经验风险最小化出发,在使用绝对值损失函数 (L1 Loss) 时所定义的目标,是完全一样的

所以,在这里,工程决策和统计推断是相通的:

  • 当你选择最小二乘法 (Squared Loss) 时,你实际上是在隐含地声明:“我相信我的数据中的噪声是高斯分布的,没有太多离谱的异常值。”
  • 当你选择最小绝对偏差 (Absolute Loss) 时,你实际上是在声明:“我认为我的数据中可能存在一些异常值,我希望我的模型对这些异常值不那么敏感,所以我选择了一个对噪声容忍度更高的拉普拉斯分布假设。”

3. 分类损失函数与似然

3.1. 0-1损失函数

  • 分类 (Classification) 的核心任务是将物体分配到预先定义好的类别或种类中去。
  • 与回归问题不同,分类问题的标签空间 $C$ 由具体的类别标签组成。
    • 二元分类 (Binary classification):只有两个类别,通常用 $C={+1,−1}$ 或 ${0,1}$ 表示。例如,判断一封邮件是垃圾邮件(1)还是非垃圾邮件(0)。
    • 多类分类 (Multi-class classification):有 $K$ 个或更多类别,标签空间为 $C={1,2,...,K}$。例如,将一张动物图片识别为猫、狗或鸟,其中 $K=3$。
  • 0-1损失函数 (Zero-one loss)
    • 公式:$L(y,h(x))=I(y\neq h(x))$
      • 这里的 $I(⋅)$ 是一个指示函数。如果括号内的条件成立(即预测值 $h(x)$ 等于真实值 $y$),则函数值为1,否则为0。
      • 这个公式的描述是“计算错误分类的数量”,即预测错误时损失为1,预测正确时损失为0。这才是真正用于衡量损失的函数。
        • 直观性:0-1损失最直接、最符合我们对分类任务的直觉。最终的模型性能通常就用准确率(正确分类的百分比)来衡量,这与0-1损失是直接相关的。
        • 局限性:0-1损失是一个非连续、不可导的函数。这意味着我们无法使用梯度下降等基于导数的优化算法来直接训练模型,所以它主要被用于模型评估,而非训练过程。
    • 一个有 $K$ 个类别的分类变量,可以用一个长度为 $K$ 的向量来表示。在实际应用中我们使用独热编码。它将每个类别表示为一个向量,向量中只有一个位置是1,其他位置都是0。
  • 0-1损失函数的向量形式

0-1损失函数有一种新的、基于向量运算的表达形式: $$L(y,h(x))=\frac{1}{2}(y-h(x))^T(y-h(x))$$ 这里的 $y$ 和 $h(x)$ 不再是简单的类别数字,而是代表真实标签和预测标签的独热编码向量。$(y-h(x))^T(y-h(x))$ 实际上是在计算向量 $(y−h(x))$ 的L2范数的平方,也就是向量各元素平方和。

  • 情况一:分类正确
    • 如果预测正确,那么预测向量 $h(x)$ 和真实标签向量 $y$ 是完全相同的。
    • 例如,真实为类别2,预测也为类别2,则 $y=[0,1,0,...]$ 且 $h(x)=[0,1,0,...]$。
    • 那么,它们的差向量 $(y−h(x))$ 就是一个所有元素都为0的零向量 [0, 0, 0, ...]
    • 一个零向量的各元素平方和显然是0。
    • 所以,损失 $L=0$。这与0-1损失中“预测正确,损失为0”的定义一致。
  • 情况二:分类错误
    • 如果预测错误,假设真实类别是 $i$,预测类别是 $j$(其中 $i\neq j$)。
    • 那么,真实向量 $y$ 在第 i 位是1,其余为0。预测向量 $h(x)$ 在第 $j$ 位是1,其余为0。
    • 差向量 $(y−h(x))$ 将会非常特殊:它在第 $i$ 位的值是 1−0=1,在第 $j$ 位的值是 0−1=−1,在所有其他位的值都是 0−0=0。
    • 计算这个差向量的各元素平方和:$(1)^2+(−1)^2+0^2+...=1+1=2$。
    • 所以,损失 $L=1$。这与0-1损失中“预测错误,损失为1”的定义一致。

3.2. 软分类器

我们引入两种不同类型的分类器:

  • 硬分类器 (Hard classifiers)
    • 它为每个输入 $x$ 分配一个确定的、唯一的类别标签。
    • 对于一张图片,硬分类会直接告诉你“这是猫”,没有任何商量的余地。我们之前讨论的0-1损失,就是基于这种硬分类的预测结果。
  • 软分类器 (Soft classifiers)
    • 它不直接输出类别,而是估计输入属于各个类别的条件概率
    • 具体来说,它会输出一组概率值 $p(y_i=k|x_i)$,其中 $k$ 遍历所有可能的 $K$ 个类别。
    • 这些概率的总和必须为1,即 $\sum_{k=1}^Kp(y_i=k|x_i)=1$。
    • 软分类器就像一个更谨慎、信息量更丰富的决策者。对于同一张图片,它可能会告诉你:
      • “我认为这张图片有85%的可能是猫。”
      • “有10%的可能是狗。”
      • “有5%的可能是其他东西。”
    • 这种概率输出的优势是巨大的:它不仅告诉我们最可能的类别是什么(概率最高的那个),还告诉了我们模型对这个判断的置信度有多高。这在很多现实场景(如医疗诊断)中至关重要。如果我们想从软分类器得到一个硬分类结果,只需选择概率最大的那个类别即可。

3.3. 二元分类函数 - 交叉熵损失

我们将这种概率思想应用到最简单的二元分类问题上(标签 $y∈{0,1}$)。

我们建立一个概率模型 $y_i|x_i\sim\mathrm{Bern}(h_\theta(x_i))$ :

  • 伯努利分布 是描述只有两种可能结果的单次随机试验的概率分布,比如抛一次硬币。它由一个参数 p(成功的概率)完全决定。
  • 这个模型的意思是:我们把真实标签 $y_i$​ 看作是一个从伯努利分布中随机抽取出来的结果(要么是1,要么是0)。
  • 而这个伯努利分布的参数(即 $y_i​=1$ 的概率),就是我们模型 $h_θ​(x_i​)$ 的输出

因此,模型输出的物理意义被重新定义了: $$h_\theta(x_i)=p(y_i=1|x_i,h,\theta)\in[0,1]$$ 模型的输出 $h_θ​(x_i​)$ 不再是一个硬标签,而是一个概率值,它代表了在给定输入 $x_i​$ 的条件下,模型预测真实标签为1的概率。这个输出值必须在0和1之间。

既然模型输出了 $y_i​=1$ 的概率,那么 $y_i​=0$ 的概率也就确定了,即 $p(y_i=0|x_i,\ldots)=1-h_\theta(x_i)$ 。

这个转变的意义在于,它为我们在分类问题中应用与回归问题类似的最大似然估计方法铺平了道路。现在我们已经为单个样本的标签 $y_i​$ 建立了一个概率模型(伯努利分布),下一步自然就是:

  1. 写出整个数据集的似然函数
  2. 对似然函数取对数,得到对数似然函数
  3. 通过最大化对数似然函数来寻找最优的模型参数 $θ$。

现在我们建立了伯努利概率模型,那么我们就可以将其转化为一个可以用于模型训练的实际损失函数

二元分类模型的似然函数形式如下: $$p({y_i}{i=1}^n|{x_i}{i=1}^n,\theta)=\prod_{i=1}^nh_\theta(x_i)^{y_i}(1-h_\theta(x_i))^{1-y_i}$$ 这个似然函数表示在给定模型参数 $θ$ 和输入数据 ${x_i}$ 的条件下,观察到整个真实标签数据集 ${y_i}$ 的总概率。

  • $\prod_{i=1}^n$ 是连乘符号,表示总概率是每个独立样本概率的乘积。
  • 核心部分是 $h_\theta(x_i)^{y_i}(1-h_\theta(x_i))^{1-y_i}$ ,这是伯努利分布的概率质量函数:
    • 当真实标签 $y_i​=1$ 时,表达式变为 $h_\theta(x_i)^1(1-h_\theta(x_i))^0=h_\theta(x_i)$。这是模型预测为1的概率。
    • 当真实标签 $y_i​=0$ 时,表达式变为 $h_\theta(x_i)^0(1-h_\theta(x_i))^1=1-h_\theta(x_i)$。这是模型预测为0的概率。

为了便于优化,我们像回归问题中一样,对似然函数取对数。 $$\log p({y_i}{i=1}^n|{x_i}{i=1}^n,\theta)=\sum_{i=1}^n{y_i\log h_\theta(x_i)+(1-y_i)\log(1-h_\theta(x_i))}$$ 这里我们想处理的一直是一个最小化的问题,而最大化似然函数等价于最小化一个特定的表达式 $$L=-\sum_{i=1}^n{y_i\log h_\theta(x_i)+(1-y_i)\log(1-h_\theta(x_i))}$$ 这个表达式就是 对数损失(log loss),也叫交叉熵损失 (cross-entropy loss)。交叉熵损失是一个连续且可导的函数。这使得我们可以利用梯度下降等高效的优化算法来训练模型,解决了0-1损失不可导的根本问题。

而且,与0-1损失的“非对即错”不同,交叉熵损失的惩罚力度是“软”的。

  • 比如,真实标签是1,模型预测概率为0.99,损失很小。
  • 真实标签是1,模型预测概率为0.51,损失会变大。
  • 真实标签是1,模型预测概率为0.01,损失会变得非常大。
  • 这使得模型不仅要预测正确,还要尽可能地自信,将正确类别的概率推向1,将错误类别的概率推向0。

3.4. 多元分类函数

对于多类分类问题,模型的输出 $h_θ​(x_i​)$ 不再是一个单一的概率值,而是一个向量:$(h_{\theta,1}(x_i),h_{\theta,2}(x_i),...,h_{\theta,K}(x_i))^T$

  • 这个向量的长度为类别总数 $K$。
  • 向量中的第 $k$ 个元素 $h_θ,k​(x_i​)$ 代表模型预测样本 $x_i$​ 属于第 $k$ 类的概率
  • 所有这些概率之和必须为1,即 $\sum_{k=1}^Kh_{\theta,k}(x_i)=1$。这确保了模型的输出是一个合法的概率分布。

在实践中,这个概率向量通常是通过一个叫做 Softmax 的函数生成的。模型的内部可以先为每个类别计算一个分数(可以是任意实数),然后Softmax函数能将这些分数转换成符合上述要求的概率分布。因此,多类交叉熵损失也常被称为Softmax损失

我们使用独热编码来表示真实标签,即 $y_{ik}=I(y_i=k)$。如果样本 $i$ 的真实类别是 $k$,则 $y_{ik}​=1$,否则为0。

概率模型为: $$y_i|x_i\sim\text{Categorical}(h_{\theta,1}(x_i),...,h_{\theta,K}(x_i))$$ 这里,分类分布 (Categorical Distribution) 是伯努利分布的推广。伯努利分布描述的是只有两种结果的单次试验(如抛硬币),而分类分布描述的是有 $K$ 种可能结果的单次试验(如掷一个 $K$ 面骰子)。它的参数就是这 $K$ 种结果各自发生的概率。在这里,我们把真实标签的生成过程建模为一个分类分布,其参数就是我们模型输出的概率向量。

基于这个概率模型,我们可以写出整个数据集的似然函数和对数似然函数。 $$p({y_i}{i=1}^n|{x_i}{i=1}^n,\theta)=\prod_{i=1}^n\prod_{k=1}^Kh_{\theta,k}(x_i)^{y_{ik}}$$ 由于 $y_{ik}$​ 是独热编码,对于任何一个样本 $i$,内层的连乘 $\prod_{k=1}^K$​ 中只有一个 $y_{ik}$​ 是1,其他的都是0。因此,这个内层连乘的结果就是模型预测该样本为其真实类别的那个概率值。外层连乘再把所有样本的这个概率值乘起来。

取对数后,双重连乘变成了双重连加。 $$\log p({y_i}{i=1}^n|{x_i}{i=1}^n,\theta)=\sum_{i=1}^n\sum_{k=1}^Ky_{ik}\log h_{\theta,k}(x_i)$$ 上面这个对数似然函数的负数,就是多类分类问题中的交叉熵损失(或称Softmax损失)。 $$L_i=-\sum_{k=1}^Ky_{ik}\log h_{\theta,k}(x_i)$$

  • 同样因为 $y_{ik}$​ 是独热编码,这个求和符号中只有一项是非零的,即真实类别 k∗ 对应的那一项(此时 $y_{ik^*}=1$)。
  • 所以,单个样本的损失可以简化为:$L_i=-\log h_{\theta,k^*}(x_i)$。
  • 这个公式的含义是:损失就是模型赋予“正确答案”的那个概率的负对数

3.5. 分类函数

二元分类:Sigmoid (Logistic) 函数

  • 对于二元分类,我们需要的模型输出 $h_θ​(x_i​)$ 是一个在 [0, 1] 区间内的概率值。
  • 这个概率通常是通过对一个中间结果 $g_θ​(x_i​)$ 进行 Sigmoid (或称 Logistic) 变换得到的。这个中间结果可以是任意实数($∈R$)。
  • Sigmoid 函数公式: $$h_\theta(x_i)=\frac{1}{1+e^{-g_\theta(x_i)}}$$ 多类分类:Softmax 函数
  • 对于多类分类,我们需要输出一个K维的概率向量,且所有元素之和为1。
  • 这是通过对一个K维的原始分数向量 $(g_{\theta,1}(x_i),...,g_{\theta,K}(x_i))$ 进行 Softmax 变换得到的。
  • Softmax 函数公式 (计算属于第k类的概率): $$h_{\theta,k}(x_i)=\frac{e^{g_{\theta,k}(x_i)}}{\sum_{l=1}^Ke^{g_{\theta,l}(x_i)}}$$

4. 交叉熵损失 - 信息论

我们首先定义的概念: $$H(X)=E_{X\sim P}[-\log p(x)]=-\int p(x)\log p(x)dx=-\sum_{x\in X}p(x)\log p(x)°$$ 衡量的是一个概率分布的不确定性平均信息量

  • 高熵:如果一个分布非常均匀(比如一个公平的硬币,正反面概率都是0.5),那么结果就非常不确定,很难预测。我们称之为高熵。
  • 低熵:如果一个分布非常“尖锐”(比如一个被做了手脚的硬币,99%的概率是正面),那么结果就几乎是确定的,不确定性很低。我们称之为低熵。一个完全确定的事件(概率为1),其熵为0。
  • 从信息量的角度看,$−\log p(x)$ 可以被理解为“当事件x发生时,我们所获得的信息量惊讶程度”。一个非常不可能发生的事件($p(x)$很小)一旦发生,会让我们非常惊讶,所包含的信息量就很大。而就是所有可能事件带来的信息量的数学期望(平均值)

那么,交叉熵的定义如下: $$H(p,q)=-E_p[\log q(x)]=-\int p(x)\log q(x)dx=H(p)+KL(p||q)$$

  • 交叉熵衡量的是两个概率分布之间的差异。假设:
    • $p$ 是数据的真实概率分布(上帝视角)。
    • $q$ 是我们模型的预测概率分布
  • 交叉熵 $H(p,q)$衡量的就是:当我们用模型的预测分布 $q$ 去度量来自真实分布 $p$ 的事件时,所产生的平均信息量(或平均惊讶程度)
  • 如果我们的模型预测得非常准,即 $q$ 和 $p$ 非常接近,那么交叉熵就会很低。反之,如果模型预测得一塌糊涂,$q$ 和 $p$ 相差甚远,那么交叉熵就会很高。
  • 因此,最小化交叉熵的过程,就是让模型的预测分布 $q$ 去无限逼近数据的真实分布 $p$ 的过程。

同时可以得出: $$H(p,q)=H(p)+KL(p||q)$$ 在机器学习的训练过程中,数据的真实分布 $p$ 是固定不变的,因此它的熵 $H(p)$ 是一个常数。在这种情况下,最小化交叉熵 $H(p,q)$ 就完全等价于最小化KL散度 $KL(p∣∣q)$

因此,我们训练分类模型时所做的最小化交叉熵损失,本质上就是在最小化模型预测分布与数据真实分布之间的KL散度

交叉熵是不对称的,即 $H(p,q)\neq H(q,p)$。这是因为它和KL散度一样,都不是严格意义上的“距离”度量。

接下来我们把 $p$ 和 $q$ 和之前的量联系起来:

模型的概率分布 ($p_{model}$​):

  • $p_{model}(y_i|x_i,h_\theta)$ 指的是我们训练的模型,在给定输入 $x_i​$ 时,预测标签为 $y_i​$ 的概率。这是一个“软”的概率分布。

数据的概率分布 ($p_{data​}$): $$p_{data}(y|x_i)=\begin{cases}1,&\mathrm{if~}y=y_i\0,&\mathrm{otherwise}&&\end{cases}$$ 这是对真实标签 的一种概率化描述,也叫经验分布。它表达了一个“绝对确定”的事实:对于样本 $x_i​$,其真实标签是 $y_i​$ 的概率为100%,而是其他任何标签的概率都为0。这其实就是独热编码 的另一种写法。

我们的目标是最大化对数似然函数,其形式为: $$\sum_{i=1}^n\log p_{model}(y_i|x_i,h_\theta)$$ 们来看求和符号内部,对于任何一个样本 $i$,由于 $p_{data}(y|x_i)$ 的定义,只有当 $y$ 等于真实的标签 $y_i​$ 时,$p_{data}(y|x_i)$ 才等于1,否则都为0。因此,内层的求和 $\sum_{y\in\mathcal{C}}$(遍历所有可能的类别)实际上只有一项是非零的,即 $1×\log p_{model}(y_i|x_i,h_\theta)$。所以我们可以扩展等式: $$\sum_{i=1}^n\log p_{model}(y_i|x_i,h_\theta)=\sum_{i=1}^n\sum_{y\in\mathcal{C}}p_{data}(y|x_i)\log p_{model}(y|x_i,h_\theta)$$ 交叉熵的定义 $H(p,q)=-\sum_xp(x)\log q(x)$ 。那么,$-\sum_{y\in\mathcal{C}}p_{data}(y|x_i)\log p_{model}(y|x_i,h_\theta)$ 正好就是负的交叉熵 $-H(p_{data},p_{model})$ 。所以,整个对数似然函数就等于每个样本的负交叉熵之和。 $$=-\sum_{i=1}^nH(p_{data}(\cdot|x_i),p_{model}(\cdot|x_i,h_\theta))$$ 因此我们得到结论:最小化交叉熵与最大化似然是等价的

  • 我们要最大化对数似然 $\max\left(\sum_{i=1}^n\log p_{model}\right)$
  • 根据推导,这等价于:$\max\left(-\sum_{i=1}^nH(p_{data},p_{model})\right)$
  • 最大化一个负数,就等于最小化这个数本身,即:$\min\left(\sum_{i=1}^nH(p_{data},p_{model})\right)$
  • 而 $\sum H(p_{data},p_{model})$ 正是我们在整个数据集上定义的总交叉熵损失

所以我们在分类问题中使用的交叉熵损失函数,其根源正是统计推断中的最大似然估计原则。这为我们提供了两种看待同一个优化目标的不同但等价的视角:

  • 统计学家视角:调整模型参数,使得我们观测到的这批数据出现的概率最大
  • 信息论学家视角:调整模型参数,使得模型预测的概率分布与数据真实的经验分布之间的交叉熵最小(或KL散度最小)。

5. 多项式例子

5.1. 实验设计

我们使用一个非常具体、直观的实践案例展示模型复杂度如何影响模型性能。我们设计一个任务,使用带有“多项式特征”的线性回归来近似非线性函数多项式回归的核心思想是“特征转换”。我们不直接用原始特征 $x$ 来建模,而是先创造出一系列新的特征,比如 $x^2,x^3,...,x^p$

  • 然后,我们用这些新特征 $(x,x^2,...,x^p)$ 去训练一个标准的多元线性回归模型
  • 最终得到的模型,虽然对于系数 $β$ 来说是线性的,但对于原始变量 $x$ 来说,它是一个 $p$ 次多项式函数,因此可以拟合出各种弯曲的曲线。

我们假设数据的背后存在一个“上帝视角”的真实规律,这个规律由一个非线性的余弦函数定义:$y=1.5πcos(x)$。我们生成的数据点会分布在这个真实函数曲线的周围(通常会加上一些随机噪声,以模拟现实情况)。

我们用来学习这个规律的模型是一个p次多项式:$\hat{y}=\sum_{i=0}^p\beta_ix^i$ 。这里的多项式次数 p 是控制我们模型复杂度的关键。p 越小,模型越简单(比如 p=1 就是一条直线);p 越大,模型就越复杂,能拟合出越曲折的形状。

  • 实验准备了训练集验证集,每个数据集都包含30个样本。
  • 我们将分别计算模型在训练集和验证集上的均方误差 (Mean Squared Error, MSE),以此来评估模型的性能

5.2. 1次多项式

![[Pasted image 20250926155537.png]]

  • 橙色曲线 (True function): 这是数据背后真实的、我们希望模型能学到的余弦函数规律。
  • 蓝色数据点 (Training Samples): 这是模型在训练时“看到”的数据。模型的目标就是尽可能地去拟合这些蓝点。
  • 红色数据点 (Validation Samples): 这是模型在训练时“没见过”的数据,用于测试模型的泛化能力。
  • 蓝色直线 (Fitted function): 这是我们训练出来的1次多项式模型。

观察: 我们可以清晰地看到,这条蓝色的直线无论如何调整,都无法很好地捕捉数据点(无论是蓝点还是红点)整体呈现出的“S”形弯曲趋势。它只是粗略地画出了一条下降的直线。

一个线性函数(1次多项式)不足以拟合训练和验证样本,这种情况被称为欠拟合 (Underfitting)

5.3. 三次多项式

![[Pasted image 20250926155803.png]]

蓝色的“拟合函数”不再是一条僵硬的直线,而是一条平滑的曲线。这条曲线非常成功地捕捉了数据点的整体趋势,并且与橙色的“真实函数”曲线几乎完美地重合在一起。它不仅很好地穿过了训练集(蓝点),也同样很好地概括了验证集(红点)的分布。一个3次多项式几乎完美地近似了真实函数。无论是在训练集还是在验证集上,这个拟合效果都很好

5.4. 九次多项式

![[Pasted image 20250926155852.png]]

蓝色的拟合曲线和橙色的真实曲线大部分还是重合得不错的。但是,如果我们仔细观察曲线的两端(左侧和右侧),就会发现问题。在左上角和右下角,蓝色的拟合曲线开始出现一些不自然的“扭动”或“摇摆”。它不再像橙色曲线那样平滑,而是为了去迁就某几个训练数据点(蓝点),强行改变了自己的形状。这个9次多项式模型已经开始拟合训练集中的噪声了

5.5. 20次多项式

![[Pasted image 20250926155938.png]]

对于20次多项式,发生了严重的过拟合 (Severe overfitting)。这是过拟合的极端情况。模型不仅学习了训练数据中的噪声,甚至可以说是被这些噪声“绑架”了,完全忽略了数据背后真正的、更简单的规律。如果我们去计算这个模型在训练集(蓝点)上的均方误差(MSE),可能会发现它是所有模型中最低的,因为它几乎“记住”了每一个训练数据点的位置。然而,模型在验证集(红点)上的表现将是一场灾难。那些剧烈的震荡使得拟合曲线离很多验证点都非常遥远,其验证集MSE将会变得异常巨大。

5.6. 定量总结

![[Pasted image 20250926160030.png]]

两幅图,它们的横坐标都是模型复杂度(即多项式的次数 Degrees),纵坐标都是均方误差MSE(纵坐标是对数尺度,这有助于更清晰地观察误差的量级变化)。

  • 左:训练集误差 (Training Set)
    • 这条蓝色的曲线展示了模型在训练集上的表现。
    • 趋势分析:我们可以看到一个非常明确的趋势——随着多项式次数的增加,训练集的MSE持续下降
    • 这完全符合预期。模型越复杂,它就越有能力去拟合训练数据。当复杂度高到一定程度,模型甚至可以“记住”每一个训练数据点的噪声,从而使得训练误差趋近于0。如果我们只看这张图,我们会错误地得出“20次多项式是最好的模型”这一结论。
  • 右:验证集误差 (Validation Set)
    • 这条红色的曲线展示了模型在验证集(未见过的数据) 上的表现,这反映了模型的泛化能力
    • 这条曲线呈现出一个经典的“U”形(或者说“对勾形”):
      1. 下降阶段 (次数 1 ~ 4): 当模型复杂度从很低开始增加时,它逐渐从欠拟合状态中摆脱出来,能更好地学习数据规律,因此验证误差迅速下降。
      2. 平稳阶段 (次数 4 ~ 13): 在这个区间,模型的复杂度已经足够,验证误差达到了一个较低的水平并保持稳定。这个区间的模型都可以认为是“恰当拟合”的好模型。
      3. 上升阶段 (次数 14 ~ 20): 当模型的复杂度超过某个点后,验证误差开始回头急剧上升。这表明模型开始过拟合,它学到的很多“知识”其实是训练数据的噪声,这些“知识”在新的数据上是有害的,导致泛化能力严重下降。

将两张图结合起来看,我们就得到了一个关于模型选择的经典范例:

  • 欠拟合区域 (Underfitting) (左侧,次数较低): 训练误差和验证误差都很高
  • 恰当拟合区域 (Just Right) (中间): 训练误差和验证误差都很低,并且验证误差在此区域达到最小值。这正是我们想要寻找的最优模型所在的区间
  • 过拟合区域 (Overfitting) (右侧,次数较高): 训练误差持续走低,但验证误差开始上升。训练误差和验证误差之间出现了巨大的鸿沟,这是过拟合最典型的信号。

![[Pasted image 20250926160133.png]]

再观察不同复杂度的模型的系数,当我们看到9次多项式模型的系数时,会发现它们的数值变得异常巨大。因为一个高次多项式函数是非常“强大”和“灵活”的。为了能够精确地穿过训练数据中的每一个点(包括那些由随机噪声造成的点),模型必须创造出非常剧烈的、高频的弯曲和摆动。

为了在数学上实现这种剧烈的摆动,模型严重依赖其高次项(如 $x^7,x^8,x^9$)。这些高次项对 $x$ 的微小变化非常敏感。模型为了控制住这些项,强行让曲线通过特定的数据点,就不得不使用巨大且符号相反的系数来进行抵消

所以我们可以得出如下的关系影响:

  1. 训练误差总是随着模型复杂度的增加而减少。
    • 这是因为一个更复杂的模型(更高次的p)拥有更多的参数和更高的灵活性,它总能找到一种方法去更好地“迎合”它所能看到的训练数据,哪怕是通过“死记硬背”的方式去拟合数据中的噪声。
  2. 验证误差先从欠拟合阶段下降到良好拟合阶段,然后因过拟合而上升。
  • 这个“U”形曲线是偏差-方差权衡 (Bias-Variance Tradeoff) 的体现。
    • 曲线下降段: 模型的偏差(Bias)在降低。模型从过于简单(高偏差)变得足够复杂,能够捕捉数据的真实规律。
    • 曲线最低点: 偏差和方差达到一个理想的平衡。
    • 曲线上升段: 模型的方差(Variance)在增加。模型变得过于复杂(高方差),开始拟合训练数据中的随机噪声,从而损害了其在未知数据上的泛化能力。
  1. 过拟合的定义:模型学习了训练数据的特定方面(噪声),而不能泛化到新的、未见过的数据上。
  • 训练数据的特定方面指的就是那些仅在当前这批训练样本中随机出现的、不具有普适性的波动。我们在20次多项式拟合的图中看到,模型为了穿过某几个训练点而产生的剧烈震荡,就是学习了这些“特定方面”的后果。
  1. 高次多项式模型具有非常大的参数值。
  • 巨大的、正负交错的系数是模型不稳定的表现,是模型试图用剧烈的函数摆动来强行拟合噪声的数学体现。这个观察是引入正则化 技术来惩罚大参数、从而防止过拟合的直接动机。
  1. 模型拟合的目标是找到一个具有适当复杂度的模型来拟合数据。
  • 最好的模型不是最复杂的模型,也不是在训练集上表现完美的模型。而是那个复杂度恰到好处,能够在学习数据规律和避免拟合噪声之间取得最佳平衡的模型。如何系统性地找到这个“适当的复杂度”,正是诸如**交叉验证 **、正则化 等技术要解决的核心问题。

![[Pasted image 20250926160548.png]]

5. 模型拟合

5.1. ERM原则的缺陷

首先我们定义模型拟合的理想目标:在预先设定的假设空间 $H$ 中,找到那个能使真实风险 $R(h)$ 最小化的最优函数 $h^∗$。 $$h^*=\arg\min_{h\in\mathcal{H}}R(h)=\arg\min_{h\in\mathcal{H}}E_{(x,y)\sim F_{X,Y}}[L(y,h(x))]$$ $h^∗$ 是我们能从假设空间 $H$ 中找到的理论上最好的模型。“最好”的评判标准是最小化真实风险 $R(h)$,也就是模型在包含了宇宙中所有可能数据的真实数据分布 $F_{X,Y}$ 上的平均损失。

但这个目标是无法实现的,现实中我们采用经验风险最小化 (Empirical Risk Minimization, ERM) 原则。 $$\hat{h}=\arg\min_{h\in\mathcal{H}}R_{emp}(h)=\arg\min_{h\in\mathcal{H}}\frac{1}{n}\sum_{i=1}^nL(y_i,h(x_i))$$ $\hat{h}$ 是我们通过训练实际得到的模型。经验风险就是模型在我们手头有限的、包含n个样本的训练数据集上的平均损失ERM原则是绝大多数监督学习算法的核心。无论是训练一个线性回归模型、支持向量机还是神经网络,其背后都是在求解这个“经验风险最小化”的优化问题。

机器学习的基本假设就是:如果我们的训练数据集足够大且具有代表性,那么在训练集上最小化经验风险所得到的模型 $\hat{h}$,应该会很接近那个最小化真实风险的理想模型 $h^∗$。

但是前面的例子告诉我们,ERM原则如果被“天真地”使用,就会带来过拟合的问题,也就是说,ERM原则是有缺陷的。

5.2. 泛化

我们构造一个特殊的函数 $\hat{h}(x)$ : $$\hat{h}(x)=\begin{cases}y_i,&\mathrm{~if~}x=x_i\0,&\mathrm{~otherwise}&&\end{cases}$$ 这个函数是一个纯粹的“查找表”。如果你给它的输入 x 正好是训练集里的某个 $x_i$​,它就直接返回对应的正确答案 $y_i​$。但凡你给它一个任何它没在训练集里见过的输入,它就一概回答 0。

那么按照ERM的定义,这个函数具有零经验风险。然而,这个看似完美的模型在现实中毫无用处。这个模型缺乏泛化能力,因为它只是单纯地“背诵”了整个数据集。

那么,我们提出泛化:泛化指的是一个训练好的模型 $h^∗$ 在样本外(测试集)数据上的误差表现。

所以我们在这里遇到了一个矛盾:我们通过经验风险最小化来学习模型 $\hat{h}$,但我们真正在乎的却是它的真实风险 $R(\hat{h})$(即泛化能力)。模型拟合的目标是找到一个具有适当复杂度的模型,从而实现良好的拟合,同时避免过拟合

我们提出一个非常重要的概念性公式: $$R(\hat{h})=R_{emp}(\hat{h})+\text{overfit penalty}$$ 一个模型真实的泛化误差 $R(\hat{h})$,等于它在训练集上的误差 $R_{emp}(\hat{h})$,再加上一个由过拟合导致的惩罚项。这个“过拟合惩罚项”的大小,正比于模型的复杂度

既然问题出在“经验风险”和“过拟合惩罚项”上,那么解决问题的思路也就自然分成了两条路。对于调整经验风险最小化(ERM)原则,有两个策略:

策略一:验证 (Validation)

  • 目标: 更准确地估计我们真正关心的真实风险 $R(\hat{h})$
    • 我们知道,用训练集计算出的经验风险 $R_{emp}(\hat{h})$ 是对真实风险 $R(\hat{h})$ 的一个有偏估计(过于乐观),因为模型已经“见过”这些数据了。
    • “验证”策略的核心思想是:我们从数据中预留出一部分模型从未见过的数据,称为验证集
    • 然后,我们用模型在验证集上的误差(验证误差)来作为真实风险 $R(\hat{h})$ 的一个更准确、更无偏的估计
    • 因此,我们的模型选择标准就从“谁的训练误差低”变成了“谁的验证误差低”。这是一种通过更可靠的评估来间接控制过拟合的方法。

策略二:正则化 (Regularization)

  • 目标: 直接在优化目标中,对“过拟合惩罚项”本身进行近似和控制。
    • 这种策略不改变评估方式,而是直接修改学习的目标函数
    • 我们已经知道,过拟合与模型的高复杂度和巨大的参数值有关。
    • 那么,我们可以把抽象的“过拟合惩罚项”近似为一个关于模型参数大小的具体惩罚函数(比如,所有参数的平方和)。
    • 于是,我们的优化目标就变成了:最小化 [ 经验风险 + $λ$ × 模型复杂度惩罚 ]。
    • 这里的 $λ$ 是一个超参数,用来平衡“拟合数据”和“保持简单”这两个目标。这是一种通过在源头上限制模型复杂度来直接防止过拟合的方法。

5.3. 训练与测试

训练误差是在用于训练模型相同的数据上计算出来的。这导致它通常是对真实风险的一个过于乐观的估计,因为模型 $h$ 本身就是为了让预测值 $h(x_i​)$ 尽可能地接近真实值 $y_i​$ 而被拟合出来的。 $$E[L(y_{train},h(x_{train}))]\neq R(h)$$ $E[L(y_{train},h(x_{train}))]$ 代表模型在训练集上的期望误差(即我们计算出的训练误差),而 $R(h)$ 是我们真正关心的真实风险(泛化误差)。这两者是不相等的。而对于没有用于训练的测试样本,其期望误差就是真实风险。 $$E[L(y_{test},h(x_{test}))]=R(h)$$ 模型在独立的、未见过的数据(测试集) 上的期望误差,就是对真实风险 $R(h)$ 的一个无偏估计

机器学习实践中至关重要的原则:评估模型性能的数据,必须与训练模型的数据相互独立训练误差因为模型在训练时已经“偷看”了答案,所以它是一个有偏的、不可靠的性能指标,往往会低估模型未来的真实误差。

测试误差因为模型对它一无所知,所以能够提供一个关于模型泛化能力的、更公平、更准确的评估。

我们做模型选择的最终目标:通过优化调节参数、模型大小和学习参数来优化模型的泛化能力。

  • 这些都属于模型的超参数 (Hyperparameters)。比如:
    • 模型大小: 多项式中的“次数p”。
    • 调节参数: 正则化中的“惩罚系数λ”。
    • 学习参数: 梯度下降算法中的“学习率”。

为了找到最优的超参数,一个很自然的想法是:

  1. 将数据分为训练集测试集
  2. 对于每一组候选的超参数(比如,对于p=1, 2, ..., 20),我们都在训练集上训练一个模型。
  3. 然后,用测试集来评估这些模型,看看哪个模型在测试集上表现最好(误差最低)。
  4. 最终,我们选择那个在测试集上表现最好的模型作为我们的最终模型。

这个问题的核心在于信息泄露 (Information Leakage)。当我们反复使用测试集来比较和选择超参数时,关于测试集的信息就已经通过我们的“选择”这个动作,“泄露”到了我们的最终模型里。我们需要一个独立的评估集来选择超参数,但一旦用了这个评估集,它就不能再作为最终的、公正的“法官”了。

解决方案就是:我们需要第三个数据集。这也就是经典的三集划分

  1. 训练集 (Training Set): 用于训练模型的参数。
  2. 验证集 (Validation Set): 用于选择和优化模型的超参数(比如在这里模拟考,选择最好的复习策略)。
  3. 测试集 (Test Set): 在所有训练和选择都完成后,只使用一次,像最终的、绝密的正式考试一样,来对最终选定的模型进行一次无偏的、最终的性能评估

6. 验证

我们引入验证集:将数据划分为3个集合:训练集、测试集和验证集。假设验证集为 ${\tilde{x}i,\tilde{y}i}{i=1}^v$ ​ (包含v个样本,且未在训练中使用)。那么有验证误差的计算公式: $$R{val}(h)=\frac{1}{v}\sum_{i=1}^vL(\tilde{y}_i,h(\tilde{x}_i))$$ 这个公式的形式与我们之前看到的经验风险完全一样,都是计算平均损失。关键区别在于,这里的计算是在验证集上进行的。模型在训练时没有输入过验证集的答案,因此这个误差可以更准确地反映模型的泛化能力。

但是需要注意的是,只有当它被用来改变学习到的模型时,它才成为验证误差,当验证误差被用于选择模型的时候,验证误差本身也参与并影响了你的模型选择过程。

这也恰恰解释了为什么我们还需要一个独立的、从未参与过任何决策的测试集。因为即便是验证过程,也会引入微小的信息泄露和偏见,我们需要一个完全“纯洁”的测试集来进行最终的、最公正的裁决。

我们引入两个重要的符号来区分不同类型的参数:

  • $γ$ (gamma): 代表模型的超参数 (hyperparameters)
    • 超参数是我们在训练开始之前就需要手动设定的参数,它们控制着学习过程的宏观行为。例如,我们多项式案例中的“次数p”,或者正则化中的“惩罚系数λ”。
  • $θ(γ)$: 代表模型的参数 (parameters)
    • 参数是模型在训练过程中通过学习算法自动学习和调整的。例如,线性回归中的系数β。$θ(γ)$ 的写法明确表示,我们学到的参数 $θ$ 是依赖于我们所选择的超参数 $γ$ 的。

整个过程分解为三个核心步骤:训练、验证、测试

第一步:训练 (Training step)

  • 流程: 对于每一个候选的超参数 $γ$,我们都在训练集上训练我们的模型,从而得到一个拟合好的模型 $h_θ(γ)$​。
    • 比如,我们想在多项式次数 p={1, 2, 3, ..., 20} 中进行选择。
    • 这一步就是要:
      • 取 $γ=1$,在训练集上训练,得到模型 $h_θ(1)$​。
      • 取 $γ=2$,在训练集上训练,得到模型 $h_θ(2)​$。
      • ...
      • 直到训练出20个不同的模型。

第二步:验证 (Validation step)

  • 流程: 在验证集上评估第一步训练出的所有模型,挑选出那个表现最好的超参数 $γ^∗$,并得到其对应的最优参数 $θ^∗=θ(γ^∗)$。
    • 我们把上一步得到的20个模型,全部在验证集上计算一遍误差。
    • 我们发现,当 $γ=3$ 时,验证误差最小。那么,我们就确定最优超参数 $γ^∗=3$。
    • 我们最终选定的模型,就是那个用 $γ^∗=3$ 在训练集上训练出来的模型 $h_θ(3)$​。

第三步:再次强调验证误差的偏见

  • $R_{val}(h_{\theta(\gamma^)})$ 现在是对真实风险 $R(h_{\theta(\gamma^)})$ 的一个有偏的、过于乐观的估计
  • 讲解: 因为我们的 $γ^∗$ 正是在众多候选中,专门挑选出来的那个在验证集上“考得最好”的。这个最好的成绩可能有一部分是实力,但也可能有一部分是“运气好”,恰好拟合了验证集中的某些噪声。因此,这个“最好成绩”很可能比它在未来真实考试中的成绩要高。

第四步:测试 (Test step)

  • 流程: 将我们最终选定的模型(由 $γ^∗$ 和 $θ^∗$ 定义),在测试集上进行评估,以获得其最终的泛化性能。测试误差 $R_{test}(h_{\theta(\gamma^)})$ 将会是真实风险 $R(h_{\theta(\gamma^)})$ 的一个无偏估计
  • 这是整个流程的最后一步。我们拿出那份从未被使用过的“最终考卷”(测试集),对我们千挑万选出的“最优学生”(最终模型)进行一次最终的、公正的考核。这次的得分,才是对它未来真实表现的最可靠的预测。

![[Pasted image 20250926170623.png]]

  1. 验证集 (Validation set) → 模型复杂度 (Model complexity)
    • 流程: 这条线表示,我们使用验证集来做出关于模型复杂度的决策。
    • “模型复杂度”是一个广义的概念,它对应着我们之前讨论的超参数($γ$)。在多项式案例中,它就是“多项式的次数”;在其他模型中,它可以是“决策树的深度”或“神经网络的层数”。我们通过比较不同复杂度的模型在验证集上的表现,来选择最优的那个。
  2. 训练集 (Training set) → 参数 ($θ$)
    • 流程: 这条线表示,我们使用训练集来学习模型的具体参数 $\theta$
    • 一旦我们通过验证集确定了模型的“宏观结构”(比如,我们决定使用3次多项式),我们就使用训练集来“填充细节”。即,通过最小化在训练集上的误差,来计算出这个3次多项式最优的系数($β_0​,β_1​,β_2​,β_3​$),这些系数就是参数$\theta$。
  3. 测试集 (Test set) → 泛化性能 (generalization performance)
    • 流程: 这条线表示,我们使用测试集来评估最终选定模型的泛化性能
    • 当模型的结构(由验证集决定)和具体参数(由训练集决定)都已最终锁定、不再更改之后,我们将这个最终模型在从未“露面”的测试集上运行一次。得到的结果,就是对模型在真实世界中表现的一个公平、无偏的最终评估。
  • 验证集的唯一职责是选择模型/超参数
  • 训练集的唯一职责是在给定模型/超参数后,学习具体的模型参数
  • 测试集的唯一职责是在所有工作都完成后,报告最终的性能

7. 交叉验证

我们确立了需要将数据划分为“训练-验证-测试”三集。但这种简单的划分方法存在一个问题:如果我们的数据集本身就不大,再分出一块作为验证集,会让本来就宝贵的训练数据变得更少。同时,验证集上的评估结果可能会因为“偶然性”(某些“简单”或“困难”的样本恰好被分到了验证集中)而不够稳定。

因此我们在实际中会使用 K-折交叉验证,这个流程的最终目的是选出最优的超参数 $γ^∗$。

  • 第一步:数据分割
    • 随机地将训练数据集(注意,是不包含最终测试集的那部分数据)分成K个大小相等的子样本,也就是K“折”。
    • 补充知识:在实践中,K的取值通常是5或10。
  • 第二步:循环训练与验证
    • 这是一个嵌套循环的过程。外层循环遍历所有待选的超参数 $γ$(比如多项式次数$p=1, 2, 3...$),内层循环遍历 $K$ 个“折”。
    • 对于每一个 $γ$,都要执行 $K$ 次独立的训练和验证:
      • 使用第 $k$ 折作为验证集,剩下的 $K-1$ 折作为训练集。
      • 计算出本次的验证误差。
  • 第三步:选择最优超参数
    • 对于每一个超参数 $γ$,我们都会得到 $K$ 个验证误差。计算这 $K$ 个误差的平均值,作为这个 $γ$ 的最终性能得分。
    • 比较所有候选 $γ$ 的平均验证误差,选择那个平均误差最小的超参数,记为 $γ^∗$。
  • 第四步:训练最终模型
    • 这是一个非常关键的步骤。一旦我们通过交叉验证找到了最优的超参数 γ∗,交叉验证的任务就完成了。
    • 接下来,我们使用这个最优的 $γ^∗$,在全部的、完整的训练数据集(也就是 $K$ 折合并起来的全部数据)上重新训练一次模型,得到我们最终的拟合模型 $h_{\gamma^*}$。
    • 这样做是为了让我们的最终模型能够学习到尽可能多的数据信息,从而性能最好。交叉验证本身只是一个评估和选择工具,而不是训练工具。
  • 第五步:最终评估
    • 将在第四步中训练出的最终模型 $h_{\gamma^*}$,在那个从一开始就完全隔离的测试集上进行一次评估,报告其泛化性能。这个结果是对模型在真实世界表现的无偏估计。

当我们将 K 折趋向于最大,也就是每一折中只包含一个数据样本的交叉验证时,这个交叉验证又叫留一法交叉验证 (Leave-One-Out, LOO)。也就是说,如果我们的训练数据集有n个样本,那么留一法就是 n-折交叉验证

  • 优点:
    • 数据利用最充分,因为每次训练都用了几乎所有的数据。
    • 评估结果没有随机性,因为不存在随机划分的过程。
  • 缺点:
    • 计算成本极高。如果有一万个样本,就需要训练一万次模型,这对于绝大多数复杂模型来说是不可接受的。因此,它通常只适用于小数据集。

8. 偏差-方差权衡

我们之前通过多项式拟合的例子,已经直观地看到了模型选择中存在的“权衡”。下面将会从数学上严格地推导出这个权衡关系,揭示出模型预测误差的三个根本来源。这是机器学习领域最重要的理论基石之一。

我们的分析对象是使用平方损失函数 $L(y,h(x))=(h(x)-y)^2$ 模型的真实风险 $R(h)$(也就是期望预测误差)。我们的目标是将这个期望误差分解,看看它到底由哪些部分构成。

为了计算总的期望误差,我们可以分两步走:首先,固定输入为某个具体的x,计算在这个x下,误差 $(h(x)-y)^2$ 关于所有可能y的期望(即内部的 $E_{Y|X}$);然后,再对所有可能的x求这个期望误差的平均值(即外部的 $E_X​$)。 $$R(h)=E_XE_{Y|X}[(h(x)-y)^2|X=x]$$ 接下来,分解内部的期望,我们把平方项展开: $$(h(x)-y)^2=h(x)^2-2h(x)y+y^2$$ 对展开后的式子求期望(注意,此时 $x$ 是固定的,所以 $h(x)$ 也是一个固定的值): $$E[h(x)^2-2h(x)y+y^2]=E[h(x)^2]-E[2h(x)y]+E[y^2]$$ $$=h(x)^2-2h(x)E[y|\mathbf{X}=x]+E[y^2|\mathbf{X}=x]$$ 接着,我们在式子中同时加上和减去 $(E[y|\mathbf{X}=x])^2$ ,重新组合后,我们得到两个部分: $$(E[y^2|\mathbf{X}=x]-(E[y|\mathbf{X}=x])^2)$$ $$((E[y|\mathbf{X}=x])^2-2h(x)E[y|\mathbf{X}=x]+h(x)^2)$$ 第一部分 $(E[y^2]-(E[y])^2)$ 正是方差的定义。所以它等于 $\mathrm{Var}(y|\mathbf{X}=x)$ 。 第二部分 $(a^2-2ab+b^2)$ 是一个完全平方公式,其中 $a=E[y|\mathbf{X}=x]\mathrm{,}b=h(x)$ 。所以它等于 $(E[y|\mathbf{X}=x]-h(x))^2$ 。

对于一个固定的输入x,模型的期望平方误差可以被分解为两部分之和: $$E_{Y|X}[(h(x)-y)^2|X=x]=\mathrm{Var}(y|\mathbf{X}=x)+(E[y|\mathbf{X}=x]-h(x))^2$$

  • $\mathrm{Var}(y|\mathbf{X}=x)$ 这一项是数据本身固有的噪声随机性。它表示即使我们知道了xy的值仍然存在不确定性。这是不可约减的误差。无论我们的模型 $h(x)$ 多么完美,它都无法消除这部分误差。这部分误差决定了我们模型性能的理论上限。
  • $(E[y|\mathbf{X}=x]-h(x))^2$ 这一项是模型自身带来的误差。$E[y|\mathbf{X}=x]$ 是在给定x时,y的真实平均值,这是理论上最完美的预测。这一项衡量的就是我们模型的预测值 $h(x)$ 与这个完美预测之间的差距。

我们现在完成了误差分解的第一步,即总误差 = 数据噪声 + 模型误差。但是在现实中,我们的模型 $h(x)$ 本身也是一个随机量(因为它是由随机抽样的训练数据训练出来的)。所以我们还需要继续分解:

首先我们定义理论上最完美的预测函数 $h^{}(x)$ 。给定输入 $\mathbf{X}=x$ 最优的预测函数 $h^{}(x)$ 是条件期望:$h^*(x)=E[y|\mathbf{X}=x]$ 。这是由上面的第二项决定的,因为第二项为 0 就是最小的。

所以理论上能做出的最佳预测,就是预测 y 在该 x 下的真实平均值。这个 $h^{*}(x)$ 也被称为贝叶斯最优预测器

我们现在定义使用这个最优模型所能达到的最优风险,最优风险是 $Y$ 固有的条件变异性(即噪声): $$R(h^)=E_X[\mathrm{Var}(y|\mathbf{X}=x)]$$ 这个结论是上一点的直接推论。如果我们使用了最优模型 $h^{}(x)$,那么模型误差项 $(E[y|\mathbf{X}=x]-h(x))^2$ 就等于0了。这样,总误差就只剩下了第一项,即不可约减的噪声项 $\mathrm{Var}(y|\mathbf{X}=x)$。

最优风险就是将这个噪声项在所有可能的 $x$ 上取平均。它代表了这个学习任务的理论难度下限。任何模型,无论多么强大,其真实风险都不可能低于这个值。

现在我们引入另一个一个非常重要的概念额外风险额外风险衡量的是“我们模型的错”。总误差中,一部分是“数据的错”(噪声),我们无能为力;而另一部分,则是由于我们的模型 $h(x)$ 没能达到理论最优 $h^∗(x)$ 所造成的,这部分就是额外风险。机器学习的目标,可以被重新表述为最小化这个额外风险

所以我们的最优风险 $R(h^{})$ 代表了不可避免的噪声风险。$R(h)-R(h^)$ 是由我们的模型不完美所导致的额外风险。所以我们能控制的那部分误差现在被隔离成 $E_X[(h(x)-h^*(x))^2]$ 。

现在我们要考虑,我们用来训练模型的数据集 $\mathcal{D}={x_i,y_i}_{i=1}^n$ 本身就是从一个巨大的未知数据源中随机抽样出来的。因此,我们训练出的模型 $h^{\mathcal{D}}$ 的形态,是依赖于我们碰巧抽到了哪个具体的数据集 $\mathcal{D}$ 的

因此,为了评估我们这个“学习算法”的普适性能,我们需要计算额外风险所有可能的训练集 $\mathcal{D}$ 上的期望值,即 $E_{\mathcal{D}}[R(h^{\mathcal{D}})-R(h^*)]$ 。

对额外风险求期望的过程: $$E_{\mathcal{D}}[R(h^{\mathcal{D}})-R(h^)]=E_{\mathcal{D}}E_X[(h^{\mathcal{D}}(x)-h^(x))^2]=E_XE_{\mathcal{D}}[(h^{\mathcal{D}}(x)-h^*(x))^2]$$ 我们定义一个理论上的“平均模型” $\bar{h}(x)=E_{\mathcal{D}}h^{\mathcal{D}}(x)$ 。这个 $\bar{h}(x)$ 代表了如果我们能用无数个不同的随机训练集去训练模型,然后将这些模型的预测结果在x点上取平均,所得到的那个平均预测值。它代表了我们这个学习算法的“中心趋势”或“平均水准”

平方项内部,我们同时加上和减去这个“平均模型”的预测值 $\bar{h}(x)$ 。 $$E_{\mathcal{D}}[(h^{\mathcal{D}}(x)-h^(x))^2]=E_{\mathcal{D}}[(h^{\mathcal{D}}(x)-\bar{h}(x)+\bar{h}(x)-h^(x))^2]$$ 将上式中的 $(h^{\mathcal{D}}(x)-\bar{h}(x))$ 视为A,$(\bar{h}(x)-h^(x))$ 视为B,展开 $(A+B)^2=A^2+B^2+2AB$ 经过数学证明(交叉项 $2AB$ 的期望为0),最终可以化简为两项之和: $$E_{\mathcal{D}}[(h^{\mathcal{D}}(x)-\bar{h}(x))^2]+(\bar{h}(x)-h^(x))^2$$ 我们将化简后的这两项,正式命名为方差偏差的平方

  • 方差 (Variance):
    • $\mathrm{Var}\mathcal{D}(x,\mathcal{H})=E\mathcal{D}[(h^\mathcal{D}(x)-\bar{h}(x))^2]$
    • 含义方差衡量的是,由不同训练集训练出的模型,其预测结果 $h^{\mathcal{D}}(x)$ 在它们的“平均预测” $\bar{h}(x)$ 周围的波动或散布程度
    • 高方差意味着模型对训练数据非常敏感,训练数据的微小变动会导致模型预测结果的剧烈变化。这正是过拟合 (Overfitting) 的特征。
  • 偏差 (Bias):
    • $\mathrm{Bias}^2(x,\mathcal{H})=(\bar{h}(x)-h^*(x))^2$
    • 含义偏差的平方衡量的是,我们学习算法的“平均预测” $\bar{h}(x)$ 与“理论上最完美的预测” $h^∗(x)$ 之间的差距
    • 高偏差意味着我们的模型(或学习算法)从根本上就存在系统性的错误,即使给它再多的数据,它的平均水准也无法达到理论最优。这正是欠拟合 (Underfitting) 的特征。

最终的分解公式如下: $$E_\mathcal{D}R(h^\mathcal{D})=R(h^*)+E_X\mathrm{Var}_\mathcal{D}(x,\mathcal{H})+E_X\mathrm{Bias}^2(x,\mathcal{H})$$ 这个公式告诉我们,一个学习算法(在假设空间 $\mathcal{H}$ 内)的期望泛化误差,可以被精确地分解为三个独立部分之和。

  • 噪声 (Noise): $R(h^*)$
    • 拟合问题内在的、固有的难度
    • 这是不可约减的误差,它是由数据本身的随机性决定的。无论我们的算法多好,我们都无法消除这部分误差。它代表了我们模型性能的理论上限。
  • 偏差 (Bias): $\mathrm{Bias}(x,\mathcal{H})$
    • 在假设空间 $\mathcal{H}$ 中,最好的学习器距离全局最优的那个 $h^*$ 有多远。
    • 偏差 $(\bar{h}(x)-h^*(x))$ 衡量的是我们学习算法的平均预测真实世界的最优预测之间的系统性差距。高偏差通常意味着模型过于简单,做出了错误的假设(比如用直线拟合曲线),导致欠拟合
  • 方差 (Variance): $\mathrm{Var}_{\mathcal{D}}(x,\mathcal{H})$
    • 不同的训练数据集下,我们的学习模型有多不稳定
    • 方差衡量的是模型预测结果对训练数据微小变化的敏感度。高方差通常意味着模型过于复杂,把训练数据中的噪声也学了进去,导致模型在不同数据集上训练时结果摇摆不定。这正是过拟合的表现。

因此,模型的期望总误差 = 噪声 + 方差 + 偏差的平方。构建一个机器学习模型,本质上就是在偏差和方差之间进行权衡

10. 正则化

在过拟合的模型中,我们观察到其估计出的系数值变得异常巨大,这种巨大的、正负交错的系数是模型为了拟合训练数据中的噪声而产生剧烈摆动的数学体现,是过拟合的一个典型症状

为了避免过拟合,我们可以在我们的优化目标中,增加一个针对巨大参数值的惩罚项

我们定义正则化:

正则化: 是一种约束或“规整”系数估计值的技术,即,将它们朝着的方向进行收缩。因此,它也被称为收缩方法。通过对系数进行收缩,我们限制了模型的复杂度,降低了模型对训练数据的敏感度,这直接降低了模型的方差。这种限制也可能使得模型无法完美地拟合数据背后的真实规律,从而可能会轻微地增加模型的偏差

正则化的目标,就是通过调整惩罚的“力度”(一个超参数,通常记为$\lambda$),在偏差和方差之间找到一个最佳的平衡点,从而最小化总的泛化误差。

我们现在将目标函数进行修改,将其变成包含正则化惩罚的优化目标函数: $$\min_\theta R_{emp}(h_\theta)+\lambda||\theta||p^p=\min\theta\frac{1}{n}\sum_{i=1}^nL(y_i,h_\theta(x_i))+\lambda||\theta||_p^p$$

  • $R_{emp}(h_\theta)$ :原始的经验风险(即平均损失)。这一项代表了模型对训练数据的拟合程度。为了让这一项小,模型需要尽可能地准确
  • $\lambda||\theta||_p^p$ :新加入的正则化惩罚项。这一项代表了模型的复杂度。为了让这一项小,模型需要尽可能地简单(即参数值小)。

模型训练的过程,就是在这两个相互制衡的目标之间寻找一个最佳平衡点。在“准确度”和“简单度”之间做出权衡。惩罚项通常由参数 $\theta$ 的 $L_p$​ 范数构成。

$L_p$​ 范数的公式: $$||\theta||p=(\sum{j=1}^p|\theta_j|^p)^{1/p}$$ 目标函数中的惩罚项是 $||\theta||_p^p$ ,即范数的p次方,这使得公式可以简化为 $\lambda\sum|\theta_j|^p$ ,$λ$ 是一个调节参数(或超参数),它控制着正则化的强度,并最终影响模型的复杂度

10.0. 正则化线性回归

标准(无正则化)的线性回归如下,单个样本的方程为:$y_i=\beta_0+\sum_{j=1}^p\beta_jx_{ij}+\epsilon_i$ 并假设误差项 $ϵ_i​$ 是独立同分布的正态随机变量 $\overset{\mathrm{i.i.d.}}{\operatorname*{\operatorname*{\sim}}}N(0,\sigma^2)$ 。简洁的矩阵形式为:$\mathbf{y}=\mathbf{X}\beta+\epsilon$ 。

优化目标 (最小二乘法):

  • 标准线性回归的求解方法是最小二乘法,其目标是最小化残差平方和 (Residual Sum of Squares, RSS)。 $$RSS(\beta)=\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\right)^2$$
  • 这个RSS,实际上就是我们之前定义的经验风险(在使用平方损失时),只是没有除以样本数 $n$。

最小化RSS可以得到一个解析解,也称为正规方程 (Normal Equation)。 $$\hat{\beta}=\arg\min_{\beta}RSS(\beta)=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}$$ 这个公式在理论上很完美,但在实践中,当特征数量 $p$ 非常大时,计算矩阵的逆 $(\mathbf{X}^T\mathbf{X})^{-1}$ 会变得非常缓慢且数值不稳定。在这种情况下,通常会使用梯度下降等迭代方法来求解。

正则化线性回归的新目标函数如下: $$\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\right)^2+\lambda||\beta||_\rho^\rho$$

  • 截距项 $\beta_0$: 注意,在标准的正则化线性回归中,惩罚项通常不包含截距项 β0​。因为 $\beta_0$ 只是一个整体的平移,惩罚它没有实际意义。
  • 数据标准化: 在进行正则化之前,通常需要对特征 $X$ 进行标准化(使其均值为0,方差为1)。这是因为正则化惩罚项对所有系数“一视同仁”,如果不同特征的量纲相差很大,那么量纲大的特征所对应的系数会天然地更小,这会使得正则化的惩罚效果不公平。

10.1. 岭回归

岭回归是正则化的一种,它设定通用公式中的 $ρ=2$,也就是使用L2范数 (欧几里得范数) 作为惩罚项。岭回归的估计量 $\hat{\beta}{\lambda}^{R}$ 是通过最小化以下目标函数得到的: $$\sum{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\right)^2+\lambda\sum_{j=1}^p\beta_j^2$$ 这个目标函数由两部分构成:

  • 第一项 (拟合优度项): $\sum(\ldots)^2$ 是残差平方和 (RSS)。它衡量模型对训练数据的拟合程度,这个值越小越好。
  • 第二项 (收缩惩罚项): $\lambda\sum_{j=1}^p\beta_j^2$​ 是L2正则化惩罚项。它的大小与系数的平方和成正比。这一项的作用是将系数 $β_j​$ 朝着0的方向进行“收缩”。

这种收缩降低了方差,但增加了偏差

  • 降低方差:
    • 惩罚大系数使得模型变得更“保守”、更“简单”。它不再那么容易被训练数据中的噪声所迷惑,因此对不同训练集的敏感度降低了。最终训练出的模型更加稳定,这就是方差降低。这是对抗过拟合的关键。
  • 增加偏差:
    • 因为正则化的存在,模型不再能够自由地选择能使训练误差(RSS)最小的那些系数值,它的系数被迫向0收缩。这可能会导致模型的预测结果与真实值之间产生一个微小的、系统性的偏离。这就是偏差增加
  • 权衡:
    • 正则化的精髓就在于这种权衡。我们愿意牺牲一点点的偏差(接受模型在训练集上拟合得不那么“完美”),来换取方差的大幅降低(得到一个更稳定、泛化能力更强的模型)。通过调节超参数 $\lambda$ 的大小,我们就可以在这个权衡中找到一个能使总泛化误差最小的最佳平衡点。

λ 的作用是控制我们在“拟合数据”和“保持系数小”这两个目标之间的权衡。它决定了正则化惩罚项的“权重”或“强度”。

  • 当 λ=0 时:
    • 含义: 没有惩罚,模型退化为普通的最小二乘法 (normal OLS)
    • 在这种情况下,惩罚项 $\lambda\sum\beta_j^2$​ 变为0,优化目标就只剩下了最小化残差平方和(RSS)。模型将不受任何约束,可能会因为过拟合而产生巨大的系数。
  • 当 λ=∞ 时:
    • 含义: 无限大的惩罚,导致系数估计$\hat{\beta}_\infty^R=0$。
    • 当$\lambda$趋向于无穷大时,惩罚项在总优化目标中占据了绝对主导地位。为了让总目标最小化,模型唯一的选择就是将所有(除截距项外)的系数 $\beta_j$ 都严格地设置为0,因为任何非零的系数都会导致一个无穷大的惩罚。此时,模型变成了一个最简单的模型,其预测值恒等于训练数据的均值(只剩下截距项$\beta_0$),这是一种极端的欠拟合状态。
  • 当 λ 较大时 (Large λ):
    • 含义: 惩罚很重,对系数的收缩效应更强。
    • 补充知识: 随着$\lambda$从0开始增大,正则化的力量也随之增强。模型会被迫不断减小其系数的大小,以避免受到越来越重的惩罚,哪怕这会牺牲一部分在训练集上的拟合精度(即增加偏差)。

截距项 $β_0$​ 是不被惩罚的,因为正则化的目的是为了限制特征(自变量 x)对预测结果的影响力,即限制模型的“斜率”。而截距项 $β_0$​ 只是一个整体的“基准线”或“偏移量”,它代表了所有特征都取0时模型的预测值。对$\beta_0$进行惩罚,会使得模型的预测结果强行向原点(0点)靠近,但这通常是没有实际意义的,因为这个基准线的位置应该由数据本身的均值来决定。

在实践中,我们通常会对自变量x进行中心化(减去其均值)。在这种情况下,最优的截距项$\beta_0$恰好就是因变量y的均值。收缩这样一个有明确意义的基准值是没有道理的。

岭回归有两种等价形式:

  1. 约束形式 (Constraints form) $$\min_\beta\left{\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\right)^2\right}\quad\mathrm{subject~to}\quad\sum_{j=1}^p\beta_j^2\leq t$$ 在这种形式下,我们的主要目标仍然是最小化残差平方和 (RSS),和普通的最小二乘法一样。但是,这个最小化过程受到了一个约束:所有系数(除截距项外)的平方和,不能超过一个预先设定的预算上限 t

我们可以把这个约束想象成在参数空间中画了一个圆(或高维球体),球心在原点,半径为 $\sqrt{t}$ 。约束形式要求我们:只能在这个球内部或球面上去寻找能让RSS最小的那个点。我们不允许跑到球的外面去。

  1. 拉格朗日形式 (Lagrangian form) $$\min_\beta\left{\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\right)^2+\lambda\sum_{j=1}^p\beta_j^2\right}$$ 这就是惩罚项形式,通过加入优化项形成一个新的、无约束的优化问题。我们通过调整惩罚系数 λ 的大小,来控制对“违反约束”(即系数过大)的惩罚力度。

线性回归的L2正则化是有解析解的:

我们先写出岭回归的目标函数(这里为了简化,假设数据已经中心化,因此省略了截距项$\beta_0$)。

求和形式: $$l_\lambda^R(\beta)=\sum_{i=1}^n\left(y_i-\sum_{j=1}^p\beta_jx_{ij}\right)^2+\lambda\sum_{j=1}^p\beta_j^2$$ 矩阵形式: $$=||\mathbf{y}-\mathbf{X}\beta||2^2+\lambda\beta^T\beta$$ 展开形式: $$=\mathbf{y}^{T}\mathbf{y}+\beta^{T}\mathbf{X}^{T}\mathbf{X}\beta-2\mathbf{y}^{T}\mathbf{X}\beta+\lambda\beta^{T}\beta$$ 为了找到能使目标函数 $l\lambda^R(\beta)$ 最小的 $β$ 值,我们需要对 $l_\lambda^R(\beta)$ 关于 $β$ 求导,并令导数等于0。

求导: $$\frac{\partial l_\lambda^R(\beta)}{\partial\beta}=2(\mathbf{X}^T\mathbf{X}+\lambda\mathbf{I}_p)\beta-2(\mathbf{X}^T\mathbf{y})=0$$ 解出 $β$: $$2(\mathbf{X}^T\mathbf{X}+\lambda\mathbf{I}_p)\beta=2(\mathbf{X}^T\mathbf{y})$$ $$(\mathbf{X}^T\mathbf{X}+\lambda\mathbf{I}p)\beta=\mathbf{X}^T\mathbf{y}$$ 最终得到岭回归的解析解: $$\hat{\beta}\lambda^R=(\mathbf{X}^T\mathbf{X}+\lambda\mathbf{I}_p)^{-1}\mathbf{X}^T\mathbf{y}$$ 将它与标准线性回归的解(正规方程)进行对比:

  • OLS 解: $\hat{\beta}_{OLS}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}$
  • 岭回归解: $\hat{\beta}_\lambda^R=(\mathbf{X}^T\mathbf{X}+\lambda\mathbf{I}_p)^{-1}\mathbf{X}^T\mathbf{y}$

唯一的区别在于,岭回归的解在矩阵 $\mathbf{X}^T\mathbf{X}$ 的基础上,加上了一个对角矩阵 $\lambda\mathbf{I}_p$​

这个很有好处,因为OLS解中,如果矩阵不可逆,这个解就无法计算。矩阵不可逆的两种常见情况:

  1. $n<p$: 样本数量n小于特征数量p
    • 这种情况在生物信息学(基因数据)或文本分析中很常见。当未知数(参数p)比方程(数据点n)还多时,解有无穷多个,问题是“欠定的”。此时 $\mathbf{X}^T\mathbf{X}$ 必然是奇异的(不可逆)。
  2. $\mathbf{X}$ 的列不线性独立: 即特征之间存在多重共线性
    • 补充知识: 比如,数据中同时包含了“以米为单位的身高”和“以厘米为单位的身高”这两个特征。这两个特征是完全线性相关的,导致矩阵不可逆。

正则化可以修复这个问题,因为它能保证矩阵 $\mathbf{X}^T\mathbf{X}+\lambda\mathbf{I}$ 的所有特征值都是非零的

无论是OLS还是岭回归,计算解析解都涉及到矩阵乘法 $\mathbf{X}^T\mathbf{X}$ 和矩阵求逆。当特征数量p非常巨大时(例如上万个),计算一个 $p×p$ 矩阵的逆(计算复杂度约为$O(p^3)$)会变得极其耗时,甚至在计算上不可行。

这时我们可以使用数值方法(如梯度下降)来求解,因为当 $λ≥0$ 时,岭回归的目标函数仍然是凸函数

10.2. LASSO

LASSO是通用正则化框架中,当 $ρ=1$ 时的特例,它使用的是L1范数(曼哈顿范数)作为惩罚项。与岭回归一样,LASSO也有两种等价的数学表达形式。

  1. 惩罚项形式 (或拉格朗日形式) $$\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\right)^2+\lambda\sum_{j=1}^p|\beta_j|$$ LASSO惩罚的是系数的绝对值之和($∑∣β_j​∣$)。
  2. 约束形式 (Constraints form) $$\min_\beta\left{\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\right)^2\right}\quad\mathrm{subject~to}\quad\sum_{j=1}^p|\beta_j|\leq t$$ LASSO的L1约束($|\beta_1|+|\beta_2|\leq t$)在二维参数空间中定义的则是一个菱形(或旋转了45度的正方形)区域。菱形的“尖角”恰好位于坐标轴上,这使得优化过程中的解更容易“撞”在坐标轴上,从而导致某个系数变为0。

LASSO最重要、最独特的特性是它能够产生稀疏解 (Sparse solutions)当调节参数$\lambda$足够大时,L1惩罚项具有将某些系数估计值精确地压缩到零的效果,这在岭回归中是不会发生的。

在一般情况下,我们无法像普通最小二乘法(OLS)或岭回归那样,为LASSO写出一个一步到位的、封闭形式的数学解,因为正则化项 $\sum_{j=1}^p|\beta_j|$ 是不可导的

既然一般情况(特征之间可能相关)难以分析,那么我们就先分析一个理想化的特殊情况。我们假设计矩阵 $X$ 是一个正交矩阵,这意味着所有的特征之间都是完全不相关的。在这个理想假设下,复杂的多元回归问题可以被分解成一系列互不干扰的一元回归问题,每一个问题我们都可以单独、轻松地进行分析和求解。

考虑一个半正交的数据矩阵 $\mathbf{X}$,即满足 $\mathbf{X}^T\mathbf{X}=\mathbf{I}$ ($\mathbf{I}$是单位矩阵)。在这个理想前提下,普通最小二乘法(OLS)的解和残差平方和(RSS)项都可以被大大简化。

  • OLS解的简化: $\hat{\beta}^{OLS}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}=\mathbf{I}^{-1}\mathbf{X}^T\mathbf{y}=\mathbf{X}^T\mathbf{y}$
  • RSS项的简化: $||\mathbf{y}-\mathbf{X}\beta||_2^2=...=(\hat{\beta}^{OLS}-\beta)^T(\hat{\beta}^{OLS}-\beta)$ (这里省略了与$\beta$无关的常数项)

经过一系列矩阵代数推导,可以证明,最小化原始的残差平方和  $||\mathbf{y}-\mathbf{X}\beta||2^2$ ,在正交前提下,等价于最小化 $(\hat{\beta}^{OLS}-\beta)^T(\hat{\beta}^{OLS}-\beta)$ ,也就是 $\sum{j=1}^p(\hat{\beta}_{OLS,j}-\beta_j)^2$ 。这个简化的意思是,拟合数据的过程,可以被看作是让我们的参数 β 去尽可能地接近预先算好的OLS参数 $\hat{\beta}^{OLS}$ 。

现在,我们将简化的RSS项与LASSO的L1惩罚项结合起来,就得到了LASSO目标函数的一个全新的、极其简洁的形式。 $$l_{LASSO}^*(\beta)=\sum_{j=1}^p{(\hat{\beta}_{OLS,j}-\beta_j)^2+\lambda|\beta_j|}$$ 原始的、所有参数$\beta$相互耦合在一起的复杂优化问题,现在被完全分解 成 p 个独立的、互不干扰的子问题。

我们可以逐个去求解每一个系数 $β_j​$。对于第j个系数,我们只需要解决一个简单的一维优化问题:最小化 $(\hat{\beta}{OLS,j}-\beta_j)^2+\lambda|\beta_j|$ 。在这个一维问题中,$\hat{\beta}{OLS,j}$ 是一个我们已经算好的具体数值,λ 是我们设定的超参数。我们唯一要做的,就是找到一个标量 $β_j​$ 来最小化这个简单的表达式。

对于每一个系数$\beta_j$,我们需要找到能使其最小化的值: $$\min_{\beta_j}(\hat{\beta}_{OLS,j}-\beta_j)^2+\lambda|\beta_j|$$ 由于绝对值函数 $∣β_j​∣$ 在0点不可导,我们通过分情况讨论来绕开这个麻烦。

  • 情况一:如果 $\hat{\beta}_{OLS,j}>0$
    • 直觉: 我们的目标是让$\beta_j$ 去靠近一个正数 $\hat{\beta}_{OLS,j}$ ,所以很自然地可以推断,最优的 $\beta_j$也应该是正数。
    • 当$\beta_j > 0$时, $|\beta_j| = \beta_j$。我们的目标函数就变成了一个光滑可导的二次函数:$(\hat{\beta}_{OLS,j} - \beta_j)^2 + \lambda\beta_j$。
    • 对其求导并令为0,可以解得 $\beta_j=\hat{\beta}_{OLS,j}-\frac{\lambda}{2}$​。
    • 但是,这个解必须满足我们的前提 $β_j​>0$。如果 $\hat{\beta}_{OLS,j}-\frac{\lambda}{2}$ 计算出来是负数,那么最优解只能取边界值0。
    • 结论: 综合起来,解就是 $\hat{\beta}{LASSO,j}=\max\left{0,\hat{\beta}{OLS,j}-\frac{\lambda}{2}\right}$。
  • 情况二:如果 β^​OLS,j​<0
    • 直觉: 同理,我们推断最优的$\beta_j$也应该是负数。
    • 求解: 当$\beta_j < 0$时, $|\beta_j|=-\beta_j$。目标函数变为 $(\hat{\beta}_{OLS,j}-\beta_j)^2-\lambda\beta_j$。
    • 对其求导并令为0,可以解得 $\beta_j=\hat{\beta}_{OLS,j}+\frac{\lambda}{2}$。
    • 这个解也必须满足前提 $β_j​<0$。如果计算结果为正,最优解只能取边界值0。
    • 结论: 综合起来,解就是 $\hat{\beta}{LASSO,j}=\min\left{0,\hat{\beta}{OLS,j}+\frac{\lambda}{2}\right}$。

综合起来,可以合成一个公式,我们称之为软阈值。 $$\hat{\beta}{LASSO,j}=\mathrm{sgn}(\hat{\beta}{OLS,j})(|\hat{\beta}{OLS,j}|-\frac{\lambda}{2})+$$

  • $|\hat{\beta}_{OLS,j}|$: 首先取OLS系数值的绝对值。
  • $(...-\frac{\lambda}{2})_+$ : 然后将这个绝对值向0的方向“推”一个距离 $\frac{\lambda}{2}$​。下标+表示取正部分,即如果结果是负数,就直接置为0
  • $\mathrm{sgn}(\hat{\beta}_{OLS,j})$: 最后,再把原始OLS系数的符号(正或负)给乘回来。

![[Pasted image 20250926205839.png]]

这张图展示了LASSO的系数值与普通最小二乘法(OLS)的系数值之间的函数关系。我们可以发现在中间的一段区域,无论原始的OLS系数值在这个区间内如何变化,最终的LASSO系数值始终为0

这正是LASSO产生稀疏性的根源。如果一个特征的“原始重要性”($|\hat{\beta}_{OLS}|$)不够强,没有超过某个阈值(在这个例子中是0.5),LASSO就会认为这个特征是无关紧要的,并将其系数直接“置为零”,从而将该特征从模型中剔除。

10.3. 弹性网络

弹性网络正则化是一种混合了L1和L2惩罚项的正则化方法。 $$\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\right)^2+\lambda_1\sum_{j=1}^p|\beta_j|+\lambda_2\sum_{j=1}^p\beta_j^2$$

  • 弹性网络的目标函数包含了三个部分:
    1. 残差平方和(RSS): 原始的数据拟合项。
    2. L1惩罚项: $\lambda_1\sum|\beta_j|$,和LASSO中的一样。
    3. L2惩罚项: $\lambda_2\sum\beta_j^2$,和岭回归中的一样。
  • 补充知识: 弹性网络引入了两个独立的超参数,$λ_1$​ 和 $λ_2​$,分别控制L1和L2惩罚的强度。这使得它比岭回归和LASSO更灵活,但同时也意味着超参数的调优过程会更复杂。

弹性网络被提出来,主要是为了解决LASSO的一些不足之处:

  1. 处理相关特征: 当数据中有一组特征高度相关时,LASSO的行为会有些不稳定,它倾向于从这组特征中随机地选择一个,并将其余特征的系数置为0。而弹性网络,由于其L2部分的存在(岭回归擅长处理相关特征),倾向于将这组相关的特征“成组地”选入或剔除模型。这种“成组效应 (grouping effect)”在很多实际应用中是更合理的。
  2. 处理 $p>n$ 的情况: 当特征数量p远大于样本数量n时,LASSO最多只能选出n个非零系数的特征。而弹性网络没有这个限制,它可以选出超过n个特征,这在某些领域(如基因组学)中非常有用。

![[Pasted image 20250926210221.png]]

10.4. 正则化与贝叶斯

首先,有最小二乘法的目标函数残差平方和(RSS),公式为: $$RSS(\beta)=\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\right)^2=(\mathbf{y}-\mathbf{X}\beta)^T(\mathbf{y}-\mathbf{X}\beta)$$ 那么,我们同时使用exp: $$\exp\left(-\frac{1}{2\sigma^2}RSS(\beta)\right)=\exp\left(-\frac{1}{2\sigma^2}(\mathbf{y}-\mathbf{X}\beta)^T(\mathbf{y}-\mathbf{X}\beta)\right)$$ $$\propto\prod_{i=1}^n\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(y_i-\mathbf{x}_i^T\beta)^2}{2\sigma^2}\right)$$ 因此,RSS的指数项,正比于假设噪声为正态分布时的似然函数。因为我们前面假设线性回归模型 $y_i=\mathbf{x}_i^T\beta+\epsilon_i$ 中的噪声 $ϵ_i​$ 服从均值为0、方差为 $σ^2$ 的高斯分布。

这就意味着,观测值 $y_i​$ 本身也服从一个均值为 $\mathbf{x}_i^T\boldsymbol{\beta}$ 方差为 $σ^2$ 的高斯分布,即 $y_i\sim N(\mathbf{x}_i^T\beta,\sigma^2)$ 。整个数据集的似然函数,就是所有独立样本的概率密度函数的乘积,即上面公式链的最后一项。


那么对于两个正则化也相似:

LASSO惩罚项的指数形式,正比于参数$\beta$的概率密度函数,这个函数恰好是拉普拉斯分布

我们来看LASSO惩罚项的指数形式: $$\exp\left(-\frac{\lambda}{2\sigma^2}\sum_{j=1}^p|\beta_j|\right)$$ 令指数和变为指数积 $$\exp\left(-\frac{\lambda}{2\sigma^2}\sum_{j=1}^p|\beta_j|\right)=\prod_{j=1}^p\exp\left(-\frac{\lambda}{2\sigma^2}|\beta_j|\right)$$ 识别概率分布形式 $$\propto\prod_{j=1}^p\frac{\sigma^2}{\lambda}\exp\left(-\frac{\lambda}{2\sigma^2}|\beta_j|\right)=\prod_{j=1}^p\mathrm{Laplace}(0,\frac{2\sigma^2}{\lambda})$$ 拉普拉斯分布 (Laplace distribution) 的概率密度函数形式为 $\frac{1}{2b}e^{-\frac{|x-\mu|}{b}}$ ,其中$\mu$是位置参数,$b$ 是尺度参数。如果我们设定位置参数$\mu=0$,尺度参数 $b=\frac{2\sigma^2}{\lambda}$ ,表达式 $\exp\left(-\frac{\lambda}{2\sigma^2}|\beta_j|\right)$ 正好是拉普拉斯分布概率密度函数的核心部分。

因此,这个表达式正比于一个位置为0,尺度为$\frac{2\sigma^2}{\lambda}$的拉普拉斯分布。所以LASSO的L1惩罚项,在数学上等价于我们为模型中的每一个系数 $β_j​$ 都假定了一个拉普拉斯先验分布。这也是一个先验的设定。


岭回归惩罚项的指数形式,正比于参数$\beta$的概率密度函数,而这个函数恰好是正态(高斯)分布。岭回归惩罚项的指数形式: $$\exp\left(-\frac{\lambda}{2\sigma^2}\sum_{j=1}^p\beta_j^2\right)$$ 指数和变为指数积 $$\exp\left(-\frac{\lambda}{2\sigma^2}\sum_{j=1}^p\beta_j^2\right)=\prod_{j=1}^p\exp\left(-\frac{\lambda}{2\sigma^2}\beta_j^2\right)$$ 识别概率分布形式 $$\propto\prod_{j=1}^p\frac{\sqrt{\lambda}}{\sqrt{2\pi\sigma^2}}\exp\left(-\frac{\lambda}{2\sigma^2}\beta_j^2\right)=\prod_{j=1}^p\mathrm{Normal}(0,\frac{\sigma^2}{\lambda})$$ 正态分布(Normal Distribution) 的概率密度函数形式为 $\frac{1}{\sqrt{2\pi\sigma_{prior}^2}}e^{-\frac{(x-\mu)^2}{2\sigma_{prior}^2}}$ ,其中$\mu是均值,\sigma_{prior}^2$ 是方差。如果我们设定均值$\mu=0$,方差$\sigma_{prior}^2 = \frac{\sigma^2}{\lambda}$,那么这个表达式就是上述的核心部分。因此,这个表达式正比于一个均值为0,方差为$\frac{\sigma^2}{\lambda}$的正态分布

所以岭回归的L2惩罚项,在数学上等价于我们为模型中的每一个系数 $β_j$​ 都假定了一个正态先验分布 (Normal prior)

先验信念的差异:

  • 岭回归 (高斯先验): 这种先验相信参数$\beta_j$的值很可能接近于0,并且对称地分布在0的两侧。它认为特别大的系数值是小概率事件,但它并不强烈地相信系数会精确地等于0(因为高斯分布在0点的概率密度并非无限高)。这与岭回归只“收缩”系数而不产生稀疏解的行为完全吻合。
  • LASSO (拉普拉斯先验): 这种先验在0点有一个尖锐的峰。这代表了一种更强的信念:我们相信很多系数的值很可能精确地就是0。这种信念自然地引导出了一个稀疏的模型。

从贝叶斯角度解释了超参数 $\lambda$ 的作用,有如下的等价概念:

机器学习 (Machine Learning) 贝叶斯分析 (Bayesian Analysis)
正则化项 (Regularization term) 先验 (Prior)
目标函数 (Objective function) (如RSS) 似然 (Likelihood)
带惩罚的目标函数 (Penalized...) 后验 (Posterior)
正则化参数估计 (Regularized...) 最大后验概率估计 (MAP)

我们一直在做的正则化线性回归,其本质就是在进行最大后验概率估计 (MAP)。我们寻找的解,不再是仅仅让数据看起来最合理(最大似然),而是在我们预设的“信念”(先验)下,让数据和信念共同作用后最合理的解(最大后验)。

超参数$\lambda$的贝叶斯解释

  • 当 λ 很大时:
    • 效果: 强力地将参数收缩到0。
    • 贝叶斯解释: 这对应一个信息量非常大 (very informative) 的先验。我们的先验分布会变得非常狭窄和尖锐,代表我们有极强的信念,认为参数必须为0。在这种情况下,先验会主导后验概率,数据本身(似然)的影响力会变得很小。最终的结果几乎完全由我们的“偏见”(先验)决定,导致模型欠拟合。
  • 当 λ=0 时:
    • 效果: 回归到普通的最小二乘法(OLS)。
    • 贝叶斯解释: 这对应一个模糊的 (Vague) 先验,即 $p(β)∝1$。这意味着我们对参数没有任何偏好,认为所有$\beta$值的可能性都一样。
    • 在贝叶斯公式中,如果先验是一个常数,那么后验概率就完全由似然主导。因此,最大化后验概率(MAP)就退化为了最大化似然(MLE),而我们已经知道,在线性回归中,MLE等价于OLS。

因此从贝叶斯角度理解,选择哪种正则化(L1或L2)等价于选择你对参数的先验信念(拉普拉斯或高斯);而调节正则化的强度$\lambda$,则等价于调节你对这个先验信念的“信心”有多强