跳到主要内容

前面所有章节都假设有人标好了答案;这一章把脚手架拆掉,只留数据。 没有标签,「学得好」就换了一个定义:投影后留下的信息最多(PCA)、 用得上的特征最少(稀疏编码)、或者删掉细节还能还原(自编码器)。 三种定义,三种算法,一个共同点——目标函数里没有标签,只有数据自己。

无监督特征学习:没有标签的时候学什么

1. 这一章讲什么

两件事: 无监督学习(没有人工标签的学习)的任务地图(特征学习、密度估计、聚类、自监督——后两块 分别在第 26 章和第 27 章);以及经典特征学习的三条路线(PCA、稀疏编码、自编码器) 及其变体。

它在全书链条里的位置: 第 05 章说特征由人手工设计是上限瓶颈, 第 04 章埋的问题是「能不能让机器自己决定看什么」。 这一章是那条线索的第一次正面回答——不用标签,用数据自身做目标; 它的思想终点(先无标注学表示、再迁移)在第 27、31 章长成现代预训练。

需要第 03 章、第 10 章;第 01 章的特征向量首次真正承重。

2. 顶层全景

无监督四类任务:
特征学习(本章) 密度估计(第 26 章) 聚类(第 26 章) 自监督(第 27 章)

没有标签 → 目标换成「数据自己的性质」:
┌ PCA 投影后方差最大 w = 协方差矩阵最大特征值的特征向量
├ 稀疏编码 x ≈ Az,A 过完备,z 稀疏 → 可解释 + 自动特征选择
└ 自编码器 重构误差最小 → 但容量一大就退化成恒等函数,必须加约束
变体: 稀疏(KL 压活性) · 堆叠(逐层预训练) · 降噪(先损坏再还原)

一句话链条: 无标签也能定义目标 → PCA 用「方差」、稀疏编码用「稀疏」、 自编码器用「重构」→ 三者分别掉进各自的坑(类别可分性没保证、字典学习贵、 恒等函数退化)→ 约束与变体补上 → 「无标注学表示」这条线一直通到预训练时代。

3. 无标签时,「学」的定义换了

书把无监督学习的任务摆成四类1:特征学习、密度估计、聚类、自监督学习 (自监督=从数据自身构造监督信号,是现代预训练的主路线,第 27 章专讲)。 任务变了,三要素还在:模型、学习准则、优化算法;变的只是准则—— 特征学习常用最小化重构误差,同时给特征加约束(低维、独立、非负、稀疏)2

这句话值得停下来读一遍:「学到了什么」从此不由答案定义,由目标函数定义。 后面三节就是三种目标函数的选择史。

4. PCA:方差最大的那个方向

问题: 把 D 维数据投到一维,投到哪个方向信息丢得最少? PCA 的回答:让投影后的方差最大——方差最大的方向,正是数据变化最剧烈、 信息最集中的方向3

推导短得可以整段抄进脑子。投影 z=wᵀx,限制 ‖w‖=1; 投影方差整理出来是 σ = wᵀΣw(Σ 是协方差矩阵); 用拉格朗日乘子把它变成无约束优化,求导置零得到:

Σw = λw

w 是协方差矩阵的特征向量,λ 是特征值——而且 λ 恰好等于投影后的方差4。 第 01 章定义的「只被拉长、不被转向」的那个方向,在这里第一次承担全部重量: 最佳投影方向 = 最大特征值对应的特征向量;要 D′ 维,就取前 D′ 个特征向量5

两条使用边界书都给了:PCA 只是预处理——去噪声、去特征相关性; 但它不能保证投影后类别可分性更好——可分性是监督的事, 那把尺子叫线性判别分析(LDA)6。 信息最多的方向 ≠ 类别分得最开的方向,这句克制的话值一张书签。

5. 稀疏编码:一本过完备字典

生物原型: 初级视觉皮层的每个神经元只对特定刺激(特定方向的边缘、条纹)响应—— 外界信息经编码后只有一小部分神经元激活,表示天然稀疏, 还顺带符合生物学的低功耗特性7

数学形状: 给一组基向量 A(叫字典),把样本 x 表示成线性组合 x=Az, 系数 z 叫编码。要稀疏,字典得过完备(M>D)——基比维度多, 同一个输入有很多种好的重构方式,加稀疏约束才能把解空间收窄, 得到稳定、可辨识的表示8

目标函数两项:重构误差 + η·ρ(z)(ρ 是稀疏性度量,η 控强度)9。 度量本身有讲究:最直接的 ℓ0(数非零个数)不连续不可导,没法优化; 实际用 ℓ1(绝对值之和)或对数、指数函数替代10。 训练用交替优化:固定字典求每个样本的最优编码,再固定编码更新字典,来回倒11

稀疏换来了什么? 书列三条,前两条是收益,第三条是诚实的账12:

收益机制
可解释性只有少数非零元——样本被表示成「少数几个相关特征」
自动特征选择只突出与输入最相关的少数特征,降噪声、减轻过拟合
计算效率注意:学习稀疏编码本身要迭代优化,并不便宜;省的是学好之后的存储与后续计算

6. 自编码器:自己教自己

结构: 编码器 f(ℝ^D→ℝ^M)+ 解码器 g(ℝ^M→ℝ^D), 目标是最小化重构误差 ‖x − g(f(x))‖²——输入自己当老师13

它有一个陷阱,书用加粗级别的坦白写了出来: 如果 M≥D 且模型容量足够大,自编码器很容易退化为近似的恒等函数, 仅仅「复制」输入——重构误差接近零,学到的表示却未必有意义14。 出路是加约束:低维性、稀疏性、噪声鲁棒性、取值范围…… (把编码限制到 K 个取值,甚至变成向量量化/聚类问题15。)

三个值得记住的细节16:

  • 捆绑权重:令 W⁽²⁾=W⁽¹ᵀ,参数减半还带正则化效果;
  • 与 PCA 的关系:线性激活+平方误差下,线性自编码器学到的主子空间与 PCA 密切相关—— 可以把自编码器看作 PCA 在线性情形的推广,非线性激活则让它能表达更复杂的数据流形;
  • 用完就拆:训练结束后去掉解码器、只保留编码器, 编码器的输出直接当后续模型的输入。

主走查:三个点走完整套 PCA

数据:三个不共线的点 (1,2)、(3,5)、(6,6)。 以下全部按公式实算。

第一步:中心化。 均值 x̄ = (10/3, 13/3) ≈ (3.333, 4.333)。

第二步:协方差矩阵(中心化后算)Σ = [[4.222, 3.222], [3.222, 2.889]]。 读一眼:两维协方差 3.222 为正——x 大的点 y 也倾向大,数据整体沿一条斜线铺开。

第三步:特征分解。 解 det(Σ−λI)=0,两个特征值 λ₁ = 6.846、λ₂ = 0.265(都不为零)。最大特征值对应的单位特征向量 w ≈ (0.775, 0.631)——这就是第一主成分,斜率 0.631/0.775 ≈ 0.81, 与肉眼看到的「右上方伸长」一致。

第四步:投影与方差账。 三点投到 w 上得到 −3.28、0.16、3.12(降成一维)。 保留的方差比例 = λ₁/(λ₁+λ₂) = 6.846/7.111 ≈ 96.3%—— 丢掉的方向只带 3.7% 的信息。

第五步:看丢了什么。 把一维投影值还原回二维(均值 + 投影值×w): 第一个点还原为 (0.79, 2.26),原值 (1, 2)——差的那一小段,就是被扔掉的 3.7%。 「降维降掉了什么」在这组数里是肉眼可见的。

7. 三个变体:加稀疏、摞深层、先弄坏

稀疏自编码器(SAE): 反过来让 M>D,但给隐藏层加稀疏约束—— 把每个神经元的平均激活概率压到一个小值(如 ρ*=0.05), 用 KL 距离衡量 ρ̂ⱼ 与 ρ* 的差距作为惩罚项17。 和稀疏编码一样,买到的还是可解释性与隐式特征选择。

堆叠自编码器(SAE): 两层不够就逐层堆,逐层训练。 书给了它一个历史定位,值得整段记下:早期深层网络难直接优化, 逐层无监督预训练可以提供较好的参数初始化;随着数据、优化和结构的发展, 逐层预训练已不是主流——但**「先通过无标注数据学习表示,再迁移到下游任务」的思想, 对后来的自监督预训练产生了深远影响**18。 (第 27 章是这句话的正篇。)

降噪自编码器(DAE): 先按比例 μ(一般不超过 0.5)随机把 x 的一些维度置 0, 把损坏的 x̃ 喂进去,要求重构出无损的原始 x—— 利用高维数据的冗余性,从破损联想完整19。 书点破它的历史位置:「去噪重构」类自监督目标的早期代表20—— 第 27 章的掩码建模,和这个目标是直系亲属。

8. 作者的判断与证据

书里给了推导的: PCA 的拉格朗日推导与「λ=投影方差」4; 线性自编码器与 PCA 的关系16;稀疏编码交替优化的两步目标11

书里给了坦白的: PCA 不保证类别可分性6; 自编码器退化成恒等函数的条件与后果14; 稀疏编码的学习并不便宜12;逐层预训练已不再主流18

书里给了历史定位的: 堆叠自编码器的预训练史18; 降噪自编码器与「去噪重构」的血缘20; 稀疏编码的视觉皮层出处7

9. 边界与局限

三条路线都只处理线性/浅层的时代问题:PCA 是线性的;书没有展开核 PCA、 独立成分分析等后续变体;深层的表达力由自编码器接棒,但其理论性质(流形、 表示什么)书只点到「捕捉语义信息」为止18

「表示好不好」没有内部标准:本章所有目标函数(方差、稀疏、重构) 都是代理指标——代理指标与下游任务的表现之间的关系, 要等第 27 章的自监督和第 31 章的预训练才真正检验。

变体的取舍书给的偏少:稀疏度 ρ* 怎么定、降噪比例 μ 怎么选、 堆叠几层合适,都只有原则没有准则——工程上仍需验证集说话。

10. 可带走的

  1. 无监督学习的准则从「对不对」换成「数据自己的性质」:方差、稀疏、重构;
  2. PCA 的全部答案在一行矩阵方程里:Σw=λw,最大特征值=最大投影方差; 投影矩阵=前 D′ 个特征向量;
  3. PCA 是预处理不是分类器:去噪去相关可以,保证类别可分不行(LDA 才管这个);
  4. 稀疏编码的字典要过完备(M>D),靠稀疏约束从多解中挑稳定解;
  5. 稀疏度量:ℓ0 不可导不可优化,ℓ1 是它的可导替身;
  6. 稀疏换可解释与自动特征选择;但字典学习本身不便宜,省的是下游;
  7. 自编码器 M≥D 就会退化成复印机——约束(低维/稀疏/降噪)才是表示的来源;
  8. 线性自编码器 ≈ PCA 的推广;训练完只留编码器;
  9. 稀疏自编码器用 KL 距离把平均激活压到 ρ*(如 0.05);
  10. 逐层预训练已退出主流,但「无标注学表示→迁移」的思想长成了自监督; 降噪自编码器是「去噪重构」的祖先。

11. 原文地图

主题原书章原文位置
四类无监督任务第10章 无监督学习text/11-ch10.txt:23(搜「概率密度估计(Probabilistic Density Estimation)简称密度估计」) · text/11-ch10.txt:30(搜「聚类(Clustering)是将一组样本」) · text/11-ch10.txt:35(搜「自监督学习(Self-Supervised Learning,SSL」)
准则与约束第10章 无监督学习text/11-ch10.txt:41(搜「最小化重构误差」)
PCA 方差目标第10章 无监督学习text/11-ch10.txt:58(搜「使得在转换后的空间中数据的方差最大」)
特征向量结论第10章 无监督学习text/11-ch10.txt:99(搜「是协方差矩阵 𝚺 的特征向量」) · text/11-ch10.txt:104(搜「最大特征值对应的特征向量」)
PCA 的边界第10章 无监督学习text/11-ch10.txt:114(搜「不能保证投影后数据的类别」)
稀疏编码动机第10章 无监督学习text/11-ch10.txt:123(搜「稀疏编码(Sparse Coding」) · text/11-ch10.txt:130(搜「很高的稀疏性」)
字典与过完备第10章 无监督学习text/11-ch10.txt:143(搜「称为输入样本 𝒙 的编码」) · text/11-ch10.txt:156(搜「过完备的(overcomplete」)
稀疏度量第10章 无监督学习text/11-ch10.txt:178(搜「稀疏性衡量函数有多种选择」)
交替优化第10章 无监督学习text/11-ch10.txt:206(搜「交替优化的方法进行」)
三条优点第10章 无监督学习text/11-ch10.txt:225(搜「较好的可解释性」) · text/11-ch10.txt:229(搜「特征选择 稀疏性带来的一个好处」)
自编码器定义第10章 无监督学习text/11-ch10.txt:237(搜「自编码器(Auto-Encoder,AE」)
恒等函数退化第10章 无监督学习text/11-ch10.txt:254(搜「退化为近」) · text/11-ch10.txt:255(搜「恒等函数(Identity Function」)
捆绑权重第10章 无监督学习text/11-ch10.txt:289(搜「捆绑权重(Tied」)
只留编码器第10章 无监督学习text/11-ch10.txt:304(搜「去掉解码器,只保留编码器」)
稀疏自编码器第10章 无监督学习text/11-ch10.txt:336(搜「比如 0.05」)
堆叠与逐层预训练第10章 无监督学习text/11-ch10.txt:355(搜「堆叠自编码器(Stacked Auto-Encoder」) · text/11-ch10.txt:359(搜「逐层预训练已不再是」) · text/11-ch10.txt:361(搜「对后来的自监督预训练产生了深远影响」)
降噪自编码器第10章 无监督学习text/11-ch10.txt:370(搜「降噪自编码器(Denoising Auto-Encoder」) · text/11-ch10.txt:378(搜「去噪重构」)

Footnotes

  1. 出处:「第10章 无监督学习」第 23 至 40 段(text/11-ch10.txt:35,搜「自监督学习(Self-Supervised Learning,SSL」; text/11-ch10.txt:30,搜「聚类(Clustering)是将一组样本」)。

  2. 出处:「第10章 无监督学习」第 41 至 44 段(text/11-ch10.txt:41,搜「最小化重构误差」)。

  3. 出处:「第10章 无监督学习」第 56 至 60 段(text/11-ch10.txt:58,搜「使得在转换后的空间中数据的方差最大」)。

  4. 出处:「第10章 无监督学习」第 96 至 105 段(text/11-ch10.txt:99,搜「是协方差矩阵 𝚺 的特征向量」; text/11-ch10.txt:104,搜「最大特征值对应的特征向量」),式(10.5)-(10.7)。 2

  5. 出处:「第10章 无监督学习」第 107 至 110 段,式(10.8)。

  6. 出处:「第10章 无监督学习」第 113 至 118 段(text/11-ch10.txt:114,搜「不能保证投影后数据的类别」); 线性判别分析(LDA)同段点名。 2

  7. 出处:「第10章 无监督学习」第 123 至 131 段(text/11-ch10.txt:130,搜「很高的稀疏性」), [Olshausen et al., 1996];带通性边注在第 128 段附近。 2

  8. 出处:「第10章 无监督学习」第 148 至 163 段(text/11-ch10.txt:156,搜「过完备的(overcomplete」), 完备性数学小知识框;「缩小解空间」在第 160 至 163 段。

  9. 出处:「第10章 无监督学习」第 166 至 172 段,式(10.11)。

  10. 出处:「第10章 无监督学习」第 176 至 190 段(text/11-ch10.txt:178,搜「稀疏性衡量函数有多种选择」), 式(10.12)-(10.15)。

  11. 出处:「第10章 无监督学习」第 206 至 220 段(text/11-ch10.txt:206,搜「交替优化的方法进行」), 式(10.16)-(10.17)。 2

  12. 出处:「第10章 无监督学习」第 223 至 235 段(text/11-ch10.txt:225,搜「较好的可解释性」; text/11-ch10.txt:229,搜「特征选择 稀疏性带来的一个好处」); 「学习本身并不便宜」的坦白在第 232 至 234 段。 2

  13. 出处:「第10章 无监督学习」第 237 至 252 段(text/11-ch10.txt:237,搜「自编码器(Auto-Encoder,AE」), 式(10.18)-(10.19)。

  14. 出处:「第10章 无监督学习」第 254 至 258 段(text/11-ch10.txt:254,搜「退化为近」; text/11-ch10.txt:255,搜「恒等函数(Identity Function」)。 2

  15. 出处:「第10章 无监督学习」第 260 至 262 段(text/11-ch10.txt:262,搜「向量量化(Vector Quantization」)。

  16. 出处:「第10章 无监督学习」第 286 至 304 段(text/11-ch10.txt:289,搜「捆绑权重(Tied」; text/11-ch10.txt:304,搜「去掉解码器,只保留编码器」); 线性自编码器与 PCA 的关系在第 293 段(text/11-ch10.txt:293,搜「主成分分析在线性」)。 2

  17. 出处:「第10章 无监督学习」第 308 至 350 段(text/11-ch10.txt:336,搜「比如 0.05」), 式(10.24)-(10.26)。

  18. 出处:「第10章 无监督学习」第 351 至 362 段(text/11-ch10.txt:359,搜「逐层预训练已不再是」; text/11-ch10.txt:361,搜「对后来的自监督预训练产生了深远影响」)[Bengio et al., 2007]。 2 3 4

  19. 出处:「第10章 无监督学习」第 363 至 376 段(text/11-ch10.txt:370,搜「降噪自编码器(Denoising Auto-Encoder」)[Vincent et al., 2008]。

  20. 出处:「第10章 无监督学习」第 378 至 380 段(text/11-ch10.txt:378,搜「去噪重构」)。 2