当前位置: 首页 > news >正文

【高级机器学习】 4. 假设复杂度与泛化理论详解

机器学习中的假设复杂度与泛化理论详解

引言

在机器学习中,我们经常面临一个核心问题:为什么我们的模型能够在训练数据上表现良好,同时也能在未见过的新数据上表现出色? 这就是著名的泛化问题。本文将深入探讨假设复杂度与泛化性能之间的关系。


1. 基础概念回顾

1.1 最优分类器的定义

理论上的最佳分类器可以数学化定义为:

arg⁡min⁡hE[1{Y≠sign(h(X))}]\arg \min_h E[1_{\{Y \neq \text{sign}(h(X))\}}]arghminE[1{Y=sign(h(X))}]

其中:

  • h(X)h(X)h(X) 是我们的假设函数
  • YYY 是真实标签
  • 1{⋅}1_{\{\cdot\}}1{} 是指示函数(条件成立时为1,否则为0)
  • E[⋅]E[\cdot]E[] 表示期望

问题:这个目标函数既不是凸函数也不光滑,很难直接优化。

1.2 替代损失函数

为了解决优化困难,我们通常使用替代损失函数

常见的凸替代损失函数:
  1. 合页损失(Hinge Loss):ℓ(X,Y,h)=max⁡{0,1−Yh(X)}\ell(X,Y,h) = \max\{0, 1-Yh(X)\}(X,Y,h)=max{0,1Yh(X)}
  2. 逻辑损失(Logistic Loss):ℓ(X,Y,h)=log⁡2(1+exp⁡(−Yh(X)))\ell(X,Y,h) = \log_2(1 + \exp(-Yh(X)))(X,Y,h)=log2(1+exp(Yh(X)))
  3. 平方损失(Least Squares):ℓ(X,Y,h)=(Y−h(X))2=(1−Yh(X))2\ell(X,Y,h) = (Y - h(X))^2 = (1 - Yh(X))^2(X,Y,h)=(Yh(X))2=(1Yh(X))2
  4. 指数损失(Exponential Loss):ℓ(X,Y,h)=exp⁡(−Yh(X))\ell(X,Y,h) = \exp(-Yh(X))(X,Y,h)=exp(Yh(X))
非凸替代损失函数:
  1. 柯西损失ℓ(X,Y,h)=log⁡2(1+(1−Yh(X)σ)2)\ell(X,Y,h) = \log_2\left(1 + \left(\frac{1-Yh(X)}{\sigma}\right)^2\right)(X,Y,h)=log2(1+(σ1Yh(X))2)
  2. 相关熵损失ℓ(X,Y,h)=1−exp⁡(−(1−Yh(X)σ)2)\ell(X,Y,h) = 1 - \exp\left(-\left(\frac{1-Yh(X)}{\sigma}\right)^2\right)(X,Y,h)=1exp((σ1Yh(X))2)

2. 梯度下降优化方法

2.1 基本思想

我们要解决的无约束凸优化问题:
arg⁡min⁡h∈Hf(h)=arg⁡min⁡h∈H1n∑i=1nℓ(Xi,Yi,h)\arg \min_{h \in H} f(h) = \arg \min_{h \in H} \frac{1}{n}\sum_{i=1}^n \ell(X_i, Y_i, h)arghHminf(h)=arghHminn1i=1n(Xi,Yi,h)

2.2 泰勒定理应用

根据泰勒定理,对于在点aaakkk次可微的函数fff

f(x)=f(a)+f′(a)(x−a)+⋯+f(k)(a)k!(x−a)k+hk(x)(x−a)kf(x) = f(a) + f'(a)(x-a) + \cdots + \frac{f^{(k)}(a)}{k!}(x-a)^k + h_k(x)(x-a)^kf(x)=f(a)+f(a)(xa)++k!f(k)(a)(xa)k+hk(x)(xa)k

其中lim⁡x→ahk(x)=0\lim_{x \to a} h_k(x) = 0limxahk(x)=0

k=1k=1k=1时:
f(x)=f(a)+f′(a)(x−a)+o(x−a)f(x) = f(a) + f'(a)(x-a) + o(x-a)f(x)=f(a)+f(a)(xa)+o(xa)

2.3 更新规则

设更新规则为:hk+1=hk+ηdkh^{k+1} = h^k + \eta d^khk+1=hk+ηdk

x=hk+1x = h^{k+1}x=hk+1, a=hka = h^ka=hk,我们得到:
f(hk+1)=f(hk)+η∇f(hk)Tdk+o(η)f(h^{k+1}) = f(h^k) + \eta \nabla f(h^k)^T d^k + o(\eta)f(hk+1)=f(hk)+ηf(hk)Tdk+o(η)

关键设计问题

  1. 如何设计方向dkd^kdk
  2. 如何选择步长η\etaη

通常设置dk=−Dk∇f(hk)d^k = -D^k \nabla f(h^k)dk=Dkf(hk),其中DkD^kDk是某个正定矩阵。

2.4 收敛速度

算法假设条件收敛速度
梯度下降Lipschitz梯度,凸函数O(1/k)O(1/k)O(1/k)
梯度下降Lipschitz梯度,强凸函数O((1−μ/L)k)O((1-\mu/L)^k)O((1μ/L)k)
牛顿法Lipschitz梯度,强凸函数二次收敛

其中强凸情况下的线性收敛率为:
f(hk+1)−f(h∗)≤(1−μL)k(f(h1)−f(h∗))f(h^{k+1}) - f(h^*) \leq \left(1 - \frac{\mu}{L}\right)^k (f(h^1) - f(h^*))f(hk+1)f(h)(1Lμ)k(f(h1)f(h))


3. 假设类与泛化理论

3.1 关键概念定义

机器学习算法本质上是一个映射:
A:S∈(X×Y)n→hS∈HA: S \in (X \times Y)^n \rightarrow h_S \in HA:S(X×Y)nhSH

其中:

  • SSS 是训练样本
  • HHH 是预定义的假设类
  • hSh_ShS 是从数据中学到的假设

3.2 三个重要的假设

  1. 目标概念(Target Concept):c=arg⁡min⁡hR(h)c = \arg \min_h R(h)c=argminhR(h)
  2. 假设类中的最优假设h∗=arg⁡min⁡h∈HR(h)h^* = \arg \min_{h \in H} R(h)h=argminhHR(h)
  3. 从数据学到的假设hS=arg⁡min⁡h∈HRS(h)h_S = \arg \min_{h \in H} R_S(h)hS=argminhHRS(h)

3.3 两类误差分解

总误差 = 近似误差 + 估计误差

  • 近似误差R(h∗)−R(c)R(h^*) - R(c)R(h)R(c),由假设类HHH的表达能力限制造成
  • 估计误差R(hS)−R(h∗)R(h_S) - R(h^*)R(hS)R(h),由有限训练数据造成

![误差分解示意图]

通用函数空间↓目标c ← 近似误差 → h* (假设类H中的最优)↓ 估计误差h_S (从数据学到的)
  • 如果目标c在预定义的假设类H中,那么近似approximation误差会等于0
  • 但是同时,我们不可以把假设空间设得很大。1.大的假设会使得更难学习2.estimate估计误差会变大

3.4 风险定义

  • 经验风险RS(h)=1n∑i=1nℓ(Xi,Yi,h)R_S(h) = \frac{1}{n}\sum_{i=1}^n \ell(X_i, Y_i, h)RS(h)=n1i=1n(Xi,Yi,h)
  • 期望风险R(h)=E[RS(h)]=E[ℓ(X,Y,h)]R(h) = E[R_S(h)] = E[\ell(X,Y,h)]R(h)=E[RS(h)]=E[(X,Y,h)]

4. PAC学习框架

4.1 PAC学习定义

定义:假设类HHH被称为PAC(概率近似正确)可学习的,如果存在学习算法AAA和多项式函数poly(⋅,⋅)\text{poly}(\cdot, \cdot)poly(,),使得对于任意ϵ>0\epsilon > 0ϵ>0, δ>0\delta > 0δ>0,以及X×YX \times YX×Y上的任意分布DDD,当样本大小n>poly(1/δ,1/ϵ)n > \text{poly}(1/\delta, 1/\epsilon)n>poly(1/δ,1/ϵ)时,算法AAA学到的假设hSh_ShS满足:

P{R(hS)−min⁡h∈HR(h)≤ϵ}≥1−δP\left\{R(h_S) - \min_{h \in H} R(h) \leq \epsilon\right\} \geq 1 - \deltaP{R(hS)hHminR(h)ϵ}1δ

直观理解

  • 概率(Probably):以高概率1−δ1-\delta1δ
  • 近似(Approximately):误差不超过ϵ\epsilonϵ
  • 正确(Correct):找到接近最优的假设

如果训练样本量足够大,具有很高的概率,则学习到的假设可以是任何task的预定义假设类中最佳假设的近似值

4.2 PAC可学习性检验

我们使用经验风险最小化(ERM)算法来验证假设类是否PAC可学习。

关键不等式推导

R(hS)−min⁡h∈HR(h)=R(hS)−R(h∗)R(h_S) - \min_{h \in H} R(h) = R(h_S) - R(h^*)R(hS)hHminR(h)=R(hS)R(h)

展开得到:
=R(hS)−RS(hS)+RS(hS)−RS(h∗)+RS(h∗)−R(h∗)= R(h_S) - R_S(h_S) + R_S(h_S) - R_S(h^*) + R_S(h^*) - R(h^*)=R(hS)RS(hS)+RS(hS)RS(h)+RS(h)R(h)

由于RS(hS)≤RS(h∗)R_S(h_S) \leq R_S(h^*)RS(hS)RS(h)(ERM的定义),所以:
R(hS)−R(h∗)≤∣R(hS)−RS(hS)∣+∣R(h∗)−RS(h∗)∣R(h_S) - R(h^*) \leq |R(h_S) - R_S(h_S)| + |R(h^*) - R_S(h^*)|R(hS)R(h)R(hS)RS(hS)+R(h)RS(h)

≤2sup⁡h∈H∣R(h)−RS(h)∣\leq 2\sup_{h \in H}|R(h) - R_S(h)|2hHsupR(h)RS(h)

核心问题:如何控制sup⁡h∈H∣R(h)−RS(h)∣\sup_{h \in H}|R(h) - R_S(h)|suphHR(h)RS(h)


5. 集中不等式与泛化界

5.1 Hoeffding不等式

定理:设X1,…,XnX_1, \ldots, X_nX1,,Xn为独立随机变量,且Xi∈[ai,bi]X_i \in [a_i, b_i]Xi[ai,bi]。令Sn=1n∑i=1nXiS_n = \frac{1}{n}\sum_{i=1}^n X_iSn=n1i=1nXi,则对任意ϵ>0\epsilon > 0ϵ>0

P{∣Sn−E[Sn]∣≥ϵ}≤2exp⁡(−2n2ϵ2∑i=1n(bi−ai)2)P\{|S_n - E[S_n]| \geq \epsilon\} \leq 2\exp\left(-\frac{2n^2\epsilon^2}{\sum_{i=1}^n(b_i-a_i)^2}\right)P{SnE[Sn]ϵ}2exp(i=1n(biai)22n2ϵ2)

5.2 应用到学习理论

假设损失函数有界:ℓ(X,Y,h)∈[0,M]\ell(X,Y,h) \in [0,M](X,Y,h)[0,M],则对单个假设hhh

P{∣R(h)−RS(h)∣≥ϵ}≤2exp⁡(−2nϵ2M2)P\{|R(h) - R_S(h)| \geq \epsilon\} \leq 2\exp\left(-\frac{2n\epsilon^2}{M^2}\right)P{R(h)RS(h)ϵ}2exp(M22nϵ2)

5.3 联合界(Union Bound)

对于有限假设类HHH,使用联合界:

P{sup⁡h∈H∣R(h)−RS(h)∣≥ϵ}≤∑h∈HP{∣R(h)−RS(h)∣≥ϵ}P\left\{\sup_{h \in H}|R(h) - R_S(h)| \geq \epsilon\right\} \leq \sum_{h \in H} P\{|R(h) - R_S(h)| \geq \epsilon\}P{hHsupR(h)RS(h)ϵ}hHP{R(h)RS(h)ϵ}

≤2∣H∣exp⁡(−2nϵ2M2)\leq 2|H|\exp\left(-\frac{2n\epsilon^2}{M^2}\right)2∣Hexp(M22nϵ2)

5.4 泛化界

δ=2∣H∣exp⁡(−2nϵ2M2)\delta = 2|H|\exp\left(-\frac{2n\epsilon^2}{M^2}\right)δ=2∣Hexp(M22nϵ2),解得:

ϵ=Mlog⁡∣H∣+log⁡(2/δ)2n\epsilon = M\sqrt{\frac{\log|H| + \log(2/\delta)}{2n}}ϵ=M2nlogH+log(2/δ)

因此,以至少1−δ1-\delta1δ的概率:
sup⁡h∈H∣R(h)−RS(h)∣≤Mlog⁡∣H∣+log⁡(2/δ)2n\sup_{h \in H}|R(h) - R_S(h)| \leq M\sqrt{\frac{\log|H| + \log(2/\delta)}{2n}}hHsupR(h)RS(h)M2nlogH+log(2/δ)

关键洞察:假设类越大(∣H∣|H|H越大),泛化界越松!


6. VC维理论

6.1 动机

当假设类HHH包含无穷多个假设时,如何分析泛化性能?

核心思想:虽然HHH可能无穷大,但对于固定的训练集,我们可以将假设按照它们在训练集上的预测结果进行分组。

6.2 增长函数

定义:假设类HHH的增长函数定义为:
ΠH(n)=max⁡X1,…,Xn∣{(h(X1),…,h(Xn)):h∈H}∣\Pi_H(n) = \max_{X_1,\ldots,X_n} |\{(h(X_1),\ldots,h(X_n)) : h \in H\}|ΠH(n)=X1,,Xnmax{(h(X1),,h(Xn)):hH}

直观含义:对于nnn个样本点,假设类HHH最多能产生多少种不同的分类结果。

6.3 打散(Shattering)

定义:数据点集合{X1,…,Xn}\{X_1,\ldots,X_n\}{X1,,Xn}被假设类HHH打散,当且仅当HHH能实现所有可能的二元预测,即:
ΠH(n)=2n\Pi_H(n) = 2^nΠH(n)=2n

6.4 VC维

定义:假设类HHH的VC维是能被HHH完全打散的最大集合的大小:
VC-dim(H)=max⁡{n:ΠH(n)=2n}\text{VC-dim}(H) = \max\{n : \Pi_H(n) = 2^n\}VC-dim(H)=max{n:ΠH(n)=2n}

6.5 VC维示例

示例1:区间函数类

H={x↦1{x∈(a,b)}:a<b∈R}H = \{x \mapsto 1_{\{x \in (a,b)\}} : a < b \in \mathbb{R}\}H={x1{x(a,b)}:a<bR}

  • ΠH(1)=2\Pi_H(1) = 2ΠH(1)=2
  • ΠH(2)=4\Pi_H(2) = 4ΠH(2)=4
  • ΠH(3)=7<23\Pi_H(3) = 7 < 2^3ΠH(3)=7<23

VC维 = 2

示例2:R2\mathbb{R}^2R2中的线性分类器

H={(x1,x2)↦1{w1x1+w2x2+b≥0}:w1,w2,b∈R}H = \{(x_1,x_2) \mapsto 1_{\{w_1x_1 + w_2x_2 + b \geq 0\}} : w_1,w_2,b \in \mathbb{R}\}H={(x1,x2)1{w1x1+w2x2+b0}:w1,w2,bR}

通过几何分析可以证明:

  • 可以打散3个点
  • 不能打散任意4个点

VC维 = 3

6.6 Sauer引理

定理:设假设类HHH的VC维为ddd,则对所有n≥dn \geq dnd
ΠH(n)≤(end)d\Pi_H(n) \leq \left(\frac{en}{d}\right)^dΠH(n)(den)d

6.7 基于VC维的泛化界

通过复杂的分析(涉及Rademacher复杂度等高级技术),可以证明:

以至少1−δ1-\delta1δ的概率:
sup⁡h∈H∣R(h)−RS(h)∣≤M32(dlog⁡(en/d)+log⁡(8/δ))n\sup_{h \in H}|R(h) - R_S(h)| \leq M\sqrt{\frac{32(d\log(en/d) + \log(8/\delta))}{n}}hHsupR(h)RS(h)Mn32(dlog(en/d)+log(8/δ))

其中dddHHH的VC维。

6.8 PAC可学习性结论

定理:如果假设类HHH具有有限的VC维ddd,则HHH是PAC可学习的,所需样本复杂度为:
n=O(M2ϵ2(dlog⁡(en/d)+log⁡(8/δ)))n = O\left(\frac{M^2}{\epsilon^2}(d\log(en/d) + \log(8/\delta))\right)n=O(ϵ2M2(dlog(en/d)+log(8/δ)))

这是关于1/ϵ1/\epsilon1/ϵ1/δ1/\delta1/δ的多项式,满足PAC学习的要求。


7. 实践指导

7.1 偏差-方差权衡

从我们的分析可以看出:

  • 简单模型(小HHH):近似误差大,估计误差小
  • 复杂模型(大HHH):近似误差小,估计误差大

最优策略:根据数据量选择合适复杂度的模型。

7.2 样本复杂度指导

根据VC维理论,学习一个VC维为ddd的假设类,大约需要:
n≈O(dϵ2)n \approx O\left(\frac{d}{\epsilon^2}\right)nO(ϵ2d)
个样本来达到ϵ\epsilonϵ精度。

实践经验:通常需要至少10d10d10d20d20d20d个训练样本。

7.3 模型选择建议

  1. 数据充足时:可以选择复杂模型(深度神经网络等)
  2. 数据稀少时:应选择简单模型(线性模型、浅层网络等)
  3. 使用正则化:在复杂模型中加入正则化项,等效于减小假设类大小

总结

本文介绍了机器学习理论中的核心概念:

  1. 替代损失函数帮助我们将难优化的分类问题转化为可优化的形式
  2. PAC学习框架提供了分析学习算法的数学工具
  3. VC维理论将泛化能力与假设类复杂度联系起来
  4. 偏差-方差权衡指导我们在实践中选择合适复杂度的模型

核心洞察:机器学习的本质是在表达能力泛化能力之间找到平衡点。理解这一点对于设计和应用机器学习算法至关重要。


进一步阅读

  • 《统计学习理论基础》(Vapnik)
  • 《机器学习基础》(Mohri, Rostamizadeh, Talwalkar)
  • 《模式识别与机器学习》(Bishop)

通过理解这些理论基础,我们能够更好地设计机器学习系统,避免过拟合,并在有限数据下获得更好的泛化性能。

http://www.xdnf.cn/news/1397539.html

相关文章:

  • HiFi-GAN模型代码分析
  • 理解JVM
  • web渗透ASP.NET(Webform)反序列化漏洞
  • psql介绍(PostgreSQL命令行工具)(pgAdmin内置、DBeaver、Azure Data Studio)数据库命令行工具
  • 【OpenGL】LearnOpenGL学习笔记17 - Cubemap、Skybox、环境映射(反射、折射)
  • sql简单练习——随笔记
  • 打工人日报#20250830
  • 鸿蒙ArkUI 基础篇-12-List/ListItem-界面布局案例歌曲列表
  • 音视频学习(六十二):H264中的SEI
  • [字幕处理]一种使用AI翻译mkv视频字幕操作流程 飞牛
  • 【Blender】二次元人物制作【一】:二次元角色头部建模
  • Java的Optional实现优雅判空新体验【最佳实践】
  • 【已解决】could not read Username for ‘https://x.x.x‘: No such device or address
  • 算法(③二叉树)
  • leetcode算法刷题的第二十二天
  • DVWA靶场通关笔记-文件包含(Impossible级别)
  • 数据治理进阶——解读数据治理体系基础知识【附全文阅读】
  • 【DreamCamera2】相机应用修改成横屏后常见问题解决方案
  • 用户态网络缓冲区设计
  • MQTT 连接建立与断开流程详解(二)
  • Vue3 + GeoScene 地图点击事件系统设计
  • 学习大模型,还有必要学习机器学习,深度学习和数学吗
  • DAEDAL:动态调整生成长度,让大语言模型推理效率提升30%的新方法
  • Oracle下载安装(学习版)
  • Nacos-3.0.3 适配PostgreSQL数据库
  • 基于Spring Boot小型超市管理系统的设计与实现(代码+数据库+LW)
  • 如何理解 nacos 1.x 版本的长轮询机制
  • 从咒语到意念:编程语言的世纪演进与人机交互的未来
  • Scala 2安装教程(Windows版)
  • Java网络编程与反射