【花书第五章】汇报用

5.1.1 任务T

🎯 机器学习任务概览

机器学习任务通常定义为:机器学习系统 应如何处理样本。

  • 样本:从对象或事件中收集的 已量化特征 的集合,通常表示为向量 x∈Rn\mathbf{x}\in\mathbb{R}^nx∈Rn。
  • 特征:如一张图片的像素值;一个西瓜的纹路"宽"or"窄"、瓜蒂"弯曲"or"直"。

📚 常见机器学习任务类型

  1. 分类任务

    · 目标:将 输入数据 分配到 k 个类别中的某一类。

    · 输出:函数 f: Rn→{1,...,k}\mathbb{R}^n \to \{1, \dots, k\}Rn→{1,...,k} 或 类别的概率分布如{0.66,0.33,0.01}。

    · 例子:

    ①判断西瓜(甜or不甜)

    ②图像分类(猫or狗)

    ③手写数字识别(0~9)

  2. 输入缺失分类

    · 特点:输入特征可能部分缺失

    · 方法:学习一组函数或联合概率分布。(对应不同缺失情况)

例如:

假设输入有 n 个变量(特征),那么可能的缺失情况有多少种?

每个变量要么 "缺失",要么 "不缺失",因此总共有 2n 种可能的缺失组合。

具体地,当 n=2(两个变量 x₁、x₂)时:

缺失情况 1:x₁缺失,x₂不缺失 → 需要函数 f₁(仅用 x₂做预测);

缺失情况 2:x₂缺失,x₁不缺失 → 需要函数 f₂(仅用 x₁做预测);

缺失情况 3:x₁和 x₂都不缺失 → 需要函数 f₃(用 x₁和 x₂做预测);

缺失情况 4:x₁和 x₂都缺失 → 需要函数 f₄(用默认规则或先验信息做预测)。

这里的 f₁、f₂、f₃、f₄就是 "一组函数",每个函数对应一种特定的缺失情况(即变量的存在 / 缺失组合)。
与 "联合概率分布" 的对比:

如果不学习这 2n 个函数,而是学习联合概率分布(如 P (标签 | x₁,x₂,...,xₙ)),则无需为每种缺失情况单独设计函数。

复制代码
· 应用:医疗诊断(某些测试昂贵或有害)。
  1. 回归任务

    · 目标:预测连续数值。

    · 输出:函数 f:Rn→Rf: \mathbb{R}^n \to \mathbb{R}f:Rn→R 。

    · 例子:

    ①预测波士顿房价

    ②预测股票价格

  2. 转录

    · 目标:将非结构化数据 转换为 离散文本

    · 例子:

    ①光学字符识别(图片 → 文字)

    ②语音识别(音频 → 文字)

  3. 机器翻译

    · 目标:将一种语言的序列 转换 为另一种语言。

    · 例子:英语 → 法语

  4. 结构化输出

    · 特点:输出是具有内部关系的复杂结构(如树、序列、图)。

    · 例子:

    ①语法分析(句子 → 语法树)

  5. 异常检测

    · 目标:识别 与正常模式不符的异常样本

    · 例子:信用卡欺诈检测

  6. 合成与采样

    · 目标:生成与训练数据相似的新样本。

    · 应用:

    ①游戏纹理生成

    ②语音合成

  7. 缺失值填补

    · 目标:补全样本中缺失的特征值。(众数,平均值)

  8. 去噪

    · 目标:从损坏的输入中恢复原始干净样本。

    · 输出:干净样本 x 或条件分布 p(x∣x~)p(x \mid \tilde{x})p(x∣x~) 。

  9. 密度估计 / 概率质量函数估计

    · 目标:学习数据的概率分布 pmodel(x)p_{\text{model}}(x)pmodel(x) 。

    · 用途:可用于缺失值填补、采样等,但实际中计算可能困难。


💡 总结要点

· 机器学习任务的核心 是:从已知样本中学习并推广到新数据。

· 不同任务对应不同的输入-输出关系,包括分类、回归、生成、修复等。

· 许多任务(如缺失值填补、去噪)可通过对概率分布的建模来解决。

5.1.2 性能度量P

🎯 性能度量P 核心概念

  1. 性能度量P是一个定量指标 ,用于评估机器学习算法在执行 特定任务T 时的能力。
  2. 选择合适的P 至关重要,因为它直接决定了 如何衡量一个模型的"好坏"。

📊 常见的性能度量方法

性能度量的选择 与 任务类型 紧密相关,取决于任务的实际应用场景和需求。

在某些任务中,从模型中得到理想的度量值在计算上可能是不可行 的。在这种情况下,我们必须设计一个替代标准 或理想标准的良好近似来评估模型。

🔬 实际用处:测试集

为了真实反映模型的泛化能力 ,性能度量必须在 测试集 上进行评估

· 测试集:是与训练集完全分开、在训练过程中未使用过的数据集合。

· 目的:这能更好地预测模型在真实世界、未见过数据上的性能。

5.1.3 经验E

经验,即学习过程中所使用的数据。通常来自于一个数据集 ,即多个样本 (或数据点)的集合

根据数据集是否包含标签,可以分为两大类:

  1. 无监督学习

    · 数据特征:数据集包含许多特征 ,但没有标签/目标

    · 学习目标:学习数据中有用的结构或性质。

    · 典型任务:

    ①显式:密度估计(学习概率分布 p(x) )

    ②隐式:合成与采样、去噪

    ③其他:聚类(将数据分成相似的集合)

  2. 监督学习

    · 数据特征:数据集中的每个样本都包含一个 标签目标

    · 学习目标:学习从特征 x 到标签 y 的映射,通常是估计条件分布 p(y|x) 。

    · 典型任务:回归、分类、结构化输出(如翻译、语法分析)。

    【ps:就像有"老师"提供了正确答案来指导学习系统。】

重要说明:

· 界限模糊 :无监督与监督学习并非 完全对立 。通过概率论(如链式法则、贝叶斯定理),许多问题可以相互转化

· 传统划分:回归、分类等被视为监督学习;密度估计被视为无监督学习。

🔄 其他学习范式

除了上述两种主要范式,还存在一些变体:

· 半监督学习:数据集中的一部分 样本有标签,另一部分没有标签。

· 多示例学习:样本的集合被标记,但集合内的单个样本没有标记

· 强化学习:并不是训练于一个固定的数据集上。其算法会与环境交互 ,并通过反馈回路学习

5.1.4 一个简单的示例:线性回归算法

用以说明一个机器学习算法是如何通过经验(数据) 来改进其在任务 上的性能的。

  1. 任务 (T)
    · 任务类型:回归问题。

· 目标:建立一个系统,将向量 x∈Rn\mathbf{x} \in \mathbb{R}^nx∈Rn 作为输入,预测标量 y∈Ry \in \mathbb{R}y∈R 作为输出。

· 模型输出:模型预测值 y^\hat{y}y^ 是输入的线性函数。

① 基本形式: y^=wTx\hat{y} = \mathbf{w}^T \mathbf{x}y^=wTx

② 常用形式(带截距): y^=wTx+b\hat{y} = \mathbf{w}^T \mathbf{x} + by^=wTx+b

· 参数:权重 w\mathbf{w}w (控制每个特征对预测的影响方向和大小)和偏置 b (使预测线可以不经过原点)。


  1. ⚖️ 性能度量 §

· 度量指标:均方误差 (MSE)。

· 定义:在测试集 (X(test),y(test))(X^{\text{(test)}}, \mathbf{y}^{\text{(test)}})(X(test),y(test)) 上,模型预测值 y^(test)\hat{\mathbf{y}}^{\text{(test)}}y^(test) 与真实目标值 y(test)\mathbf{y}^{\text{(test)}}y(test) 之间的平均平方差

· 公式:
MSEtest=1m∑i(y^(test)−y(test))i2=1m∥y^(test)−y(test)∥22\text{MSE}_{\text{test}} = \frac{1}{m} \sum_i (\hat{y}^{\text{(test)}} - y^{\text{(test)}})_i^2 = \frac{1}{m} \| \hat{\mathbf{y}}^{\text{(test)}} - \mathbf{y}^{\text{(test)}} \|_2^2MSEtest=m1∑i(y^(test)−y(test))i2=m1∥y^(test)−y(test)∥22

· 目标:MSE 越小,模型性能越好。理想情况下为0。


  1. 📚 经验 (E) 与 算法

经验来源

· 训练集:由 m 个样本组成的 (X(train),y(train))(X^{\text{(train)}}, \mathbf{y}^{\text{(train)}})(X(train),y(train)),用于学习模型参数。

学习算法

· 核心思想:通过 最小化 训练集上的均方误差 MSEtrain\text{MSE}_{\text{train}}MSEtrain 来寻找最优参数 w\mathbf{w}w 。

· 数学推导:通过求解 ∇wMSEtrain=0\nabla_{\mathbf{w}} \text{MSE}_{\text{train}} = 0∇wMSEtrain=0 得到解析解。

· 最优解(正规方程):
w=(X(train)TX(train))−1X(train)Ty(train)\mathbf{w} = \left( {X^{\text{(train)}}}^T X^{\text{(train)}} \right)^{-1} {X^{\text{(train)}}}^T \mathbf{y}^{\text{(train)}}w=(X(train)TX(train))−1X(train)Ty(train)

· 几何直观:如 图5.1 所示,学习到的权重 w1w_1w1 确定了一条直线,使得该直线尽可能接近所有训练数据点。

📖 总结与启示

  1. 明确定义任务 (T):要解决什么问题?(回归)
  2. 选择合适的性能度量 §:如何评价好坏?(MSE)
  3. 利用经验 (E):如何使用数据?(在训练集上最小化MSE)

5.2 容量,过拟合和欠拟合

泛化:机器学习的根本目标 不是模型在训练集上表现多好,而是在它没见过的数据上表现良好。这种能力被称为泛化

训练误差与测试误差:

· 训练误差:模型在训练集上的误差。训练机器学习模型的目标就是,降低训练误差。

· 泛化误差(测试误差):模型在新数据 (测试集)上的误差期望。优化模型的目标是使泛化误差也很低。

独立同分布假设:

但是,训练机器学习模型时,我们只能接触到训练数据,想让模型在测试集上也表现良好,这依赖于一个基本假设:独立同分布假设

· 训练集和测试集中的每一个样本都是彼此独立的。

· 并且它们都采样自相同的 、一个隐藏的数据生成分布 pdatap_{data}pdata,即同分布的 。

综上,训练误差和测试误差之间的关系就明确了。所以通常而言,对于一个固定的模型 ,它的训练误差期望和测试误差期望是相同的 ,因为他们来自同一个分布,使用了相同的数据集生成过程。

欠拟合与过拟合:

‍但是在使用机器学习算法时,并不会提前固定采样数据参数,然后采样两个数据集。而是采样得到训练集,然后挑选参数降低训练集误差,然后采样得到测试集误差。这个过程就引入了两个对立的问题:

容量:

容量指的是模型拟合各种函数 的能力。通过调整模型容量,我们可以控制模型是否偏向于过拟合或者欠拟合。

  • 容量过低:模型不够灵活,可能导致欠拟合。

  • 容量过高:模型过于灵活,可能导致过拟合。

如何控制模型容量:

选择假设空间 ----即模型能够选择的所有可能函数的集合。

  • 线性模型(欠拟合):无法刻画真实数据的曲率。

  • 九次多项式(过拟合):虽然能表示真实函数,但因为它有太多参数,它更可能去"记住"训练数据点,而不是学习到真实的规律,因此泛化能力差。

  • 二次模型(最佳):其容量恰好匹配了任务本身的真实结构(数据本身就是二次函数生成的),因此它能很好地泛化。

最终结论:机器学习算法的效果最佳时,其 容量任务的真实复杂度训练数据的数量 相匹配。

泛化误差随容量变化呈 U 形曲线

5.2.1没有免费午餐定理

  • 对于给定的所有学习算法和所有可能的目标函数,没有一个算法能够在所有的任务或问题上都比其他算法更好。

  • 换句话说,不同的算法在不同类型的问题上可能表现不同,但没有一个算法能在所有问题上都最优。

  • 脱离具体问题背景谈论算法 的"好坏"是没有意义的。机器学习的力量不在于"通用 ",而在于"针对"。

5.2.2正则化

一、为什么需要正则化?

"没有免费午餐定理"告诉我们,不存在通用的最优算法。

因此,我们必须让算法对我们所关心的任务产生偏好,更具有针对性。正则化就是引入这种偏好的核心技术,其根本目标是:降低泛化误差,而非仅仅降低训练误差。

二、什么是正则化?

  1. 正则化是指修改学习算法,通过向损失函数添加一个惩罚项 (即正则化项),来引导模型偏好某些特定的解决方案。

    这个额外的项通常与模型的参数(如权重) 有关,用来惩罚 过大的权重

    常见的正则化项包括 L1 正则化 (绝对值惩罚)和 L2 正则化(平方惩罚)。

  2. 核心思想:在 "拟合训练数据" 和 "偏好特定简单性" 之间进行权衡。

  3. 最终目的:防止过拟合,提高模型在新数据上的泛化能力。

三、如何控制算法偏好?

我们可以通过两种基本方式来控制算法的行为:

  1. 限制 假设空间 的数量(容量):

例如:在多项式回归中,直接限制 多项式的最高次数 。这相当于硬性排除 了一部分复杂的函数

  1. 引入对特定函数的偏好(正则化):

它不直接排除函数,而是通过修改优化目标,使算法更倾向于选择具有某种特性的函数,如参数值较小的函数。

极端情况 :对某个函数给予无限大的厌恶,就等于将它从假设空间中移除

四、具体示例:权重衰减

方法:在原来的损失函数(均方误差MSE)上,增加一个与权重平方成正比的惩罚项。

J(w)=MSEtrain+λw⊤wJ(w) = \text{MSE}_{\text{train}} + \lambda w^\top wJ(w)=MSEtrain+λw⊤w

组成部分:

  • MSEtrain\text{MSE}_{\text{train}}MSEtrain:衡量模型对训练数据的拟合程度。
  • λw⊤w\lambda w^\top wλw⊤w:正则化项,衡量模型复杂度(偏好小权重)。
  • λ\lambdaλ:超参数,控制偏好强度

λ\lambdaλ的作用:

  • λ=0\lambda = 0λ=0:无偏好,模型可能过拟合
  • λ\lambdaλ适当:在拟合数据和模型简单性之间取得良好平衡,缓解过拟合。
  • λ\lambdaλ过大:过度偏好简单模型,导致模型无法捕捉数据规律,造成欠拟合。

5.3 超参数和验证集

一、超参数

超参数是控制学习算法行为的配置设置。

关键区别 :其值不能 从训练数据中直接学习 得出(与模型参数w和b相反)。

有时一个选项被设为学习算法不用学习的超参数是因为它太难优化了,不适合在训练集上学习。

示例 :多项式回归中的多项式次数 、权重衰减中的惩罚系数 λ、学习率。

二、验证集:用于"训练"超参数 的专用数据集

区别于测试集,它是用来估计泛化误差的,所以它不能参与到模型的选择中去,包括设定超参数。所以从训练数据中构建验证集。

方法:从原始训练数据 中划分出一部分,创建一个专门的验证集

数据划分:通常的做法是,将全部数据分为三部分:

  • 训练集:用于学习模型参数(w, b)。

  • 验证集:用于评估 不同超参数下的模型性能 ,从而"训练"或选择超参数

  • 测试集:用于在一切结束后,最终评估模型的泛化误差。

典型比例:训练集80%,验证集20%。一般,验证集误差 通常是对泛化误差的乐观估计。

三、交叉验证:在小数据集上评估

  1. 适用场景

    当数据集规模较小,单次划分 训练集/验证集 会导致评估结果方差过高,即结果不稳定时。

  2. K-折交叉验证 (充分利用了有限的数据)

① 将数据集随机平分k 个互不相交的子集(称为"折")。

② 进行 k 轮循环。在每一轮 i 中:

  • 将第 i 折作为验证集

  • 将剩余的 k-1 折合并作为训练集

  • 在该训练集上训练模型,并在验证集上计算误差。

③ 最终,将 k 轮得到的误差平均 ,作为模型泛化误差的估计

优势:通过多次训练和评估,提供了更稳定、可靠的性能估计。

总结与关键要点

明确分工:

  • 训练集 → 学习模型参数。

  • 验证集 → 选择超参数。

  • 测试集 → 最终评估,绝不用于模型选择。

核心原则:测试集必须与模型构建过程完全隔离,以提供对泛化误差的无偏估计。

方法选择:

  • 数据量充足 时 → 使用固定 的训练集/验证集划分

  • 数据量有限 时 → 使用K-折交叉验证

5.4 估计、偏差和方差

一、点估计:用样本猜测真相

· 目标 :我们希望通过有限的 、包含m个样本的数据集 x(1),...,x(m){x⁽¹⁾, ..., x⁽ᵐ⁾}x(1),...,x(m) 来猜测一个未知的真相(例如一个参数 θθθ,或一个函数 fff)。

· 估计量 :这个猜测值 θ^mθ̂ₘθ^m 是通过某个函数 ggg 从数据中计算出来的,即 θ^m=g(x(1),...,x(m))θ̂ₘ = g(x⁽¹⁾, ..., x⁽ᵐ⁾)θ^m=g(x(1),...,x(m))。

· 本质 :由于数据是随机采样得到的,所以估计量 θ^mθ̂ₘθ^m 也是一个随机变量。


二、偏差:估计值的平均偏离程度

  1. 定义
    偏差(θ^m)=E(θ^m)−θ(θ̂ₘ) = E(θ̂ₘ) - θ(θ^m)=E(θ^m)−θ

· 它衡量了估计量的 期望值真实参数 之间的差距。

· 系统性误差:高偏差意味着估计量在平均意义上系统地偏离了真相。

  1. 分类

· 无偏估计 :偏差(θ̂ₘ) = 0。期望值等于真实值 。例如:样本均值是总体均值的无偏估计。

· 渐近无偏估计:当样本量 m → ∞ 时,偏差趋于0。


三、方差:估计值的波动程度

  1. 定义

· 方差 Var(θ^m)Var(θ̂ₘ)Var(θ^m):衡量当使用不同训练集(来自同一分布)时,估计值 θ^mθ̂ₘθ^m 自身的波动范围。

· 标准差 SE(θ^m)SE(θ̂ₘ)SE(θ^m):方差的平方根,更直观地表示波动的量级。

  1. 意义

· 高方差意味着估计量对训练数据的特定采样非常敏感。一个小的数据变动可能导致估计值发生巨大变化。


四、偏差-方差权衡

  1. 均方误差
    MSE=E[(θ^m−θ)2]=Bias(θ^m)2+Var(θ^m)MSE = E[(θ̂ₘ - θ)²] = Bias(θ̂ₘ)² + Var(θ̂ₘ)MSE=E[(θ^m−θ)2]=Bias(θ^m)2+Var(θ^m)

· MSE同时包含了偏差 (系统性不准)和 方差(自身不稳定)两种误差来源。

  1. 偏差、方差 与容量、欠拟合、过拟合的关系

    · 高偏差,低方差 :模型过于简单,无法捕捉数据中的基本模式。表现是系统性地预测不准 ,即欠拟合。
    · 低偏差,高方差 :模型过于复杂,对训练数据中的噪声也进行了学习。表现是预测结果不稳定 ,即过拟合。
    · 最佳容量 :对应于 MSE最小 的点,此时偏差和方差达到了一个理想的平衡

五、一致性:大样本的保证

  1. 定义

    当训练数据量 mmm 无限增多时,点估计 θ^mθ̂ₘθ^m 依概率收敛于 真实值 θ。
    plimm→+∞θ^m=θ\text{plim}_{m \to +\infty} \hat{\theta}_m = \thetaplimm→+∞θ^m=θ

  2. 意义

· 一致性保证:只要给我们足够多的数据,我们的估计最终一定会无限接近真相。

5.5 最大似然估计

机器学习中两个核心的参数估计思想流派:频率派贝叶斯派

最大似然估计是频率派统计学中的核心方法。

一、基本思想

目标:找到能使 观测到的数据 出现概率最大 的一组模型参数 θ\thetaθ。

  • 我们有一组由未知真实分布 pdatap_{\text{data}}pdata 生成的数据 X={x(1),...,x(m)}X = \{x^{(1)}, \dots, x^{(m)}\}X={x(1),...,x(m)}。
  • 我们定义一个由参数 θ\thetaθ 决定的模型分布 pmodel(x;θ)p_{\text{model}}(x; \theta)pmodel(x;θ),希望它能近似 pdatap_{\text{data}}pdata。
  • 最大似然估计就是寻找 能最大化 "数据在模型下出现的概率(似然)" 的 θ\thetaθ。

二、数学形式与推导

  1. 似然函数:
    θML=arg⁡max⁡θ∏ipmodel(x(i);θ)\theta_{\text{ML}} = \arg\max_\theta \prod_i p_{\text{model}}(x^{(i)}; \theta)θML=argmaxθ∏ipmodel(x(i);θ)

  2. 对数 似然(为解决数值计算问题,并化乘为加 ):
    θML=arg⁡max⁡θ∑ilog⁡pmodel(x(i);θ)\theta_{\text{ML}} = \arg\max_\theta \sum_i \log p_{\text{model}}(x^{(i)}; \theta)θML=argmaxθ∑ilogpmodel(x(i);θ)

  3. 期望形式:
    θML=arg⁡max⁡θEx∼p^data[log⁡pmodel(x;θ)]\theta_{\text{ML}} = \arg\max_\theta \mathbb{E}{x \sim \hat{p}{\text{data}}} \left[ \log p_{\text{model}}(x; \theta) \right]θML=argmaxθEx∼p^data[logpmodel(x;θ)]

三、最大似然的性质

  1. 一致性 :当样本数 m→∞m \to \inftym→∞ 时,最大似然估计会收敛到真实的参数值。
  2. 统计效率 :在所有一致估计中,最大似然估计的渐近方差最小,意味着它收敛最快
  3. 局限性 :在 数据有限 时容易过拟合。此时,可以引入正则化。

5.6 贝叶斯统计

贝叶斯学派采用了一种完全不同的视角,将不确定性纳入核心。

一、基本思想

  • 频率派:参数 θ\thetaθ 是固定的 未知常数,通过 数据 来估计。
  • 贝叶斯派:参数 θ\thetaθ 本身是随机变量,我们用概率分布来表示对它的认知不确定性。

二、贝叶斯学习流程

  1. 先验分布 p(θ)p(\theta)p(θ) :在观测数据之前,我们关于参数 θ\thetaθ 的初始了解。

  2. 似然 p(D∣θ)p(D|\theta)p(D∣θ) :给定参数下,观测到数据 DDD 的概率。

  3. 后验分布 p(θ∣D)p(\theta|D)p(θ∣D) :结合先验和似然,得到在观测到数据后,关于 θ\thetaθ 的更新。

    由贝叶斯定理计算: p(θ∣D)=p(D∣θ)p(θ)p(D)p(\theta|D) = \frac{p(D|\theta) p(\theta)}{p(D)}p(θ∣D)=p(D)p(D∣θ)p(θ)

  4. 预测 :进行预测时,我们考虑所有可能的 θ\thetaθ,并用后验分布对其进行加权平均 (积分):
    p(xnew∣D)=∫p(xnew∣θ)p(θ∣D)dθp(x_{\text{new}}|D) = \int p(x_{\text{new}}|\theta) p(\theta|D) d\thetap(xnew∣D)=∫p(xnew∣θ)p(θ∣D)dθ

  • 优势

    • 自然防止过拟合:通过积分考虑了所有可能模型,而不是只依赖一个最优模型。
    • 提供不确定性度量:后验分布的方差直接给出了估计的可信度
  • 代价

    • 先验选择的主观性:先验的选择会影响结果,可能引入主观偏见。

三、最大后验估计

最大后验估计是贝叶斯思想的一种实用近似。

  • 思想 :不使用完整的后验分布,而是找到使后验概率最大化的那个点 θMAP\theta_{\text{MAP}}θMAP。
  • 公式
    θMAP=arg⁡max⁡θlog⁡p(D∣θ)+log⁡p(θ)\theta_{\text{MAP}} = \arg\max_\theta \log p(D|\theta) + \log p(\theta)θMAP=argmaxθlogp(D∣θ)+logp(θ)
    • 第一项是标准的对数似然。
    • 第二项是先验的对数,充当了正则化项。

总结:两大流派的对比

特征 最大似然估计 贝叶斯估计
哲学观 θ\thetaθ 是固定未知常数 θ\thetaθ 是随机变量
核心输出 一个最优的点估计 θML\theta_{\text{ML}}θML 一个完整的后验分布 p(θ∣D)p(\theta|D)p(θ∣D)
预测方式 使用 p(y∣x;θML)p(y|x; \theta_{\text{ML}})p(y∣x;θML) 对 p(y∣x,θ)p(y|x, \theta)p(y∣x,θ) 按 p(θ∣D)p(\theta|D)p(θ∣D) 积分
不确定性 通过方差等频率派概念评估 直接包含在后验分布中
计算成本 通常较低(优化问题) 通常很高(积分问题)
过拟合 数据少时容易发生 天然具有抵抗力
与正则化 正则化是外加的 正则化源于先验分布

MLE因其理论性质和计算简便性成为首选。当数据稀缺或不确定性量化至关重要时,贝叶斯方法威力巨大,尽管计算挑战依然存在。

5.7 监督学习算法

监督学习的目标是:给定输入一组输入 x 和输出 y 的训练集,学习如何关联输入和输出。

一、概率生成模型:基于分布估计

这类方法的核心是对条件概率分布 P(y∣x)P(y|\mathbf{x})P(y∣x) 进行建模,通过定义参数化的概率分布,结合最大似然等框架完成学习。

1. 线性回归

  • 模型假设 :给定 x\mathbf{x}x 时,yyy 服从高斯分布,其均值是 x\mathbf{x}x 的线性函数。
  • 数学表达 :p(y∣x;θ)=N(y;θ⊤x,I)p(y|\mathbf{x}; \boldsymbol{\theta}) = \mathcal{N}(y; \boldsymbol{\theta}^\top \mathbf{x}, \mathbf{I})p(y∣x;θ)=N(y;θ⊤x,I)
    (N\mathcal{N}N 表示高斯分布,I\mathbf{I}I 为单位矩阵,θ\boldsymbol{\theta}θ 是模型参数)
  • 学习方式 :通过最大似然估计学习参数 θ\boldsymbol{\theta}θ,该过程与"最小化均方误差(MSE)"完全等价。

2. 逻辑回归

  • 适用问题 :二分类任务,输出需是 [0,1][0,1][0,1] 区间内的概率值
  • 模型设计 :用 logistic sigmoid 函数 σ(z)=11+e−z\sigma(z) = \frac{1}{1+e^{-z}}σ(z)=1+e−z1,将线性函数 θ⊤x\boldsymbol{\theta}^\top \mathbf{x}θ⊤x 的输出压缩到 (0,1)(0,1)(0,1) 区间。
  • 学习方式 :需通过梯度下降、牛顿法等优化算法,最大化对数似然、或最小化负对数似然,即交叉熵损失。

二、支持向量机与非概率判别模型

这类方法不估计概率分布,而是直接学习输入空间中的决策边界 ,属于"判别式模型"的典型代表。

1. 支持向量机(SVM)

  • 模型基础 :基于线性函数 f(x)=w⊤x+bf(\mathbf{x}) = \mathbf{w}^\top \mathbf{x} + bf(x)=w⊤x+b(w\mathbf{w}w 是权重向量,bbb 是偏置)。
  • 预测逻辑 :通过符号函数输出类别,而非概率------
    若 f(x)>0f(\mathbf{x}) > 0f(x)>0,预测为正类;若 f(x)<0f(\mathbf{x}) < 0f(x)<0,预测为负类。
  • 核心目标 :寻找"最大间隔超平面 ",即能将两类样本分开,且与最近样本(支持向量)距离最大的超平面,以此提升模型泛化能力。

2. 核技巧------SVM的灵魂

  • 解决的核心问题:如何用线性模型学习非线性决策边界?

  • 实现逻辑

    1. 特征映射 :将原始输入 x\mathbf{x}x 通过特征函数 ϕ(x)\phi(\mathbf{x})ϕ(x) 映射到高维特征空间;
    2. 线性可分:高维空间中,原本非线性可分的数据可能变得线性可分;
    3. 点积简化 :SVM的优化目标可完全用"高维空间中样本的点积 ⟨ϕ(xi),ϕ(xj)⟩\langle \phi(\mathbf{x}_i), \phi(\mathbf{x}_j) \rangle⟨ϕ(xi),ϕ(xj)⟩"表示;
    4. 核函数替代 :定义核函数 k(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩k(\mathbf{x}_i, \mathbf{x}_j) = \langle \phi(\mathbf{x}_i), \phi(\mathbf{x}_j) \ranglek(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩,无需显式计算高维映射 ϕ(x)\phi(\mathbf{x})ϕ(x),直接通过原始输入计算点积。
  • 常见核函数:高斯核(RBF核)、多项式核、线性核等。

  • 优势

    • 可在无限维特征空间中高效学习非线性模型,且仍保持凸优化特性,能找到全局最优解;
  • 劣势

    • 预测时的计算成本与"支持向量数量"(训练样本的子集)成正比,在大数据集上效率低

三、非参数学习算法

这类模型的复杂度不固定 (即 无预设的参数数量),会随训练数据量的增长而增加,核心是 "从数据中直接学习模式" 而非依赖预设参数。

1. k-最近邻(k-NN)

  • 核心思想 :无显式"训练过程",仅存储 所有训练数据;预测时,找到输入 x\mathbf{x}x 在训练集中的 kkk 个最近邻样本,用这 kkk 个样本的输出推断 x\mathbf{x}x 的预测值。
    • 分类任务:对 kkk 个邻居的类别 "投票",取票数最多的类别;
    • 回归任务:对 kkk 个邻居的输出值**"取平均"**,作为预测结果。
  • 特点
    • 高容量 :理论上,当数据量趋近于无限时,k-NN可逼近贝叶斯最优错误率
    • 劣势1 :预测时需计算与所有训练样本 的距离,存储和计算成本极高
    • 劣势2 :对所有特征"一视同仁",无法自动区分特征重要性,易受无关特征干扰。

2. 决策树

  • 核心思想:通过一系列"轴平行的是/否问题"(如"特征1是否大于5?"),将输入空间递归划分为不重叠的矩形区域,每个区域对应一个固定的预测值(类别或回归值)。
  • 特点
    • 可解释性极强:决策过程类似流程图,每个节点的判断逻辑清晰,结果可追溯;
    • 劣势:由于依赖轴平行分割,对简单但非轴平行的决策边界(如"特征2 > 特征1"),需用大量节点分割才能近似,建模效率低且易过拟合。

总结与比较:经典监督学习算法对比

算法类别 代表算法 核心思想 输出类型 优点 缺点
概率模型 线性回归、逻辑回归 估计条件概率分布 $P(y \mathbf{x})$ 概率(或连续值) 概率论基础坚实,可提供不确定性度量
核机器 支持向量机 核技巧映射到高维空间,找最大间隔超平面 类别(非概率) 非线性建模能力强,有全局最优解保证 大数据集计算成本高,可解释性差
非参数模型 k-最近邻 用邻近样本投票/平均,无显式训练 类别/连续值 理论容量高,无需预设模型结构 预测慢、存储成本高,对无关特征敏感
非参数模型 决策树 轴平行分割输入空间,构建树形决策流程 类别/连续值 可解释性极强,训练预测速度快 非轴平行边界建模难,易过拟合

5.8 无监督学习

无监督学习的目标是发现数据本身的内在结构、模式或表示,而不需要人为提供的标签。

一、其核心目标:寻找"最佳"表示

"最佳"表示通常指在满足一定简化约束下,尽可能保留数据信息的表示。主要有三种简化标准:

  1. 低维表示 :将数据压缩 到更少的维度,旨在捕获 数据中最本质的特征,消除冗余。
  2. 稀疏表示:数据在表示空间中,大部分维度为零,只有少数几个维度有值。这有助于突出关键特征。
  3. 独立表示 :表示中的各个维度之间是统计独立的,即一个维度的值无法提供关于另一个维度的任何信息。这旨在分离数据中不同的变化来源。

二、经典无监督学习算法

  1. 主成分分析(PCA)
  • 目标 :找到一种线性、低维、去相关的数据表示。
  • 工作原理
    1. 寻找数据中方差最大 的方向(即主成分),并将其作为新坐标系的轴
    2. 将原始数据投影 到这些主成分上,得到新的表示 zzz。
  • 关键性质
    • 降维:新表示的维度 低于 原始数据。
    • 去相关:新表示 zzz 的协方差矩阵是一个对角矩阵,意味着其各个维度之间是线性不相关的
  • 局限性 :PCA只能去除线性关系,对于更复杂的非线性依赖关系无能为力。
  1. k-均值聚类
  • 目标 :将数据划分为 k 个簇 ,使得同一簇内的样本彼此相似
  • 工作原理
    1. 分配步骤:将每个样本分配给最近的簇中心。
    2. 更新步骤:重新计算 每个簇的中心点为该簇所有样本的均值。
    3. 重复以上两步直至收敛。
  • 表示的视角:k-均值为每个样本生成一个 one-hot 编码。例如,属于第3个簇的样本,其表示就是 [0, 0, 1, ..., 0]。
  • 局限性:
    • 聚类问题本身是病态的:没有绝对正确的聚类标准,结果可能对应现实世界不同的、看似合理的分组(如按颜色聚类 vs 按车型聚类)。
    • One-hot 编码是稀疏表示的极端形式,它丢失了分布式表示的优点
特征 One-hot 编码 分布式表示
示例 k-均值结果:[0,0,1,0][0, 0, 1, 0][0,0,1,0] 车辆表示:[[[颜色=红, 类型=卡车]]]
核心含义 每个样本仅属于一个类别 每个样本由多个属性组合描述
优点 结构简单,计算效率高 表示能力强,可细粒度衡量相似度(如红车与灰车在"类型"上相似)
缺点 信息孤立,无法表达类别间关联 需额外学习"关键属性",建模难度更高

5.9 随机梯度下降

几乎所有深度学习模型的训练,都依赖随机梯度下降(SGD)及其变体。

一、核心问题:大规模数据的梯度计算代价高昂

机器学习的损失函数通常是 所有样本 损失的平均值 ,公式如下:
J(θ)=1m∑i=1mL(x(i),y(i),θ)J(\boldsymbol{\theta}) = \frac{1}{m} \sum_{i=1}^m L(x^{(i)}, y^{(i)}, \boldsymbol{\theta})J(θ)=m1i=1∑mL(x(i),y(i),θ)

其中,mmm 为样本总数,LLL 为单个样本的损失函数,θ\boldsymbol{\theta}θ 为模型参数。

计算该函数的精确梯度需遍历所有 mmm 个样本,时间复杂度为 O(m)O(m)O(m)。当 mmm 达到数十亿时,单次梯度计算已难以实现。

二、SGD 的核心思想:小批量梯度近似

用"小批量样本 的梯度期望"替代 " 全量样本的梯度期望",在效率与准确性间取得平衡,步骤如下:

  1. 抽取小批量 :每一步从训练集中随机抽取少量样本(如128个),组成小批量;
  2. 梯度估计 :仅用该小批量计算梯度 g\mathbf{g}g,虽存在噪声,但期望无偏,即长期来看与全量梯度一致;
  3. 参数更新 :按梯度方向调整参数,公式为 θ←θ−εg\boldsymbol{\theta} \leftarrow \boldsymbol{\theta} - \varepsilon \mathbf{g}θ←θ−εg(ε\varepsilonε 为学习率,控制步长)。

SGD 的优势:

  1. 计算效率高 :单步更新时间复杂度为 O(1)O(1)O(1),与总样本量 mmm 无关;
  2. 可扩展性强:支持在数十亿样本上训练大型非线性模型(如深度学习模型);
  3. 实践效果优异:虽基于近似梯度,但能高效找到代价函数较小的解,适配深度网络的复杂优化需求。

总结

  1. 无监督学习的核心是发现数据内在结构,目标是寻找"更好"的表示(低维、稀疏或独立);
  2. PCA 和 k-均值是经典无监督算法,分别提供线性降维聚类两种表示方式,但均有适用边界;
  3. 分布式表示比 one-hot 编码更具表达力,是现代表示学习的核心方向;
  4. 随机梯度下降通过小批量梯度近似,解决了大规模数据的优化瓶颈,是深度学习发展的关键技术支撑。

5.10 构建机器学习算法

通用配方公式:机器学习算法 = 模型 + 代价函数 + 优化过程 + 数据集

1. 模型:定义假设空间

模型明确了算法可选择的函数范围,即"从哪些函数中寻找最优解"。

示例:

  • 线性回归模型(概率视角):pmodel(y∣x)=N(y;x⊤w+b,1)p_{\text{model}}(y|\mathbf{x}) = \mathcal{N}(y; \mathbf{x}^\top \mathbf{w} + b, 1)pmodel(y∣x)=N(y;x⊤w+b,1)
  • PCA模型(重构视角):重构函数 r(x)=w⊤x⋅wr(\mathbf{x}) = \mathbf{w}^\top \mathbf{x} \cdot \mathbf{w}r(x)=w⊤x⋅w

2. 代价函数:评估模型优劣的标准

代价函数用于量化模型 预测结果与真实数据 的差异,通常包含两部分:

  • 核心估计项 :最常用的是负对数似然,核心作用是引导模型拟合训练数据;
  • 正则化项(可选) :如权重衰减 λ∥w∥22\lambda \|\mathbf{w}\|_2^2λ∥w∥22,用于控制模型复杂度,缓解过拟合。

3. 优化过程:搜索最优函数 / 参数

优化过程的目标是在模型定义的假设空间中,找到使代价函数最小化的参数,分两种情况:

  • 存在闭式解(如线性回归的正规方程),直接通过公式求解;
  • 不存在 闭式解,使用迭代优化算法(如梯度下降、随机梯度下降)逐步更新参数。

4. 数据集

数据集是算法学习的"原材料",根据学习类型分为两类:

  • 监督学习:数据集由输入-输出对 (x,y)(\mathbf{x}, y)(x,y) 组成;
  • 无监督学习:数据集仅包含输入 x\mathbf{x}x。

PS:该配方的核心优势在于模块化,只需替换任意一个组件(如将线性模型换成神经网络、将MSE损失换成交叉熵损失),就能构建出全新的、更强大的算法。

5.11 促使深度学习发展的核心挑战

传统机器学习算法(如k-近邻、核方法、线性模型)在简单任务 中表现良好,但在图像识别、语音识别等复杂AI任务上泛化能力不足。深度学习的发展,正是为了突破这些根本性挑战。

5.11.1 维数灾难

  • 核心问题 :在高维空间中,输入的可能配置数量随维度呈指数级增长 ,而训练数据量仅能以多项式级增长。这导致数据无法"覆盖"整个输入空间,空间变得极度稀疏。
  • 直接后果:对于训练集中未出现的输入配置,传统算法(依赖平滑先验)难以准确预测------因为缺乏足够的邻近样本支撑推断。
  • 通俗比喻:如同一个巨大的棋盘,若训练样本数量远少于棋盘格数量,模型无法判断无样本格子的颜色。

5.11.2 局部不变性 和 平滑正则化

1. 什么是局部不变性先验?

这是传统算法的核心假设:认为最优函数 f∗f^*f∗ 在小区域内不应剧烈变化,即 f∗(x)≈f∗(x+ε)f^*(\mathbf{x}) \approx f^*(\mathbf{x} + \varepsilon)f∗(x)≈f∗(x+ε)(ε\varepsilonε 为微小扰动)。

体现该先验的传统算法:

  • k-近邻:一个区域的预测结果完全由最近的 kkk 个样本决定;
  • 核机器:在邻近训练样本的输出之间进行插值;
  • 决策树:将输入空间划分为多个区域,每个区域输出固定值。

核心局限性:

传统算法的容量有限 ,它们能区分的不同区域数量,最多与训练样本数量 O(k)O(k)O(k) 成正比。若要学习包含 O(2k)O(2^k)O(2k) 个不同区域的复杂函数(如棋盘图案),需要指数级的样本量,在现实中完全不可行。

深度学习的解决方案:更强的归纳偏置

深度学习通过引入"分布式表示"和"流形学习假说"这两种更强的归纳偏置(先验信念),突破了传统算法的局限。

1. 分布式表示
  • 核心逻辑 :不同于one-hot编码"一个样本仅激活一个特征",分布式表示让一个样本由多个特征的组合描述。
  • 关键优势 :带来指数级的表示能力------kkk 个二进制特征可组合出 2k2^k2k 种不同概念。这使得模型能用较少的参数和样本,学习并泛化到大量不同的输入区域。
2. 流形学习假说
  • 假说内容 :现实世界中有意义的数据(如图像、语音)并非均匀分布在高维空间中,而是集中在一个低维流形上。
  • 什么是流形:嵌入在高维空间中的低维曲面。例如,人脸照片的所有变化(表情、角度、光照)可由少数底层因素控制,形成低维流形。
  • 核心意义
    • 将学习焦点从"整个高维空间"转移到"数据实际分布的低维流形结构";
    • 解释了"有限数据为何能学习":只需学习低维流形上的规律,无需覆盖整个高维空间。

总结

深度学习的成功,本质是通过结合分布式表示 (提供指数级表示能力)和流形学习假说(利用数据的低维内在结构),有效克服了"维数灾难"和"传统平滑先验局限性"两大核心挑战,最终具备了处理高维、复杂AI任务的能力。

相关推荐
B站计算机毕业设计之家9 小时前
基于大数据热门旅游景点数据分析可视化平台 数据大屏 Flask框架 Echarts可视化大屏
大数据·爬虫·python·机器学习·数据分析·spark·旅游
最晚的py9 小时前
ID3,C4.5,CART对比
决策树·机器学习
胡萝卜3.09 小时前
深入C++可调用对象:从function包装到bind参数适配的技术实现
开发语言·c++·人工智能·机器学习·bind·function·包装器
Echo_NGC22379 小时前
【KL 散度】深入理解 Kullback-Leibler Divergence:AI 如何衡量“像不像”的问题
人工智能·算法·机器学习·散度·kl
Coding茶水间10 小时前
基于深度学习的脑肿瘤检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
秋刀鱼 ..11 小时前
第三届信息化教育与计算机技术国际学术会议(IECA 2026)
运维·人工智能·科技·机器学习·制造
V1ncent Chen12 小时前
机器是如何变“智能“的?:机器学习
人工智能·机器学习
Buxxxxxx13 小时前
DAY 38 MLP神经网络的训练
深度学习·神经网络·机器学习
Lululaurel14 小时前
AI编程文本挖掘提示词实战
人工智能·python·机器学习·ai·ai编程·提示词