跳到主要内容

第 25 章拆掉了标签,靠「数据自己的性质」定目标;这一章把答案也交给数据自己: 输入的一部分去预测另一部分,或者同一条样本的两个视图互相认亲。 训练形式和监督学习一模一样——给输入、对答案、算损失——只是答案不再是人标的, 是从原始数据里自动生成的。

自监督学习:监督信号从数据自己来

1. 这一章讲什么

两件事: 一是把「自监督学习」这个现代预训练的主力方法讲透——它的四类任务 (预测型、掩码重构型、对比型、跨模态)各自怎么从数据里造出答案; 二是把评价标准摆正——预训练损失好,不等于表示好。

它在全书链条里的位置: 第 25 章末尾说,堆叠自编码器把「先无标注学表示、再迁移」 的思想递了下去;这一章是那条思想的正篇。它同时是第 31 章的前置: 大语言模型的预训练,用的正是本章第 2 节那条训练目标。

需要第 03 章(最大似然)和第 26 章;第 21 章的因果掩码会在第 2 节再次出现。

2. 顶层全景

答案从哪来?
├ 预测型 用前面预测后面 → 生成见长(31 章的主角)
├ 掩码型 挖空再用两边填回来 → 理解见长(BERT 一族)
├ 对比型 拉近正例对、推开负例对 → 判别性表示(SimCLR/MoCo)
│ └ 不用负例:动量编码器、停止梯度防坍塌(BYOL/SimSiam)
├ 联合嵌入预测 直接预测表示,不恢复像素(I-JEPA)
└ 跨模态 图文天然成对,共享语义空间(CLIP)

评价:预训练损失只是代理指标 → 线性探测、微调、检索等下游任务说话

一句话链条: 无标注数据量大得惊人 → 想法是让数据自己出题自己给答案 → 出题方式不同,学到的表示性格不同(会写 vs 会懂 vs 会认)→ 但「题做得好」不等于「表示有用」,评价必须绕道下游任务。

3. 标签从哪儿来

书对自监督学习的定位有一句关键的对比:训练形式和监督学习「并没有本质区别: 都是通过『输入-目标』对来学习一个映射函数」,不同之处在于目标「不是由人工标注 得到的,而是由原始数据自动生成的」1

核心思想书用一句话钉住:利用输入数据的一部分去预测另一部分,或者通过比较 不同样本(或同一条样本的不同视图)来学习表示2

它和第 25、26 章那些经典方法的关系,书划得很清:自编码器也可以算自监督 (输入自己当目标),降噪自编码器更接近现代的「去噪重构」任务;但现代文献说 「自监督」时,强调的是面向预训练的任务设计表示的迁移能力3。 任务分四类:预测型(下一个词元预测)、掩码重构型(掩码建模和去噪重构)、 对比型(拉近正样本并拉远负样本)、跨模态(利用图文等天然对应)4

4. 用前面预测后面:一条推导,全书只用这一遍

这是第 31 章那条主线的根。把联合概率拆成逐位置的条件概率,再逐位置算损失—— 这条推导只在这里做一遍,后面章节直接引用。

给定词元序列 x = [x₁, x₂, …, x_T],自回归语言模型把整个序列的概率 按概率的乘法拆解(第 03 章讲的那条链式法则)写成5:

p(x) = p(x₁) · p(x₂|x₁) · p(x₃|x₁,x₂) · … · p(x_T|x₁,…,x_{T−1})

训练目标是最大化训练集上的似然,等价于最小化负对数似然(式 10.50): 对每个位置,把「真实出现的下一个词元」的对数概率加起来取负6

主走查:一句话上的乘法拆解

数据:「我 今天 去 了 学校」,五个词。下面每个条件概率都是为演示编的,不是真实数值。

按乘法拆解,整句话的概率是五个条件概率的乘积:

位置预测目标条件(前文)演示概率 p
1(无)0.2
2今天0.3
3我 今天0.5
4我 今天 去0.6
5学校我 今天 去 了0.4

整句概率 p = 0.2×0.3×0.5×0.6×0.4 = 0.0072。 负对数似然 = −ln(0.0072) = −(ln0.2+ln0.3+ln0.5+ln0.6+ln0.4) = 1.61+1.20+0.69+0.51+0.92 = 4.93

读法:每个位置「答得越准」(概率越接近 1),该项的负对数越接近 0; 0.5 那一步罚掉 0.69,0.2 那一步罚掉 1.61——模型在哪一步没底气,损失账本上一眼可见。 训练要做的,就是把每个位置的真实词元的概率往上推。

这个目标书特别点了它的性质:监督信号「完全来自原始文本自身」—— 每个位置真实出现的下一个词元就是天然的学习目标7。GPT(生成式——逐词往外写——预训练)系列、LLaMA 系列 大语言模型都用它;而且书预先埋了一句:当模型规模、数据规模和训练计算同时扩大时, 仅靠这个看似简单的目标,也能学到迁移能力很强的表示——这条规律叫规模法则, 第 31 章正篇8

5. 挖空再填回来:掩码建模

换一种出题方式:先把输入的一部分遮住,再让模型根据其余部分恢复被遮的内容。 设被掩码的位置集合是 m(x),目标只对这些位置算负对数似然(式 10.51)9

它和第 4 节的分工,书给了一段值得整段记下的对比:下一个词元预测采用 从左到右的单向建模,更适合文本生成;掩码建模利用双向上下文 恢复被遮位置,更适合理解型表示学习。二者共同构成现代自然语言预训练的 两条重要技术路线10

BERT(双向编码的代表模型)是这条路线的代表。

视觉里的 MAE 随机遮掉大量图像块(切好的小方块)再重构,书用它说明掩码建模是跨模态的通用范式11

拿第 4 节那句话再走一遍(概率为演示编的):遮住「去」,变成「我 今天 [MASK] 了 学校」, 现在的目标不是用左边的 3 个词,而是用剩下的 4 个词(左边的「我 今天」和右边的 「了 学校」)一起猜中间——这就是「双向」的具体含义。同一个句子, 两条路线出的是两道不同的题。

6. 拉近正例、推开负例:对比学习

第三类任务不再「猜词」,而是「认亲」。思想一句话:相似样本的表示更接近, 不相似样本的表示更远离12

样本 x 过编码器得到表示 z;正样本 x₊(比如同一张图裁两次、各自做一遍增强) 过同一编码器得到 z₊;一批其他样本是负例 {z₋}。书给的损失(式 10.53)形状是: z 和 z₊ 的相似度,除以「它自己和全部负例的相似度」再取负对数—— 本质上是在答一道选择题:「这一批候选里,哪个是 x 的亲戚?」13

式子里有个温度参数 τ(除在相似度上):它控制这道选择题有多尖锐—— τ 小,分数差距被放大,模型被迫更果断;τ 大,分布更平缓。这个参数和 第 31 章解码用的采样温度是同一个数学形状、不同的用途,到那一章还会再碰见。

正负例怎么造是关键:同一个样本经过不同数据增强构成正样本对,不同样本构成 负样本对;SimCLR 系统展示了这条路在视觉表示上的有效性14

7. 不给负例也行:防坍塌的两手

一个自然的担心:选择题没有干扰项,模型把所有输入都映射到同一个点, 损失不就永远最低了?这叫表示坍塌。书列了两条不用负例的路: MoCo 用动量编码器和队列机制,降低对大批量负样本的依赖; BYOL 和 SimSiam 干脆不显式构造负样本,靠**「停止梯度」等技巧**避免坍塌15

「停止梯度」直白说就是:两个编码器里,有一份的参数在这步不更新—— 别让「学生」和「老师」一起朝同一个点滑过去。书没有展开梯度层面的推导, 只给了机制名和出处;读者要知道的是:防坍塌靠的是在两个分支之间人为制造不对称

8. 直接预测表示,不恢复像素

第四类更进一步:连「重构输入」都省了。书称之为联合嵌入预测: 模型先把输入映射到表征空间,再利用一个视图或上下文去预测另一个视图或被遮蔽 区域的表征——「不一定要求恢复像素、词元等原始信号,而是直接学习更抽象的 语义特征」16。I-JEPA 是代表。

和掩码建模的差别可以用一句话对齐:掩码建模的答案是「被遮住的原始内容」, 联合嵌入预测的答案是「被遮住区域的表示」。低层细节(纹理、精确亮度) 不再被强制恢复,表示可以把容量留给语义。

9. 两个模态天然成对:跨模态对比

图文对、语音-文本对这类数据,对应关系是采集时就带着的,不需要人工标注。 做法:要求模型判断图文是否匹配,或做跨模态对比——匹配的图像和文本在表示空间 中更接近,不匹配的更远离。CLIP 的做法:给一批图文对,比较正确配对与错误配对 之间的相似度,学出共享的语义表示空间17

书点出这一步的意义:自监督从「单模态表示学习」发展成了「跨模态知识对齐」, 为多模态(图文等多种输入)检索、视觉问答、多模态大模型奠基18。第 33 章的多模态(图文等多种输入)智能体, 感知层的地基就是这里。

10. 表示好不好,谁说了算

这是本章最该带走的一条纪律。 书的原文值得直接读:与监督学习不同, 无监督学习和自监督学习「往往没有一个统一、直接的评价标准」,实践中的做法是 通过下游任务表现来间接评估——线性探测(冻住表示,只训一个线性分类器)、 微调后的验证集性能、检索指标、重构误差、生成样本质量19

并且书紧接着补了一句警惕:「预训练损失、聚类内部指标或重构误差 只是代理指标,未必总能反映真实任务需求」;输出概率分数时还要结合 第 02 章的校准思想检查置信度20。预训练损失低,只说明题答得好; 题和真活儿之间的关系,永远需要单独验证。

11. 作者的判断与证据

书里给了完整推导的: 乘法拆解与负对数似然(式 10.49-10.50)56; 掩码建模目标(式 10.51)9;对比损失(式 10.52-10.53)13

书里给了坦白的: 代理指标未必反映真实需求20;效果「仍取决于数据分布、 预训练任务和微调方式是否匹配」21;对比散度一类的近似(第 36 章)有偏—— 这是后话,但本章的评价纪律和它一脉相承。

书里给了历史定位的: 自编码器/降噪自编码器是这条线的祖先3; 「现代自监督学习并没有脱离无监督学习,而是在更大规模数据、更强模型和更明确的 预训练目标下,发展出了新的训练范式」22

12. 边界与局限

负例与批大小的账书没有细算: 对比学习的效果依赖负例数量与质量, SimCLR 依赖大批量、MoCo 用队列解耦——机制给了,但「到底要多少负例才够」 没有定量结论。

掩码比例、增强强度这些旋钮只有出处没有准则: 遮多少、怎么增强, 书给了代表性做法和文献,没有给选择方法。

涌现(能力随规模突然出现)的伏笔在这里还没展开: 第 4 节末尾那句「规模扩大→迁移能力」 只有一句带过,那条规律的形状和配比,要等第 31 章。

13. 可带走的

  1. 自监督 = 训练形式照旧,答案从数据自己身上生成;
  2. 乘法拆解 + 逐位置负对数似然,是第 31 章预训练目标的全部数学(本章已推完);
  3. 预测型管生成,掩码型管理解——两条路线的分工由上下文方向决定;
  4. 对比学习 = 一道「认亲」选择题;温度参数调这道题的尖锐程度;
  5. 没有负例时,防坍塌靠动量编码器停止梯度制造不对称;
  6. 联合嵌入预测把答案从「原始内容」换成「区域的表示」,不再强制恢复细节;
  7. 图文对天然成对——配对关系本身就是监督信号(CLIP);
  8. 预训练损失是代理指标,评价必须绕道下游:线性探测、微调、检索;
  9. 概率输出要查校准——第 02 章的纪律在这里回归;
  10. 这条线的祖先是无监督特征学习(第 25 章):去噪重构、逐层预训练。

14. 原文地图

主题原书章原文位置
目标由数据自动生成第10章 无监督学习text/11-ch10.txt:673(搜「而是由原始数据自动生成的」)
核心思想一句话第10章 无监督学习text/11-ch10.txt:680(搜「利用输入数据的一部分去预测另一部分」)
与自编码器的关系第10章 无监督学习text/11-ch10.txt:675(搜「自编码器也可以看作自监督学习」)
四类任务第10章 无监督学习text/11-ch10.txt:861(搜「预测型任务」)
乘法拆解与 NLL第10章 无监督学习text/11-ch10.txt:696(搜「设一个词元序列为」) · text/11-ch10.txt:707(搜「(10.50)」)
监督信号来自文本自身第10章 无监督学习text/11-ch10.txt:710(搜「完全来自原始文本自身」)
规模法则伏笔第10章 无监督学习text/11-ch10.txt:716(搜「采用这一训练目标」) · text/11-ch10.txt:719(搜「规模法则」)
掩码建模目标第10章 无监督学习text/11-ch10.txt:729(搜「(10.51)」)
单向 vs 双向第10章 无监督学习text/11-ch10.txt:741(搜「从左到右的单向建模方式」) · text/11-ch10.txt:743(搜「两条重要技术路线」)
BERT 与 MAE第10章 无监督学习text/11-ch10.txt:733(搜「更强的双向表示能力」) · text/11-ch10.txt:737(搜「掩码自编码建模」)
对比学习思想与损失第10章 无监督学习text/11-ch10.txt:746(搜「对比学习(Contrastive Learning)」) · text/11-ch10.txt:759(搜「(10.53)」) · text/11-ch10.txt:762(搜「温度参数」)
正负例构造与 SimCLR第10章 无监督学习text/11-ch10.txt:764(搜「构造正样本和负样本」) · text/11-ch10.txt:767(搜「系统展示了对比学习」)
MoCo / BYOL / SimSiam第10章 无监督学习text/11-ch10.txt:769(搜「动」) · text/11-ch10.txt:771(搜「停止梯度」)
联合嵌入预测第10章 无监督学习text/11-ch10.txt:774(搜「联合嵌入」) · text/11-ch10.txt:779(搜「不一定要求恢复像素」) · text/11-ch10.txt:782(搜「I-JEPA」)
跨模态与 CLIP第10章 无监督学习text/11-ch10.txt:786(搜「天然成对出现」) · text/11-ch10.txt:789(搜「以 CLIP 风格的方法」) · text/11-ch10.txt:794(搜「共享语义」)
下游评价与线性探测第10章 无监督学习text/11-ch10.txt:797(搜「往往没有一个统一、直接的评价」) · text/11-ch10.txt:799(搜「线性探测」)
代理指标警告第10章 无监督学习text/11-ch10.txt:801(搜「只是代理指标」)
三条优点与匹配条件第10章 无监督学习text/11-ch10.txt:805(搜「主要优点包括」) · text/11-ch10.txt:788(搜「是否匹配」)
总结定位第10章 无监督学习text/11-ch10.txt:835(搜「来自数据自身的监督信」) · text/11-ch10.txt:838(搜「代理任务」)

Footnotes

  1. 出处:「第10章 无监督学习」第 670 至 674 段(text/11-ch10.txt:673,搜「而是由原始数据自动生成的」)。

  2. 出处:「第10章 无监督学习」第 680 至 681 段(text/11-ch10.txt:680,搜「利用输入数据的一部分去预测另一部分」)。

  3. 出处:「第10章 无监督学习」第 675 至 679 段(text/11-ch10.txt:675,搜「自编码器也可以看作自监督学习」; text/11-ch10.txt:683,搜「预训练(Pre-Training)任务的设计」)。 2

  4. 出处:「第10章 无监督学习」第 685 至 689 段(text/11-ch10.txt:685,搜「预训练任务大致可以分为几类」)。

  5. 出处:「第10章 无监督学习」第 696 至 700 段(text/11-ch10.txt:696,搜「设一个词元序列为」), 式(10.49)。 2

  6. 出处:「第10章 无监督学习」第 702 至 708 段(text/11-ch10.txt:702,搜「最大似然学习」; text/11-ch10.txt:707,搜「(10.50)」)。 2

  7. 出处:「第10章 无监督学习」第 710 至 712 段(text/11-ch10.txt:710,搜「完全来自原始文本自身」)。

  8. 出处:「第10章 无监督学习」第 715 至 719 段(text/11-ch10.txt:716,搜「采用这一训练目标」; text/11-ch10.txt:719,搜「规模法则」)。原书边注指向第 13.2 节,本书第 31 章正篇。

  9. 出处:「第10章 无监督学习」第 726 至 730 段(text/11-ch10.txt:729,搜「(10.51)」)。 2

  10. 出处:「第10章 无监督学习」第 740 至 743 段(text/11-ch10.txt:741,搜「从左到右的单向建模方式」; text/11-ch10.txt:743,搜「两条重要技术路线」)。

  11. 出处:「第10章 无监督学习」第 732 至 739 段(text/11-ch10.txt:733,搜「更强的双向表示能力」; text/11-ch10.txt:737,搜「掩码自编码建模」)[Devlin et al., 2019; He et al., 2022]。

  12. 出处:「第10章 无监督学习」第 746 至 749 段(text/11-ch10.txt:746,搜「对比学习(Contrastive Learning)」)。

  13. 出处:「第10章 无监督学习」第 750 至 763 段(text/11-ch10.txt:759,搜「(10.53)」; text/11-ch10.txt:762,搜「温度参数」),式(10.52)-(10.53)。 2

  14. 出处:「第10章 无监督学习」第 764 至 768 段(text/11-ch10.txt:764,搜「构造正样本和负样本」; text/11-ch10.txt:767,搜「系统展示了对比学习」)[Chen et al., 2020]。

  15. 出处:「第10章 无监督学习」第 769 至 772 段(text/11-ch10.txt:771,搜「停止梯度」) [He et al., 2020; Grill et al., 2020]。

  16. 出处:「第10章 无监督学习」第 774 至 783 段(text/11-ch10.txt:777,搜「Joint-Embedding Predictive」; text/11-ch10.txt:779,搜「不一定要求恢复像素」)[Assran et al., 2023]。

  17. 出处:「第10章 无监督学习」第 785 至 791 段(text/11-ch10.txt:786,搜「天然成对出现」; text/11-ch10.txt:789,搜「以 CLIP 风格的方法」)[Radford et al., 2021]。

  18. 出处:「第10章 无监督学习」第 794 至 796 段(text/11-ch10.txt:794,搜「共享语义」)。

  19. 出处:「第10章 无监督学习」第 797 至 800 段(text/11-ch10.txt:797,搜「往往没有一个统一、直接的评价」; text/11-ch10.txt:799,搜「线性探测」)。

  20. 出处:「第10章 无监督学习」第 800 至 802 段(text/11-ch10.txt:801,搜「只是代理指标」)。 2

  21. 出处:「第10章 无监督学习」第 810 至 813 段(text/11-ch10.txt:813,搜「取决于数据分布、预训练任务和微调方式是否匹配」)。

  22. 出处:「第10章 无监督学习」第 835 至 840 段(text/11-ch10.txt:835,搜「现代大模型的发展说明」; text/11-ch10.txt:838,搜「代理任务」)。