第十部分 · 把它们拼成学习器
没有标签也能学:PCA 与高斯混合
上一课的两台机器都靠"老师"——每个样本都配着一个正确答案 y。可现实里绝大多数数据没人标注:一堆顾客、一堆星系光谱、一堆基因表达,没有 y。损失里的 yᵢ−ŷᵢ 连写都写不出来。那机器还能学到什么?答案是:让数据自己说出它的结构——主轴在哪、抱成几团。这就是无监督学习。
留下的问题:如果数据没有标签——只有一堆 x,没有任何 y——损失函数里的"真值"消失了,监督学习那套彻底失效。没有答案,机器还能从数据里学到东西吗?
本课新增:两条无监督的路。PCA(回扣第 23 课)问"数据里最值得看的方向是哪几个",把高维压成低维而不失真;高斯混合模型 GMM + EM 问"这些点其实来自几个看不见的'团'",做软聚类与密度估计——它正是第 30 课多元高斯与第 31 课最大似然的又一次合体。无标签不是无信息:结构本身就是答案。
无监督学习:没有老师,找的是结构
监督学习的契约是"给你 x,我要 y"。无监督学习撕掉了这份契约:手里只有一堆 x₁, x₂, …, xₙ,没有任何标签。目标不再是"预测答案",而是发现数据自身的结构。结构有两种最基本的形状:
- 方向上的结构:这团数据其实"扁"在某几个方向上——大部分变化只发生在少数几个轴上,其余维度近乎冗余。抓住这几个轴,就能降维。这是 PCA。
- 分组上的结构:这堆点其实抱成了几团——同一团内部相似,团与团之间疏远。找出这些团,就是聚类。这是 GMM / k-means。
没有标签做监督,我们靠什么定义"学得好"?靠几何(保留最多的方差、点离团心最近)和概率(让数据的似然最大)。这正是把第七部分的几何工具和第九部分的概率工具同时拉回来——无监督学习是它们的会师。
PCA:抓住方差最大的方向
第 23 课我们已经造好了 PCA,这里复述它的灵魂、并把它放进"无监督学习"的框架。设想一团二维点,它们沿着某条斜线拉得很长、垂直方向却很窄。那条"最长"的方向,就藏着这团数据最多的信息——因为信息就体现在"差异"里,而差异就是方差。
PCA 的任务:找一个方向(单位向量 v),让数据投影到它上面后方差最大。投影是第 20 课的内积,方差由第 30 课的协方差矩阵 Σ(读作"西格玛矩阵")刻画。把"最大化投影方差"写成数学,答案干净得惊人——
这就闭环了:第 22 课的特征向量、第 23 课的 SVD、第 30 课的协方差椭圆,说的是同一件事——协方差椭圆的长轴,就是第一主成分 PC1。只保留前几个特征值最大的方向、扔掉其余,就把高维数据压成低维而几乎不失真(低秩近似)。整个过程不用一个标签:数据自己指出了哪几个方向最值得看。这是第一种无监督的学习。
聚类的难题:鸡生蛋,蛋生鸡
第二种结构是分组。给你一团点,肉眼能看出"这是三堆",可怎么让机器自动找出来?难点是个循环依赖:
- 如果我已经知道每个点属于哪一团,求每团的中心很容易——取平均即可。
- 如果我已经知道每团的中心,判断一个点属于哪团也容易——离哪个中心近就归哪团。
可两者我都不知道!要中心得先有归属,要归属得先有中心——鸡生蛋。破局的办法是交替猜:先随便放几个中心,按它们分一次组;再用分好的组更新中心;如此往复,直到不再变化。这个"猜→修正→再猜"的迭代思想,配上一个概率模型,就是著名的 EM 算法。
GMM:把每一团建成一个多元高斯
怎么用概率描述"几团数据"?高斯混合模型(GMM)的赌注是:每个点是从 K 个多元高斯(第 30 课)中的某一个里抽出来的,只是我们看不见它来自哪个。整团数据的密度是这 K 个高斯的加权和:
每个成分有自己的中心 μₖ、自己的椭圆 Σₖ、自己的份额 πₖ。所有这些参数怎么定?沿用上一课反复出现的那把尺子——最大似然(第 31 课):选一组参数,让"模型生成这批观测点"的似然最大。问题是,这个似然里有个看不见的变量(每个点到底来自哪团),直接求 argmax 求不动。EM 就是为这种"含隐变量的 MLE"量身定做的。
EM 算法:认领与重估的交替
EM(期望-最大化)把上面"鸡生蛋"的循环变成一个保证不断改善的迭代。它在两步之间来回跳:
然后回到 E 步,用更新后的高斯重新认领,再 M 步重估……每跑一轮,数据的总似然只增不减(这是 EM 的数学保证),中心和椭圆一步步贴合到数据的真实团块上,直到稳定收敛。注意它通常收敛到局部最优(似然曲面非凸,呼应第 28 课)——不同的初始化可能落到不同的解,所以实践中常多跑几次取最好。下面的小实验把这套 E/M 交替一帧帧演给你看。
软聚类 vs 硬聚类:GMM 与 k-means
你或许听过更简单的 k-means。它和 GMM 是近亲,但有两点不同:
- 硬 vs 软:k-means 把每个点斩钉截铁地分给最近的中心(要么 0 要么 1);GMM 给的是软归属(70% / 30%),能表达"这个点在边界上,模棱两可"。
- 圆 vs 椭圆:k-means 隐含假设每团是各向同性的圆(只看距离);GMM 用完整的协方差 Σₖ,能拟合拉长、倾斜的椭圆团。
事实上 k-means 可以看成 GMM 的一个极限特例(协方差缩成无穷小、责任退化成 0/1)。两者都用同一种 EM 式的"分配-更新"循环——这再次说明:无监督学习的多种算法,其实共享同一根脊梁。
常见误解
- "没有标签就学不到东西。" 恰恰相反。结构本身就是可学的信息:主方向、团块、密度。无监督学习正是从"没有答案"的数据里挖出答案之前的东西——表示和分组,这往往是后续一切的基础。
- "PCA 是用来聚类的。" 不是。PCA 找的是方向(降维 / 去冗余),不分组;GMM / k-means 找的是团块。两者常配合使用(先 PCA 降维、再聚类),但目标不同。
- "EM 一定收敛到全局最优。" 不。EM 保证似然单调上升并收敛,但只到局部最优(似然非凸,第 28 课)。换个初始中心可能得到不同结果——所以实践里多跑几次取似然最高的。
- "GMM 的'团数 K'能自动学出来。" 标准 GMM 里 K 是你事先设定的超参数,EM 只在给定 K 下估参数。选 K 要靠额外准则(如似然、BIC)或先验知识——这是无监督学习里典型的"没有标准答案"。