字体大小
第二编 非线性学习与表示问题的提出 · 02_第二编_非线性学习与表示问题的提出/第9章_无监督学习与数据表示/chapter.md

第9章 无监督学习与数据表示

本章核心问题

在没有标签时,机器如何从数据本身中发现结构?

更具体地说,前两章已经说明:机器学习可以通过特征映射、核函数和最大间隔方法提升判别能力,但这些方法大多仍依赖标签来告诉模型“什么是正确分类”。然而现实世界中,大量数据并没有人工标注。于是,本章要回答的是:当监督信号缺失时,机器学习还能依靠什么数学原则去组织数据、发现模式,并构造更有利于后续学习的表示?

1. 问题背景

到第二编为止,机器学习已经沿着一条清晰路线发展:从第一编的监督学习框架与线性模型出发,进入第7章的非线性特征空间,再到第8章的核方法与支持向量机。这条路线极大增强了模型表达能力,也使非线性分类与回归问题获得了更优雅的数学处理方式。

但它始终隐含一个前提:训练数据中已经给出了标签。无论是回归中的目标值,还是分类中的类别标记,算法都依赖这些外部监督来定义损失函数与训练目标。然而,真实世界中最丰富的数据常常恰恰不是有标签的数据。文本、图像、用户行为、传感器记录、音频和网页数据都以海量形式存在,但其中只有极少一部分被人工标注。

这就引出了一个比“如何分类”更基础的问题:在没有标签时,数据本身是否仍然包含某种可利用的结构?换言之,若不再让标签决定“什么相似、什么不同”,机器是否还能仅根据样本之间的关系、分布、方差和潜在生成机制去组织数据?

无监督学习正是在这一问题上发展起来的。它关心的不是从输入到标签的映射,而是数据集合本身的几何、概率与代数结构。例如,样本能否自然分成若干簇?高维数据是否实际上分布在低维子空间附近?观测样本是否由某些看不见的潜在变量生成?这些问题共同推动机器学习从“判别式拟合”进一步走向“表示与结构发现”。

从全书的历史主线看,这一步极其关键。第7章和第8章把表示当作性能提升的关键,但表示大多仍由人来设计或由核函数隐式给出;而无监督学习第一次更认真地提出:能否让模型从数据本身中自动发现结构,并据此产生表示?这一问题后来将直接通向表示学习、自监督学习和预训练模型。

2. 数学原理

2.1 从监督目标到数据内在结构

在监督学习中,训练样本通常写成

$$ \mathcal D_n=\{(x_i,y_i)\}_{i=1}^n, $$

其中 $x_i$ 表示输入,$y_i$ 表示标签,损失函数围绕预测值与标签之间的误差来定义。而在无监督学习中,数据通常只有输入样本:

$$ \mathcal X_n=\{x_1,x_2,\dots,x_n\}. $$

这里 $\mathcal X_n$ 表示由 $n$ 个观测样本组成的数据集,每个样本 $x_i\in\mathbb R^d$,$d$ 表示输入维数。由于没有标签,学习目标不再是逼近外部监督信号,而必须转向数据内部的某种结构性原则。

最常见的原则大致有三类。第一类是相似性原则:相似样本应被聚在一起,不相似样本应被分开。第二类是低维结构原则:高维观测往往由低维潜在因素决定,因此数据可以在某个更低维空间中得到压缩表示。第三类是生成原则:观测样本可能是由若干潜在变量通过某种概率机制生成的,学习任务便是反推出这些潜在变量与生成参数。

本章将以这三条原则为主线,依次讨论聚类、概率混合模型与主成分分析。

2.2 相似性与聚类目标

最直接的无监督问题是聚类。它试图把样本自动划分为若干组,使同组样本彼此更接近、不同组样本彼此更远。为了把这一想法数学化,设我们要把 $n$ 个样本划分为 $k$ 个簇,其中 $k$ 表示簇的个数。记第 $i$ 个样本所属的簇编号为

$$ c_i\in\{1,2,\dots,k\}, $$

这里 $c_i$ 是离散赋值变量,表示样本 $x_i$ 被分配到哪一个簇。对每个簇,再引入一个中心向量

$$ \mu_j\in\mathbb R^d,\qquad j=1,2,\dots,k. $$

这里 $\mu_j$ 表示第 $j$ 个簇的中心。则一种最自然的聚类目标是最小化样本到各自簇中心的平方距离之和:

$$ \min_{\{c_i\},\{\mu_j\}} \sum_{i=1}^n \|x_i-\mu_{c_i}\|_2^2. $$

这里 $\|x_i-\mu_{c_i}\|_2^2$ 表示样本 $x_i$ 与其所属簇中心之间的平方欧氏距离。这个目标函数的含义非常直接:若一个划分是好的,那么同簇样本应围绕其簇中心紧密分布,因此总体的簇内离散度应尽可能小。

这个式子就是后面 k-means 算法的基本优化目标。它也展示了无监督学习的一个典型特征:虽然没有标签,但仍然可以通过某种内部一致性准则构造明确目标函数。

2.3 k-means 的交替优化思想

在聚类目标

$$ J(\{c_i\},\{\mu_j\})=\sum_{i=1}^n \|x_i-\mu_{c_i}\|_2^2 $$

中,未知变量既包括离散赋值 $c_i$,也包括连续参数 $\mu_j$。直接同时优化并不容易,但它具有一个很重要的结构:若其中一组变量固定,另一组变量的最优解往往容易求得。

首先,若簇中心 $\mu_1,\dots,\mu_k$ 固定,则对每个样本 $x_i$ 而言,最优簇编号显然应选择与之距离最近的中心,即

$$ c_i=\arg\min_{1\le j\le k}\|x_i-\mu_j\|_2^2. $$

这里 $\arg\min$ 表示使目标函数取得最小值的自变量。这个步骤称为“分配步骤”。

反过来,若簇分配 $c_1,\dots,c_n$ 固定,则目标函数可分解成各簇内部的平方误差和。对某个簇 $j$ 来说,需要最小化

$$ \sum_{i:c_i=j}\|x_i-\mu_j\|_2^2. $$

对 $\mu_j$ 求导并令其为零,可得

$$ \mu_j=\frac{1}{N_j}\sum_{i:c_i=j}x_i, $$

这里 $N_j=\#\{i:c_i=j\}$ 表示第 $j$ 个簇中的样本数,符号 $\#$ 表示集合元素个数。这个式子说明:在平方距离目标下,最优簇中心正是该簇样本的均值。因此,这一步被称为“更新步骤”。

k-means 算法正是不断在这两步之间交替:先给每个样本重新分配最近中心,再用簇内均值更新中心。虽然它通常只能保证收敛到局部最优,但它极其清楚地体现了无监督学习中的一个基本思想:通过交替优化,让“结构发现”转化为可执行的迭代算法。

2.4 从聚类到概率模型:高斯混合模型

k-means 给出了一个几何视角:数据由若干簇中心组织。但它没有直接说明这些簇是如何生成数据的。若我们希望把聚类写成概率建模问题,就会自然走向混合模型。

设观测样本 $X$ 的分布由 $k$ 个高斯成分混合而成,则其概率密度函数可以写成

$$ p(x)=\sum_{j=1}^k \pi_j \,\mathcal N(x\mid \mu_j,\Sigma_j). $$

这里 $p(x)$ 表示样本 $x$ 的总体密度;$\pi_j\ge 0$ 表示第 $j$ 个成分的混合权重,并满足

$$ \sum_{j=1}^k \pi_j=1. $$

$\mathcal N(x\mid \mu_j,\Sigma_j)$ 表示均值为 $\mu_j$、协方差矩阵为 $\Sigma_j$ 的高斯密度函数;$\Sigma_j\in\mathbb R^{d\times d}$ 则描述第 $j$ 个成分在各方向上的离散形状。

这个模型的直觉是:每个样本先从某个隐含类别中抽取,再由该类别对应的高斯分布生成。于是,聚类不再只是几何分组,而变成了一个带有潜变量的生成过程。

2.5 潜变量表示与完全数据对数似然

为了把高斯混合模型写得更清楚,引入隐变量

$$ z_i\in\{1,2,\dots,k\}, $$

这里 $z_i$ 表示第 $i$ 个样本来自哪一个高斯成分。若 $z_i$ 可被直接观察到,则完整数据的对数似然写成

$$ \log p(X,Z)=\sum_{i=1}^n \log\big(\pi_{z_i}\mathcal N(x_i\mid \mu_{z_i},\Sigma_{z_i})\big). $$

这里 $X=(x_1,\dots,x_n)$ 表示全部观测样本,$Z=(z_1,\dots,z_n)$ 表示全部隐变量。若 $Z$ 已知,参数估计会变得容易,因为每个样本所属成分已经明确。

问题在于,真正困难的地方恰恰是 $Z$ 不可观测。于是,机器学习需要回答:在潜变量看不见的情况下,如何估计混合模型参数?这就引出了 EM 算法。

2.6 EM 算法的基本推导

EM 是 Expectation-Maximization 的缩写,即“期望 - 最大化”算法。它处理的典型问题是:目标函数中包含不可观测的潜变量,直接最大化观测数据对数似然

$$ \log p(X)=\sum_{i=1}^n \log \sum_{j=1}^k \pi_j\mathcal N(x_i\mid \mu_j,\Sigma_j) $$

较为困难,因为对数作用在求和外部。

EM 的核心想法是:先根据当前参数估计各个潜变量的后验分布,再在这个“软分配”基础上更新参数。对高斯混合模型而言,第 $i$ 个样本属于第 $j$ 个成分的后验概率记为

$$ \gamma_{ij}=p(z_i=j\mid x_i). $$

这里 $\gamma_{ij}$ 常被称为责任度,表示第 $j$ 个高斯成分对样本 $x_i$ 的“负责程度”。根据贝叶斯公式,可得

$$ \gamma_{ij}=\frac{\pi_j\mathcal N(x_i\mid \mu_j,\Sigma_j)}{\sum_{\ell=1}^k \pi_\ell \mathcal N(x_i\mid \mu_\ell,\Sigma_\ell)}. $$

这一步就是 E 步。它把原来硬性的簇分配变成了软性的概率分配。

随后,在 M 步中,用这些责任度重新估计参数。定义第 $j$ 个成分的有效样本数为

$$ N_j=\sum_{i=1}^n \gamma_{ij}. $$

则均值更新为

$$ \mu_j=\frac{1}{N_j}\sum_{i=1}^n \gamma_{ij}x_i, $$

混合权重更新为

$$ \pi_j=\frac{N_j}{n}, $$

协方差更新为

$$ \Sigma_j=\frac{1}{N_j}\sum_{i=1}^n \gamma_{ij}(x_i-\mu_j)(x_i-\mu_j)^\top. $$

这组公式清楚说明了 EM 的本质:先估计潜变量的概率分布,再在其期望意义下做参数最大化。与 k-means 相比,EM 不再给出硬边界,而是给出概率性的结构解释。

2.7 主成分分析与方差最大化

除了“把样本分成几群”之外,无监督学习的另一条核心路线是降维。它并不直接寻找簇,而是试图找到一个低维子空间,使得数据在该子空间中的表示尽可能保留原始信息。主成分分析(PCA)是这一思想的经典代表。

设数据样本已经中心化,即

$$ \frac{1}{n}\sum_{i=1}^n x_i=0. $$

这里中心化表示样本均值被平移到原点。若我们希望把数据投影到一个单位向量 $u\in\mathbb R^d$ 所张成的一维子空间上,则第 $i$ 个样本的投影值为

$$ u^\top x_i. $$

PCA 的基本思想是:选择那个使投影方差最大的方向。于是,可以写出优化问题

$$ \max_{u\in\mathbb R^d}\frac{1}{n}\sum_{i=1}^n (u^\top x_i)^2 $$

满足约束

$$ \|u\|_2=1. $$

这里单位范数约束是必要的,否则只要把 $u$ 无限放大,目标函数就可以无限增大。

2.8 PCA 的特征值问题推导

定义样本协方差矩阵为

$$ S=\frac{1}{n}\sum_{i=1}^n x_i x_i^\top. $$

这里 $S\in\mathbb R^{d\times d}$ 表示数据在各坐标方向上的联合波动结构。则目标函数可改写为

$$ \frac{1}{n}\sum_{i=1}^n (u^\top x_i)^2 = \frac{1}{n}\sum_{i=1}^n u^\top x_i x_i^\top u. $$

又由于协方差矩阵定义为 $S=\frac{1}{n}\sum_{i=1}^n x_i x_i^\top$,所以上式可进一步写成

$$ u^\top S u $$

于是,PCA 的一维问题变成

$$ \max_{u} u^\top S u $$

满足

$$ u^\top u=1. $$

构造拉格朗日函数

$$ \mathcal L(u,\lambda)=u^\top S u-\lambda(u^\top u-1), $$

这里 $\lambda$ 是拉格朗日乘子。对 $u$ 求梯度并令其为零,得到

$$ 2Su-2\lambda u=0, $$

$$ Su=\lambda u. $$

这说明最优方向 $u$ 必须是协方差矩阵 $S$ 的特征向量,而最优目标值等于对应特征值 $\lambda$。因此,第一主成分就是 $S$ 最大特征值对应的特征向量;后续主成分则是在正交约束下依次选择其余主方向。

这个推导非常重要,因为它把“寻找最能保留信息的低维方向”严格转化成了线性代数中的特征值问题。

2.9 PCA 的重构解释

PCA 不仅可以从方差最大化角度理解,也可以从最小重构误差角度理解。若把样本 $x_i$ 投影到由前 $r$ 个主成分张成的子空间上,则得到低维表示和相应重构。PCA 的经典结论是:在所有 $r$ 维线性子空间中,主成分子空间能够使平均平方重构误差最小。

这意味着 PCA 所学到的不只是一个压缩技巧,而是一种潜在表示:它试图用更少维度解释数据中尽可能多的变化。因此,从历史眼光看,PCA 实际上已经包含了后续表示学习的一部分核心精神。

3. 代表模型或算法

3.1 k-means

k-means 是最经典的聚类算法之一。其模型结构由两类变量组成:离散簇分配 $c_i$ 与连续簇中心 $\mu_j$;训练目标是最小化簇内平方误差

$$ \sum_{i=1}^n \|x_i-\mu_{c_i}\|_2^2. $$

训练方式上,它通过“分配步骤 + 更新步骤”的交替优化不断下降目标函数;推理方式上,对新样本通常采用“分配到最近簇中心”的规则。它的代表性在于:用非常直接的几何目标,把无监督结构发现问题写成了可执行算法,也让“没有标签时如何学习”第一次获得了清楚的优化框架。

3.2 高斯混合模型与 EM

高斯混合模型把聚类提升为概率生成模型,而 EM 算法则给出了在潜变量不可见时进行参数估计的一般框架。它们的意义不仅在于建模能力更强,也在于把无监督学习与概率推断正式连接起来。

从模型结构看,高斯混合模型由混合权重 $\pi_j$、均值向量 $\mu_j$、协方差矩阵 $\Sigma_j$ 和潜变量 $z_i$ 构成;训练方式上,EM 算法先在 E 步估计责任度 $\gamma_{ij}$,再在 M 步更新参数;推理方式上,则可利用后验概率 $p(z_i=j\mid x_i)$ 判断样本更可能属于哪个成分,或者保留软分配结果。

它在本章中的典型性在于:这里的“结构”已经不只是几何上的邻近关系,而是一个完整的概率生成机制。也正因为如此,GMM + EM 比 k-means 更能体现潜变量建模的思想。

3.3 PCA

PCA 是降维与线性表示学习的经典基石。它通过特征值分解寻找数据方差最大的方向,同时也给出最小重构误差意义下的最优线性子空间。它是无监督学习中最具基础性的数学模型之一。

若从模型结构看,PCA 通过若干主方向 $u_1,\dots,u_r$ 定义低维子空间;训练方式上,本质是求解协方差矩阵的特征值问题;推理方式上,则把新样本投影到这些主方向上以获得低维表示,并可在需要时再映回原空间进行近似重构。

它之所以构成本章的核心代表模型,是因为它把“表示学习”第一次明确写成了一个线性代数问题:最重要的表示方向,不是由人工指定,而是由数据方差结构自己决定。

4. 典型应用

4.1 用户分群

在用户行为分析中,每个用户都可以表示为一个特征向量 $x_i$,其中可能包含浏览频率、消费强度、停留时长、点击偏好等指标。若使用 k-means,则目标函数

$$ \sum_{i=1}^n \|x_i-\mu_{c_i}\|_2^2 $$

在应用中的含义就是:把行为模式相近的用户归入同一簇,并让每个簇可以用中心向量 $\mu_j$ 概括。这里数学对象与应用的对应关系非常直接:簇中心对应“典型用户画像”,簇分配变量 $c_i$ 对应“每个用户属于哪一类群体”,而平方距离则对应行为相似性的一个定量刻画。

4.2 图像压缩

设一张图像被表示为高维像素向量 $x_i$,大量图像样本组成数据矩阵。PCA 在这里的作用,是寻找少数几个主方向 $u_1,\dots,u_r$,使图像可以在低维空间中近似表示。数学上,这对应于把原始高维样本投影到主成分子空间,并利用这些投影系数进行重构。

在这个应用中,本章的方差最大化与最小重构误差两种解释都直接发挥作用。最大方差方向意味着最能保留图像变化信息的方向;最小重构误差则意味着在压缩到固定维度后,恢复出来的图像尽可能接近原图。因此,图像压缩不是一个与本章数学内容松散相关的例子,而正是 PCA 目标函数在工程中的直接落地。

4.3 降维可视化

当数据维数很高时,人无法直接观察其结构。PCA 可以把样本投影到二维或三维主成分空间,用于可视化。此时,本章中的特征值问题

$$ Su=\lambda u $$

对应的就是“寻找最能保留整体变异信息的观察方向”。换言之,二维散点图之所以有意义,并不是因为我们随意画了两个坐标,而是因为这两个坐标由协方差结构中最重要的特征向量决定。

4.4 主题发现

在文本数据中,即使没有人工标签,不同文档之间也往往围绕若干潜在主题组织。若把文档表示为词频向量或其他统计表示,再使用聚类或混合模型,则可以把文档按潜在主题进行分组。

在这个应用中,k-means 对应的是基于几何相似性的硬主题划分,而高斯混合模型则对应带有概率性的软主题归属。也就是说,本章的两类数学框架分别对应“每篇文档只归入一个主题”和“每篇文档以不同概率属于多个主题”的两种不同应用理解。

5. 局限性与历史转折

无监督学习开启了一条极其重要的新路线:即使没有标签,机器仍然可以通过相似性、潜变量和低维结构去发现数据中的组织方式。与前两章相比,这标志着机器学习第一次不再把“外部监督”当作全部信息来源,而开始认真研究“数据自身是否能提供学习信号”。

但早期无监督方法也存在显著局限。首先,很多方法依赖较强的结构假设。例如,k-means 假设簇接近球形并以均值为代表;高斯混合模型依赖特定分布族;PCA 只刻画线性子空间。这些假设在很多复杂数据中并不充分。

其次,这些方法虽然能够发现一定结构,却往往难以形成高层语义表示。聚类给出的是样本分组,PCA 给出的是主方向,GMM 给出的是混合成分,但它们通常还不足以直接表达视觉对象、语言语义或复杂行为模式中的层次概念。

再次,无监督学习在这一阶段更多是“发现结构”,而不是“学习深层表示”。也正因为如此,后续研究逐渐意识到:若想真正让机器自动学出强有力的表示,就必须进一步引入更灵活的模型族,例如神经网络、自动编码器以及后来自监督预训练中的深层架构。

因此,本章既是第二编的收束,也是更大历史转折的前奏。它说明了表示学习问题已经被正式提出,但也说明:要让表示学习真正成为人工智能的核心引擎,仍需要新的模型与新的训练机制。这就为下一编神经网络与深度学习的兴起做好了铺垫。

本章小结

本章讨论了在缺少标签时,机器学习如何从数据本身中发现结构并形成表示。核心路线包括三类方法:以 k-means 为代表的聚类方法,通过簇内平方误差最小化发现样本分组;以高斯混合模型和 EM 为代表的概率方法,通过潜变量与责任度解释数据生成机制;以 PCA 为代表的降维方法,则通过方差最大化和特征值分解提取低维主方向。

这些方法共同表明:即使没有外部监督,数据仍然可能包含可以被算法提取的几何、概率和代数结构。这一认识极其关键,因为它直接预示了后来的表示学习、自监督学习与预训练模型的发展方向。

但本章也说明,早期无监督学习的结构假设仍然较强,表达能力也还有限。它打开了“自动发现结构”的大门,却尚未完全进入“自动学习深层表示”的时代。下一编将要讨论的神经网络与深度学习,正是在这一历史张力中重新走上舞台。

关键公式

$$ \min \sum_{i=1}^n \|x_i-\mu_{c_i}\|_2^2. $$
$$ c_i=\arg\min_{1\le j\le k}\|x_i-\mu_j\|_2^2. $$
$$ p(x)=\sum_{j=1}^k \pi_j \,\mathcal N(x\mid \mu_j,\Sigma_j). $$
$$ \gamma_{ij}=\frac{\pi_j\mathcal N(x_i\mid \mu_j,\Sigma_j)}{\sum_{\ell=1}^k \pi_\ell \mathcal N(x_i\mid \mu_\ell,\Sigma_\ell)}. $$
$$ S=\frac{1}{n}\sum_{i=1}^n x_i x_i^\top. $$
$$ Su=\lambda u. $$

关键概念

  • 无监督学习
  • 聚类
  • 降维
  • PCA
  • EM
  • 潜变量