相关笔记

本章节笔记:

前置章节汇总:

后续章节:

  • 第34章 NP完全性(待学习)

概览

第33章是CLRS第4版全新增加的章节,系统介绍了三个重要的机器学习算法,分别对应机器学习的三个核心范式:无监督学习(聚类)、在线学习(乘法权重)和优化方法(梯度下降)。本章从算法视角出发,强调数学基础和算法分析,而非工程实现细节。

三篇笔记覆盖:(1) 33.1节介绍k-means聚类算法(Lloyd过程),通过分配步更新步的交替迭代,将数据点划分为k个簇,使簇内平方距离最小化;(2) 33.2节介绍乘法权重算法,在在线学习设定下,通过指数级权重衰减机制,使算法的总错误次数接近最优专家;(3) 33.3节介绍梯度下降及其变体(SGD、Mini-batch GD),通过沿负梯度方向迭代更新参数,最小化损失函数。


知识结构总览

flowchart TD
    CH["第33章 机器学习算法"] --> S1["33.1 聚类与k-means算法"]
    CH --> S2["33.2 乘法权重算法"]
    CH --> S3["33.3 梯度下降"]

    S1 --> S1A["特征向量与不相似度"]
    S1 --> S1B["k-聚类与目标函数"]
    S1 --> S1C["Lloyd过程"]
    S1 --> S1D["质心最优性与收敛性"]

    S2 --> S2A["在线学习问题设定"]
    S2 --> S2B["加权多数算法"]
    S2 --> S2C["乘法权重更新规则"]
    S2 --> S2D["错误上界证明"]

    S3 --> S3A["梯度与更新规则"]
    S3 --> S3B["学习率选择"]
    S3 --> S3C["BGD vs SGD vs Mini-batch"]
    S3 --> S3D["收敛性分析"]

    S1 -->|"无监督学习"| CH
    S2 -->|"在线学习"| CH
    S3 -->|"优化方法"| CH

    style CH fill:#e1f5fe,stroke:#0288d1,stroke-width:2px
    style S1 fill:#fff3e0,stroke:#ef6c00
    style S2 fill:#e8f5e9,stroke:#2e7d32
    style S3 fill:#fce4ec,stroke:#c62828

核心概念回顾

三篇笔记内容对比

维度33.1 聚类与k-means33.2 乘法权重33.3 梯度下降
学习范式无监督学习在线学习优化方法
核心问题如何将数据点分组如何在线做出准确预测如何最小化损失函数
核心方法Lloyd过程(分配+更新)乘法权重更新梯度下降迭代
关键参数k(簇数)、初始中心β(惩罚因子)、n(专家数)η(学习率)
时间复杂度O(Iknd)(I为迭代次数)O(Tn)(T为轮数)O(Td)(T为迭代次数)
最优性保证局部最优(NP-hard)错误 ≤ 2.41(ln n + M)凸函数→全局最优

核心定理汇总

  1. k-means NP-hardness:精确求解k-means问题是NP-hard的
  2. Lloyd过程单调性:每次迭代f值单调递减,有限步终止于局部最优
  3. 乘法权重错误上界:算法错误次数L ≤ (ln n + M ln(1/β)) / ln(2/(1+β)),取β=1/2时L ≤ 2.41(ln n + M)
  4. 梯度下降收敛性:对L-Lipschitz凸函数,步长η=1/L时,经T步后f(x_T) - f(x*) ≤ ||x_0 - x*||² / (2ηT)

跨章关联

与第27章(在线算法)的关系

  • 乘法权重算法本质上是在线算法,与第27章的竞争分析框架一致
  • 第27章的竞争比概念可以用于分析乘法权重算法的性能:算法的错误次数与最优专家错误次数的比值
  • 第27章的缓存问题可以视为在线学习的一种特殊形式

与第5章(概率分析与随机化算法)的关系

  • 乘法权重算法的错误上界证明使用了概率分析技术
  • k-means的随机初始化(如k-means++)依赖随机化算法保证期望质量
  • SGD的随机性来源于随机采样训练样本

与第14章(动态规划)的关系

  • 梯度下降可以视为动态规划的连续版本:都是通过最优子结构逐步逼近最优解
  • 某些机器学习问题(如隐马尔可夫模型)既可以用动态规划求解,也可以用梯度下降优化

与第32章(字符串匹配)的关系

  • k-means聚类可以用于文本分类(将文档表示为特征向量后聚类)
  • 梯度下降是训练文本分类模型(如逻辑回归)的核心优化算法

综合复习题


常见误区

误区1:k-means总能找到"正确的"聚类数量k

k-means需要预先指定k值,算法本身不会自动确定最优的k。选择k的方法包括:肘部法则(elbow method,观察f值随k增大的下降拐点)、轮廓系数(silhouette coefficient,选择使轮廓系数最大的k)、以及基于领域知识的判断。不同的k值可能导致完全不同的聚类结果。

误区2:乘法权重算法中的"专家"必须是高性能的AI模型

乘法权重算法中的”专家”可以是任意预测器,甚至可以是简单的规则(如”总是预测0”或”随机猜测”)。算法的强大之处在于:即使大部分专家很差,只要存在少数好的专家,算法就能通过权重更新自动”发现”并依赖这些好专家。错误上界只依赖最佳专家的错误次数M,而不依赖其他专家的表现。

误区3:梯度下降一定比其他优化方法(如牛顿法)差

梯度下降是一阶方法(只使用梯度信息),牛顿法是二阶方法(使用Hessian矩阵)。牛顿法在理论上收敛更快(二次收敛 vs 线性收敛),但每次迭代的计算成本更高(需要计算和存储d×d的Hessian矩阵)。对于高维问题(如深度学习中的百万级参数),牛顿法不可行,梯度下降(及其变体SGD、Adam)是唯一实际可行的选择。


学习要点总结

学习目标掌握程度对应笔记
理解特征向量、不相似度、k-聚类的形式化定义★★★★★33.1 聚类与k-means算法
掌握Lloyd过程的分配步和更新步★★★★★33.1 聚类与k-means算法
理解质心最优性证明和收敛性分析★★★★☆33.1 聚类与k-means算法
了解k-means的局限性和改进方法★★★★☆33.1 聚类与k-means算法
理解在线学习问题设定和专家建议模型★★★★★33.2 乘法权重算法
掌握乘法权重更新规则和加权投票机制★★★★★33.2 乘法权重算法
理解乘法权重的错误上界证明★★★★☆33.2 乘法权重算法
理解梯度下降的基本思想和更新规则★★★★★33.3 梯度下降
掌握学习率的选择策略和影响★★★★★33.3 梯度下降
区分BGD、SGD、Mini-batch GD★★★★★33.3 梯度下降
理解凸函数与全局最优的关系★★★★☆33.3 梯度下降
了解梯度下降在深度学习中的应用★★★☆☆33.3 梯度下降

参见Wiki


第33章-机器学习算法 章节汇总