💻
QMMMS的笔记
博客
  • QMMMS的笔记
  • agent
    • MCP的背景、原理和开发
    • Agent 历史与背景
    • Agentic Workflows
    • 环境检查与基础工具
    • Tool Call
    • 工具与运行时的值
    • temp
    • 处理 Tool Call error
    • trick
  • algorithm
    • 线性结构
    • 二叉树
    • 图
    • 查找
    • 排序
    • 动态规划
    • 优化方法
    • 数学
    • 迁移至Java
  • computer_composition
    • 系统总线
    • 存储器
    • 输入输出系统
    • 计算机的运算方法
    • 指令系统
    • 补充
  • computer_network
    • 引入
    • 应用层
    • 传输层
    • 网络层(数据平面)
    • 网络层(控制平面)
    • 链路层
    • 常见问答
    • 实验
  • database
    • SQL实战
    • 关系代数
    • 数据库设计
    • 规范化
    • 数据库基本概念
    • 查询原理
    • 数据库恢复技术
    • 并发控制
  • dev_tools
    • Git
    • Nginx
    • Spring
    • LangChain
    • PyTorch Cheat Sheet
    • MyBatis
    • MySQL Cheat Sheet
    • MySQL 补充
    • Redis
    • Docker
    • RocketMQ
    • Chrome
  • linux
    • Linux基础命令与使用
    • 文件与权限
    • 文件与目录操作
    • 权限属性高级
    • 命令与文件的查找
    • 文件压缩和打包
    • vim编辑器
    • shell变量
    • 命令补充
    • 数据流重定向
    • 管道命令
    • shell脚本
    • 用户管理
    • 用户间交流
    • 计划任务
    • 进程管理
    • 软件管理
    • 认识系统服务
    • 运维常用命令
    • 常用命令
  • llm
    • 大规模语言模型概述
    • 分布式训练概述
    • 有监督微调概述
    • 强化学习与LLM
    • LLM评估概述
    • 大模型应用
    • 理解大模型
    • 量化
    • 预训练
    • 上下文学习
  • machine_learning
    • 引入
    • 大致正确学习
    • 一致收敛
    • 偏差还是过拟合?
    • 可学习的充要条件
    • 非均匀可学习性
    • 计算复杂性
  • mathematics
    • 概率与统计基础
    • 线性代数基础
  • operating_system
    • 操作系统基本概念
    • 进程和线程
    • 同步,互斥与死锁
    • 内存管理
    • 文件系统
    • I/O系统
    • 保护与安全
    • 《现代操作系统》
  • statistical_learning
    • 统计学习引入
    • 线性回归
    • 分类
    • 重抽样方法
    • 线性模型选择与正则化
    • 非线性模型
    • 基于树的方法
    • 支持向量机
    • 无指导学习
    • 马尔科夫链和蒙托卡罗方法简明理解
    • R语言速查
  • deep_learning
    • basic_concepts
      • 逻辑回归与损失函数
      • 神经网络
      • 正则化、预处理、权重初始化
      • 优化算法
      • 机器学习策略
      • 复习:从计算机视觉的角度
      • 卷积神经网络
      • 深度卷积网络示例
      • 计算机视觉任务
      • 循环神经网络
      • 自然语言处理任务
      • 注意力
      • Transformers 家族
      • 显卡扫盲
      • 强化学习概述
    • semi-supervise
      • 半监督学习简介
      • Consistency Regularization
      • Proxy-label Methods
      • Holistic Methods
      • Generative Models
      • Graph-Based SSL
      • Self-Supervision for SSL
      • Other SSL methods
  • programming
    • cpp
      • STL
      • C++基础
      • 内存管理
      • 面向对象
    • java
      • 环境和介绍
      • 注释
      • String
      • 面向对象思想
      • Object
      • 包
      • 访问权限修饰符
      • 初始化块
      • 接口
      • 内部类
      • 注解
      • 枚举
      • 集合框架
      • List
      • Map
      • 泛型
      • 迭代
      • IO与流
      • 序列化
      • 异常
      • Lambda
      • Stream流
      • Socket
      • 缓冲
      • 命名规范
      • 拆箱装箱
      • 值传递
      • 深拷贝
      • 反射
      • JVM
      • 并发编程基础
    • python
      • 并发编程
      • 环境管理
  • software_engineering
    • basic_concepts
      • 系统分析与设计概述
      • 规划
      • 需求分析与原型设计
      • 项目管理
      • 建模
      • 数据库设计
      • 架构
      • 配置管理
      • 测试管理
      • 安全
      • 编码原则
      • 微服务
      • 补充内容
    • software_testing
      • CMMI基础
      • PPQA与SQA
      • 软件测试基础
      • 黑盒测试
      • 白盒测试
      • 集成测试
      • 系统测试
      • 测开面试补充
由 GitBook 提供支持
在本页
  • 符号
  • 错误率
  • 使用归纳偏好
  • 差的训练样本
在GitHub上编辑
  1. machine_learning

引入

符号

X\mathcal{X}X 表示输入空间(input space),即数据的特征空间或样本空间。例如,在图像分类任务中,X\mathcal{X}X 可能是所有可能图像的集合

A⊆XA \subseteq \mathcal{X}A⊆X 表示定义在 X\mathcal{X}X 上的某个集合(event),也就是一个子集。例如,假设我们从图像集中提取出所有属于某个类别的图像,那么这些图像构成了集合 AAA

在许多情况下,我们令 AAA 作为一个事件,函数的表示形式为 π:X→{0,1}\pi : \mathcal{X} \to \{0, 1\}π:X→{0,1} 。换句话说,A={x∈X:π(x)=1}A= \{ x \in \mathcal{X} : \pi(x) = 1 \}A={x∈X:π(x)=1} 表示某个点是否属于 AAA

D\mathcal{D}D 表示概率分布(distribution)。 D(A)\mathcal{D}(A)D(A) 表示某个点 x∈Ax \in Ax∈A 的概率。我们也使用符号 Px∼D[π(x)]\mathbb{P}_{x \sim \mathcal{D}}[\pi(x)]Px∼D​[π(x)] 来表达 D(A)\mathcal{D}(A)D(A),P\mathbb{P}P 表示概率(probability)

错误率

我们将一个预测规则 h:X→Yh : \mathcal{X} \to \mathcal{Y}h:X→Y 的错误率定义为:

LD,f(h)≜Px∼D[h(x)≠f(x)]≜D({x:h(x)≠f(x)})L_{\mathcal{D},f}(h) \triangleq \mathbb{P}_{x \sim \mathcal{D}}[h(x) \neq f(x)] \triangleq \mathcal{D}(\{x : h(x) \neq f(x)\})LD,f​(h)≜Px∼D​[h(x)=f(x)]≜D({x:h(x)=f(x)})

也就是说,函数 hhh 的错误率是从分布 D\mathcal{D}D 中随机选择一个 xxx,并且 h(x)≠f(x)h(x) \neq f(x)h(x)=f(x) 的概率。

error 的其他别名:generalization error、risk、true error of h

由于 D\mathcal{D}D 和 fff 未知,我们只能使用训练损失:

LS(h)≜∣{i∈[m]:h(xi)≠yi}∣mL_{S}(h) \triangleq \frac{\left| \left\{ i \in [m] : h(x_i) \neq y_i \right\} \right|}{m}LS​(h)≜m∣{i∈[m]:h(xi​)=yi​}∣​

其中 [m]={1,…,m}[m] = \{1, \dots, m\}[m]={1,…,m}

其他别名:empirical error 、empirical risk

empirical 这个名字是怎么来的?我的理解是,因为训练集只是分布中的一小部分,我们学到的是经验,而不是真理。empirical error 也是只是真实 risk 的一种估计而已

我们的目标是尽量减少这个损失,即经验风险最小化ERM(Empirical Risk Minimization)

使用归纳偏好

减少过拟合的一种方式是使用归纳偏好(Inductive Bias)。预先设定一个假设类 H\mathcal{H}H ,每个 h∈Hh \in \mathcal{H}h∈H 是一个将 X\mathcal{X}X 映射到 Y\mathcal{Y}Y 的函数。对于给定的类 H\mathcal{H}H 和一个训练样本 SSS,使用经验风险最小化(ERM)的机器学习算法从 H\mathcal{H}H 中选择一个在 SSS 上误差最小的预测函数 h∈Hh \in \mathcal{H}h∈H

ERMH(S)∈arg⁡min⁡h∈HLS(h)\text{ERM}_{\mathcal{H}}(S) \in \arg\min_{h\in \mathcal{H}}L_S(h)ERMH​(S)∈argh∈Hmin​LS​(h)

通过限制机器学习算法在哪一类上选择预测函数,我们引入了先验知识。找到一个合适的函数类 H\mathcal{H}H 成为了另一个问题。

差的训练样本

即使我们的训练集是独立同分布随机地从全集取出的,但仍然有所有训练数据都不具备代表性的情况

例如,如果要训练一个判断西瓜甜不甜的机器学习算法,但不幸我们买回来当训练数据集的西瓜全部不甜

数据集不具备代表性?我们很感兴趣。换句话说,我们想对抽出不具备代表性的 m 元实例组的概率进行上界估计。(因为数据不具备代表性,机器学习算法肯定会失败)

我们设置一个准确度参数 ϵ\epsilonϵ,定义成功的机器学习算法为 LD,f(h)≤ϵL_{\mathcal{D},f}(h) \leq \epsilonLD,f​(h)≤ϵ ,反之则失败。再令S∣x=(x1,...xm)S|_x=(x_1, ... x_m)S∣x​=(x1​,...xm​) 为训练集,那么这个“上界”为:

Dm({S∣x:LD,f(h)>ϵ})\mathcal{D}^m(\{ S|_x :L_{\mathcal{D},f}(h) > \epsilon \})Dm({S∣x​:LD,f​(h)>ϵ})

坏假设 HB\mathcal{H}_BHB​ 是:

HB={h∈H:L(D,f)(h)>ϵ}\mathcal{H}_{B}=\{h\in\mathcal{H}:L_{(\mathcal{D},f)}(h)>\epsilon\}HB​={h∈H:L(D,f)​(h)>ϵ}

这些误导的样本 MMM 是:

M={S∣x:∃h∈HB,LS(h)=0}M=\{S|_{x}:\exists h\in\mathcal{H}_{B},L_{S}(h)=0\}M={S∣x​:∃h∈HB​,LS​(h)=0}

即对于每个 S∣x∈MS|_x \in MS∣x​∈M,存在一个 “坏” 假设 h∈HBh\in\mathcal{H}_Bh∈HB​,在 S∣xS|_xS∣x​ 上看起来像是一个 “好” 假设。即:

LS(h)=0L_{S}(h_{}) = 0LS​(h​)=0

那么:

{S∣x:L(D,n)(hs)>ϵ}⊆M\{S|_{x}:L_{(\mathcal{D},n)}(h_{s})>\epsilon\}\subseteq M{S∣x​:L(D,n)​(hs​)>ϵ}⊆M

那么:

M=⋃h∈HB{S∣x:LS(h)=0}M=\bigcup_{h\in\mathcal{H}_{B}} \{S|_{x}:L_{S}(h)=0\}M=h∈HB​⋃​{S∣x​:LS​(h)=0}

因此:

Dm({S∣x:L(D,f)(hS)>ϵ})≤Dm(M)=Dm(⋃h∈HB{S∣x:LS(h)=0})\mathcal{D}^m(\{S|_x : L_{(\mathcal{D}, f)}(h_S) > \epsilon\}) \leq \mathcal{D}^m(M) = \mathcal{D}^m(\bigcup_{h \in \mathcal{H}_B} \{S|_x : L_S(h) = 0\})Dm({S∣x​:L(D,f)​(hS​)>ϵ})≤Dm(M)=Dm(h∈HB​⋃​{S∣x​:LS​(h)=0})

由于 D(A∪B)≤D(A)+D(B)\mathcal{D}(A\cup B) \leq \mathcal{D}(A) + \mathcal{D}(B)D(A∪B)≤D(A)+D(B),那么:

Dm({S∣x:L(D,f)(hS)>ϵ})≤∑h∈HBDm({S∣x:LS(h)=0})\mathcal{D}^m(\{S|_x : L_{(\mathcal{D}, f)}(h_S) > \epsilon\}) \leq \sum_{h \in \mathcal{H}_B} \mathcal{D}^m(\{S|_x : L_S(h) = 0\})Dm({S∣x​:L(D,f)​(hS​)>ϵ})≤h∈HB​∑​Dm({S∣x​:LS​(h)=0})

又因为:

Dm({S∣x:LS(h)=0})=Dm({S∣x:∀i,h(xi)=f(xi)})=∏i=1mD({xi:h(xi)=f(xi)})\begin{align} \mathcal{D}^m(\{S|_x : L_S(h) = 0\}) &= \mathcal{D}^m(\{S|_x : \forall i, h(x_i) = f(x_i)\}) \\ &= \prod_{i=1}^m \mathcal{D}(\{x_i : h(x_i) = f(x_i)\}) \end{align}Dm({S∣x​:LS​(h)=0})​=Dm({S∣x​:∀i,h(xi​)=f(xi​)})=i=1∏m​D({xi​:h(xi​)=f(xi​)})​​

在我们之前的定义中:

D({xi:h(xi)=yi})=1−L(D,f)(h)≤1−ϵ\mathcal{D}(\{x_i : h(x_i) = y_i\}) = 1 - L_{(\mathcal{D}, f)}(h) \leq 1 - \epsilonD({xi​:h(xi​)=yi​})=1−L(D,f)​(h)≤1−ϵ

又因为 1−ϵ≤e−ϵ1 - \epsilon \leq e^{-\epsilon}1−ϵ≤e−ϵ,所以:

Dm({S∣x:LS(h)=0})≤(1−ϵ)m≤e−ϵm\mathcal{D}^m(\{S|_x : L_S(h) = 0\}) \leq (1 - \epsilon)^m \leq e^{-\epsilon m}Dm({S∣x​:LS​(h)=0})≤(1−ϵ)m≤e−ϵm

最终,我们找到了这个上界:

Dm({S∣x:L(D,f)(hS)>ϵ})≤∣HB∣e−ϵm≤∣H∣e−ϵm\mathcal{D}^m(\{S|_x : L_{(\mathcal{D}, f)}(h_S) > \epsilon\}) \leq |\mathcal{H}_B| e^{-\epsilon m} \leq |\mathcal{H}| e^{-\epsilon m}Dm({S∣x​:L(D,f)​(hS​)>ϵ})≤∣HB​∣e−ϵm≤∣H∣e−ϵm

用图来解释,大圆中的每个点代表一个可能的实例 m 元组。每个彩色椭圆表示“误导”实例 m 元组的集合,会导致某个“糟糕”的预测器 h∈HBh \in \mathcal{H}_Bh∈HB​ 。每当遇到误导性的训练集 S 时,ERM 可能会发生过拟合。

也就是说,对于某些 h∈HBh \in \mathcal{H}_Bh∈HB​,我们有 LS(h)=0L_S(h)=0LS​(h)=0。上界保证了对于每个单独的糟糕假设 h∈HBh \in \mathcal{H}_Bh∈HB​​,最多有 (1−ϵ)m(1 - \epsilon)^m(1−ϵ)m 比例的训练集会产生误导。特别地,m 越大,这些彩色椭圆的大小就越小。并集界限形式化了这样一个事实:对于某些 h∈HBh \in \mathcal{H}_Bh∈HB​​(即,集合 M 中的训练集)而言,误导性训练集的区域大小最多是这些彩色椭圆区域的总和。因此,它被 ∣HB∣|\mathcal{H}_B|∣HB​∣ 乘以最大椭圆大小所界定。任何椭圆外的样本 S 都不会导致 ERM 规则过拟合。

由此产出的推论为,当我们取一个足够大的 m,在一个有限的假设类 H\mathcal{H}H上,我们有 1−δ1-\delta1−δ 的概率,认为 ERMHERM_{\mathcal{H}}ERMH​ 的损失小于 ϵ\epsilonϵ

上一页machine_learning下一页大致正确学习

最后更新于6个月前