请想象一个没有老师的孩子,独自面对一盒散落的拼图。没有说明书,也没有参考答案,但他想出了一个聪明的办法:先把能确定的部分拼好,然后用手遮住一块碎片,根据周围的图案猜测它本该是什么——猜完松手一对照,自己就知道对没对。就这样,孩子用“遮一猜一验”的自问自答,把拼图本身变成了老师。这正是自监督学习的核心:让模型从无标签数据中自己构造“问题”与“答案”。本文的主角们——BERT 遮字猜词、GPT 逐词续写、SimCLR 拉近相似视图、MAE 重建被遮图像——全都是这场“拼图游戏”的变体。读懂这些游戏,你就读懂了大模型预训练的秘密:为什么海量无标注数据能让机器获得通用能力。
掌握自监督学习,你就握住了大模型预训练的核心引擎,也能在日常工作中用海量无标注数据训练出实用的表征模型——这是 AI 从业者最值得投资的基础能力。
可视化演示
展示自监督学习四大范式:BERT掩码预测、对比学习正负样本对、GPT自回归预训练、下游任务迁移微调。支持步进切换四个阶段。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+captions.mask+'
自监督概述
请想象一个没有老师的孩子,独自面对一盒散落的拼图。没有说明书,也没有参考答案,但他很快想出一个聪明的办法:先把能确定的部分拼好,然后用手遮住一块碎片,根据周围的图案猜它本该是什么——猜完松手一对照,自己就知道猜得对不对。这个“遮一猜一验”的小循环,让拼图自己变成了老师。深度学习里的自监督学习,用的正是同一个思路:模型不需要人类告诉它“正确答案”,而是从数据本身挖出问题与答案。
传统监督学习需要大量人工标注:告诉模型“这张图是猫”“这句话是褒义”。可互联网上真正多的是没有标签的数据——文章、照片、视频。自监督学习不再等待人类来标注,而是让模型自己出题:遮住句子里的一个词,预测它;旋转一张图片,预测旋转角度;从视频中抽掉几帧,预测缺失帧。这些“答案”(即伪标签)就藏在数据本身里,获取成本几乎为零。
把这种“自己出题自己答”的形式写成通用目标:先对样本 $x$ 施加一种破坏(遮掩、裁剪、加噪)得到 $\tilde{x}$,再让模型 $f_\theta$ 根据 $\tilde{x}$ 预测从 $x$ 中导出的目标 $y(x)$:
回到拼图桌:伪标签就是被遮住的那块碎片,预测就是孩子的猜测,周围的图案则是他的上下文。孩子不需要大人站在旁边判对错,拼图自己会给他反馈。正是这种“数据自造答案”的能力,让自监督学习成为大模型时代最趁手的工具。
- 期望运算符表示对所有训练数据取平均损失,衡量模型在整体数据上的平均表现。
- 数据采样样本从真实世界的数据分布中抽取,既可以是文本也可以是图像。
- 损坏视角$\tilde{x}$ 是原始样本被遮掩、裁剪或加噪声之后的样子,是模型真正看到的输入。
- 模型预测模型对损坏输入输出一个表征或预测,这是自监督学习“猜”的动作。
- 伪标签生成标签由数据自身导出,不需要人类标注,这正是“自监督”名称的来源。
- 损失度量$\ell$ 比较预测与伪标签的差距,梯度沿着它更新模型参数 $\theta$。
预训练范式
孩子没有停在“拼完一盒就收工”。他先大量练习各种拼图,成了“拼图通才”——之后无论是新拼图还是真实照片,他都能快速上手。这就是“先广学、后精用”的两段式学习:先把通用技巧练成本能,再在具体场景里快速适应。深度学习中的预训练范式,就是把这套成长路径搬进了神经网络。
“先广学”对应预训练阶段:在大规模无标签数据上执行自监督代理任务,让模型学到通用的语法、视觉结构与世界常识;“后精用”对应微调阶段:用少量带标签数据,在具体任务上继续训练模型。这样做的好处是,同一个预训练模型可以低成本地复用到无数个下游任务上,就像孩子的拼图经验可以迁移到任何新拼图上。
形式化地说,整个流程包含两个优化目标:首先在代理任务上求出最优参数 $\theta^{*}$,然后以它为起点在任务上微调得到 $\theta_f$:
拼图通才的每一次“上手新拼图”,都对应着工程师把预训练模型加载到新任务上。预训练省下的标注费用,就像孩子省下的请老师费用——这正是自监督预训练范式横扫工业界的根本原因。
- 最优参数$\theta^{*}$ 是预训练阶段在代理任务上达到最小损失的参数,代表“通用能力”。
- 代理任务损失$\mathcal{L}_{\mathrm{pretext}}$ 是遮词预测、对比损失等自监督任务的目标函数。
- arg min 运算符表示“在可行参数中挑出使损失最小的那一个”。
- 微调参数$\theta_f$ 是以预训练参数为起点、在下游任务上继续优化得到的参数。
- 下游任务损失$\mathcal{L}_{\mathrm{task}}$ 是分类、问答等具体任务的损失,通常需要少量标注数据。
对比学习
拼图盒里有两片很相似的碎片:同一片天空出现在不同位置的两朵云。孩子发现,“长得像”是最重要的线索——把相似的碎片凑近,把不相似的碎片分开,拼得就越快越好。这种“物以类聚”的直觉,正是对比学习的灵魂。
对比学习把这个直觉变成训练目标:把同一张图做两次不同的数据增强(旋转、裁剪、变色),得到两个“相似视图”,它们构成正样本对,在向量空间中应该靠近;不同图片的增强视图构成负样本对,应该彼此远离。模型学会的不是识别某张具体的图,而是判断“什么和什么是一伙的”。以 SimCLR 为代表的对比方法,用 InfoNCE 损失实现这一目标:
孩子在拼图游戏中不断“拉近相似、推开相异”,最终练就一双能看穿所有拼图的“相似之眼”。对比学习学到的这套通用表征不依赖任何人工标签,因此在图像、文本乃至多模态领域都大放异彩。
- 编码表征$z_i$ 与 $z_j$ 是同一张图两个增强视图经过编码器得到的向量。
- 相似度函数用余弦相似度衡量两个表征向量方向是否一致。
- 温度系数$\tau$ 缩放相似度,控制对比分布的锐利程度,影响模型对困难负样本的关注度。
- 负样本分母对批内除自身外所有样本的相似度求和,构成“谁都不像它”的对比基线。
- 负对数概率对归一化后的正样本概率取 $-\log$,正样本越突出,损失越小。
掩码语言建模
这一次,孩子翻开一本故事书,用拇指随机遮住几个字:“春眠不_晓,处处闻_鸟”。他试着根据前后的字把空缺补上。这个“遮字猜字”的小游戏,恰好就是 BERT 的预训练方式——把拼图游戏从图像搬到了语言上。
2018 年,BERT 提出掩码语言建模(MLM):随机遮住 15% 的词元,让模型利用左右两侧的上下文预测被遮住的词。与只“看左边”的模型不同,BERT 是双向编码器,每个词都能看到完整句子,因此学到的是“上下文深度理解”能力。值得注意的是,BERT 采用 80/10/10 掩码策略:80% 换成 [MASK],10% 换成随机词,10% 保持不变,以缓解预训练与微调阶段输入不一致的问题。
对每个被遮位置 $i$,模型在词表上输出一个概率分布,用交叉熵衡量预测与真实词的差距:
孩子通过“遮字猜字”游戏,学会了词与词之间的关系——“春眠”后面多半跟着“不觉晓”。BERT 靠这个简单游戏横扫了当时的 NLP 榜单,证明了一个道理:最好的语言老师,就是语言自己。
- 掩码位置集合$\mathcal{M}$ 是当前样本中被随机遮住的词元下标集合。
- 条件概率$P(w_i \mid \cdot)$ 表示在给定可见上下文时,该位置词为 $w_i$ 的概率。
- 双向上下文$w_{\setminus \mathcal{M}}$ 是去掉被遮词后剩下的所有词,包含左右两侧信息。
- 负对数求和对所有被遮位置取负对数概率并求和,预测越准总损失越小。
生成式预训练
拼图玩腻了,孩子开始讲故事。他指着故事书的开头,一个字一个字往下猜:“今→天→天→气→真→……”,每猜一个字就写下来,再猜下一个。他永远只看已经写下的部分,绝不偷看后面——这是另一种自监督游戏:续写。GPT 系列采用的就是这种思路。
GPT 使用自回归预训练:给定前面 $t-1$ 个词,预测第 $t$ 个词,依次训练。Transformer 解码器用带掩码的注意力保证每个位置只能看到过去,不能看到未来。这让 GPT 天然适合生成任务——你给它一个开头,它就能顺着“续写”的本能一直写下去。也因为只看前文,GPT 在需要回顾完整上下文的场景(如判断句子情感)上不如 BERT,但在生成上却一骑绝尘。
自回归模型把整句话出现的概率分解为每个词条件概率的连乘:
续写故事的孩子,练出了“顺着前文一路写下去”的肌肉记忆。GPT 把这个游戏玩到了极致——当数据量和参数规模足够大时,“续写”甚至演化出推理、翻译、写代码等能力,这是后话,但起点正是这场简单的接龙游戏。
- 句子联合概率左边是整句话作为一个整体出现的概率。
- 连乘分解把整句概率拆成每个词的条件概率逐个相乘。
- 条件概率项第 $t$ 个词只依赖它前面的词,这是“单向”的体现。
- 因果注意力掩码训练时用掩码矩阵保证第 $t$ 个位置只能访问前 $t-1$ 个位置。
掩码自编码器
孩子决定挑战地狱难度:把拼图拆散后,随机丢掉 75% 的碎片,只留下四分之一,然后凭借这些残片把整幅图画出来。听起来几乎不可能,但正是这种“极度缺失”逼他真正理解画面结构——天空在上、土地在下、碎片之间有纹理联系。MAE(掩码自编码器)把这场游戏搬到了图像上。
MAE 的做法是:把图片切成 16×16 的小块(patch),随机掩码 75% 的块,只把可见的 25% 送入编码器;随后,一个轻量级解码器以可见块的表征为条件,重建所有被掩码块的原始像素。掩码率越高,模型越无法靠“抄袭邻近像素”蒙混过关,只能学会真正的全局语义。
重建目标通常采用均方误差,逐像素比较预测与真实的差距:
只给 25% 碎片的游戏,让孩子被迫从“看懂边缘”上升到“看懂主题”。MAE 学到的高层语义表征在目标检测、分割等下游任务上表现优异——困难游戏带来的回报,往往比轻松游戏丰厚得多。
- 掩码块集合$\mathcal{M}$ 是被遮掉的图像块位置集合,数量通常占全部块的 75%。
- 归一化平均$\frac{1}{|\mathcal{M}|}$ 把所有掩码位置的误差取平均,得到平均重建误差。
- 重建像素$\hat{x}_i$ 是解码器对第 $i$ 个掩码位置输出的预测像素值。
- 原始像素$x_i$ 是原始图像的像素值,作为自监督学习的伪标签。
- 均方误差平方差对大误差施加更大的惩罚,鼓励模型精确重建。
实际应用
拼图通才的孩子终于走出房间:他看照片一眼就能抓住重点,读小说一遍就能复述情节,朋友让他推荐书单时总能说到点子上。小时候练的那些“自问自答”游戏,成了他受用终身的底层能力。在 AI 工业界,这套底层能力被称为“预训练表征”,应用无处不在。
NLP 中,BERT/GPT 的向量被用于文本分类、语义检索、问答系统;CV 中,MAE 等模型被用于目标检测、医学影像分析;多模态领域,CLIP 用对比学习把文本与图像对齐到同一个向量空间。以语义搜索为例:查询和文档分别经过预训练编码器得到语义向量,再用余弦相似度衡量相关度,即使说法不同、意思相近也能匹配上。
孩子说得出“推荐这本书的理由”,其实只是把拼图时代“相似性”的直觉用在了语义词空间。对工程师而言,一套预训练表征就是无数下游任务的高性价比起点——这就是自监督学习落地生花的地方。
- 查询向量$\mathbf{e}_q$ 是用户查询经过预训练编码器得到的语义向量。
- 文档向量$\mathbf{e}_d$ 是候选文档经同一个编码器得到的语义向量。
- 向量点积点积衡量两个向量方向的接近程度,方向一致时取值最大。
- 长度归一化除以模长后,相似度落在 $[-1, 1]$ 区间,只关心方向不关心长度。
大模型意义
孩子见过的拼图从 100 盒变成 1 亿盒后,发生了神奇的变化:他不再只是“会拼图”,而是开始“理解世界”。给他一段残缺的文字,他能补全;给他一个从没见过的任务,他能举一反三。这种能力上的突变,就是“涌现”。而推动这场质变的燃料,正是自监督学习。
大模型的训练几乎全部依赖自监督预训练:互联网提供了近乎无限的无标签文本、图像与音视频,自监督任务把这些“原材料”转化为“通用能力”。研究者发现,当模型参数量与数据量按规律增长时,预训练损失以幂律方式下降,并在某个临界规模后涌现出少样本学习、指令跟随等能力,使模型从“工具”升格为“基础模型”。
这种规模法则可以用幂律近似刻画:
从第一盒拼图到一亿盒拼图,孩子走的正是“自监督预训练 + 规模化”这条路。理解这条路,就理解了大模型为何能从海量无标注数据中长出通用智能——这也是每一位 AI 从业者都应该掌握的底层图景。
- 模型规模$N$ 是模型参数量,规模越大表示模型越“大”。
- 不可约误差$L_{\infty}$ 是数据本身的噪声下限,任何模型都无法突破。
- 经验常数$N_{\infty}$ 是与数据分布和模型架构相关的经验常数。
- 幂律下降$\left(N_{\infty}/N\right)^{\alpha}$ 刻画损失随规模增大而减小的速度。
- 缩放指数$\alpha$ 通常小于 1,控制着“砸更多钱”带来的收益递减速度。
AI 应用场景
电商语义搜索与智能问答
阶段:文本自监督预训练 → 下游微调
解决的问题:传统关键词搜索无法理解同义表达,用户搜“怎么退运费”匹配不到“退款流程”页面;人工维护同义词规则库成本高、更新慢。
具体案例:某电商平台收集数亿条无标注的用户咨询日志,用 BERT 掩码语言建模预训练,再在数千条人工标注的“查询-答案”对上微调。上线后检索准确率提升 23%,新话术无需再人工配置规则即可命中,客服人力成本下降明显。
医学影像少样本辅助诊断
阶段:图像自监督预训练 → 少量标注微调
解决的问题:医学影像标注需要专家逐张读片,昂贵且耗时;而医院积压了大量无标注的影像数据,传统监督学习难以利用。
具体案例:某医疗 AI 团队用 MAE 在 30 万张无标注的胸部 X 光片上预训练,再对几百张带“肺炎病灶”标注的片子微调。检测 AUC 比从零训练的模型高出 12 个百分点,标注成本节省约 90%,验证了“先自监督广学、再少量精学”的路径。
推荐系统冷启动
阶段:用户行为序列对比预训练
解决的问题:新用户行为记录少,传统协同过滤无法建模;需要从大量无标注的行为日志中学习用户兴趣表征。
具体案例:某短视频平台把同一用户的行为序列随机裁剪、打乱成两个增强视图,构成正样本对,用 InfoNCE 损失做对比预训练,得到用户兴趣向量。在冷启动场景中,新用户推荐点击率提升 8%,同时减少了人工特征工程的维护成本。
Python 演示
import torchimport torch.nn as nnimport torch.nn.functional as F torch.manual_seed(42) class Projector(nn.Module): """将原始特征映射到对比学习使用的低维空间""" def __init__(self, dim_in, dim_out): super().__init__() self.fc = nn.Sequential( nn.Linear(dim_in, dim_in), nn.ReLU(), nn.Linear(dim_in, dim_out), ) def forward(self, x): return self.fc(x) def info_nce_loss(z_i, z_j, temperature=0.07): """InfoNCE 损失:拉近正样本对,推远负样本对""" N = z_i.size(0) z = torch.cat([z_i, z_j], dim=0) # [2N, D] z = F.normalize(z, dim=1) sim = z @ z.t() / temperature # [2N, 2N] 相似度矩阵 mask = torch.eye(2 * N, dtype=torch.bool) sim.masked_fill_(mask, -1e9) # 排除自身 labels = torch.cat([torch.arange(N, 2 * N), torch.arange(N)]) return F.cross_entropy(sim, labels) model = Projector(64, 32)optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) for epoch in range(50): x = torch.randn(32, 64) x_i = x + 0.1 * torch.randn_like(x) # 增强视图一 x_j = x + 0.1 * torch.randn_like(x) # 增强视图二 loss = info_nce_loss(model(x_i), model(x_j)) optimizer.zero_grad() loss.backward() optimizer.step() if epoch % 10 == 0: print("epoch %d, loss %.4f" % (epoch, loss.item()))
z = F.normalize(z, dim=1)把表征向量投影到单位球面,只用方向衡量相似度。sim = z @ z.t() / temperature用矩阵乘法一次性算出所有样本两两之间的相似度。sim.masked_fill_(mask, -1e9)将对角线上的自身相似度设为负无穷,让 softmax 中自己“不参与竞争”。labels = torch.cat([torch.arange(N, 2 * N), torch.arange(N)])第 $i$ 个样本的正样本是另一个视图中的第 $i$ 个,构成标签。F.cross_entropy(sim, labels)用交叉熵实现 InfoNCE 的 softmax 对比,正样本在候选者中越突出,损失越低。
常见误区
误区“自监督学习和无监督学习不是一回事吗?反正都不用人工标签,我从来没觉得它们有区别。”
正解二者确实都“不用人工标注”,但内在逻辑不同。无监督学习(聚类、降维、密度估计)没有显式预测目标;自监督学习则会从数据中构造伪标签并做预测任务——就像遮住拼图猜图案。它更像是“让数据扮演老师”的监督学习,只是老师由数据自己担任。
为何常见:学术资料常把自监督归入无监督的大类,初学者只看“有无标签”这个表层特征,而忽略了“是否有自造目标”这一本质区别。
误区“BERT 会预测被遮住的字,那让它从头开始一直猜下去,不就能写文章了吗?”
正解BERT 是双向编码器,每个位置能同时看到左右两侧上下文;而写文章需要“只看前文、逐词生成”的自回归方式。BERT 就像能看到整幅拼图的审阅者,擅长分析理解,却不适合从头“续写”。GPT 的因果掩码注意力才是为生成设计的。
为何常见:“预测被遮词”与“生成下一个词”表面相似,容易让人忽略注意力方向(双向 vs 单向)的根本差异。
误区“自监督不用人工标注,那我随便从网上抓几十 TB 的文本丢进去训练,效果一定更好。”
正解数据规模重要,但质量同样关键。重复、噪声大、领域不匹配的数据会让模型学到冗余甚至有害的模式,导致下游任务掉点。就像拼图里混进碎纸片,拼得再多也拼不出干净的画面。数据清洗、去重与领域匹配是预训练工程的关键步骤。
为何常见:“无标签等于零成本”让人产生“质量无所谓”的错觉,忽视了脏数据对表征的隐性污染。
误区“把同一只猫的两张不同照片在向量空间里拉近,模型不就学会猫了吗?负样本应该可有可无吧。”
正解如果只有“拉近正样本对”的信号,模型的最优策略是把所有输入都映射到同一个点——这被称为表征坍塌,模型退化成什么都不学。InfoNCE 分母中的负样本提供了“推开其他样本”的对抗力量,模型才被迫保留区分性特征。就像孩子只学“什么和什么像”,却不学“什么和什么不像”,他根本无法分辨任何东西。
为何常见:“相似的东西要接近”直觉上容易理解,“不相似的要远离”这一半常被忽略,导致对损失函数理解残缺。
面试题
Q1. 自监督学习的核心思想是什么?
- A.从无标签数据中构造监督信号← 正确答案
- B.用人工标注的数据来训练
- C.用强化学习奖励来训练
- D.用对抗生成网络合成数据
答案:A。自监督的本质是“数据自造监督信号”——通过遮掩、变换等操作构造伪标签进行预测。B 是监督学习,C 是强化学习,D 是数据合成技术。就像拼图游戏里孩子自己出题自己验证,不需要人类当老师。
Q2. BERT 的预训练主任务是什么?
- A.根据前文预测下一个词
- B.掩码语言建模与下一句预测← 正确答案
- C.对比增强视图间的相似度
- D.重建被遮住的图像区域
答案:B。BERT 的预训练包含掩码语言建模(预测被遮词)和下一句预测两个任务。A 是 GPT 的做法,C 是对比学习,D 是 MAE。注意“下一句预测”也曾是 BERT 预训练的重要组成部分。
Q3. 下列哪一项是 GPT 采用的训练方式?
- A.双向掩码语言建模
- B.图像块重建任务
- C.自回归下一个词预测← 正确答案
- D.正负样本对比学习
答案:C。GPT 采用自回归方式,只看前文、逐词预测。A 是 BERT 的双向掩码建模,B 是 MAE 的图像重建,D 是 SimCLR 的对比学习。四种方法都是自监督,但训练目标各不相同。
Q4. 关于 InfoNCE 损失中的温度系数 τ,下列说法正确的有?
- A.τ 越小相似度分布越尖锐← 正确答案
- B.τ 过大会削弱对比信号← 正确答案
- C.τ 过小容易导致训练不稳定← 正确答案
- D.τ 只影响正样本对的权重
答案:ABC。τ 控制 logits 的缩放:τ 越小分布越尖锐,模型更关注最像的困难负样本,但过小会导致梯度不稳;τ 越大分布越平缓,对比信号变弱。D 错在温度系数同时作用于正负样本的相似度。
Q5. 为什么对比学习必须引入负样本?
- A.避免模型表征出现坍塌← 正确答案
- B.提高正样本对的相似度
- C.减少模型参数量消耗
- D.加快数据增强的速度
答案:A。没有负样本时,模型的最优策略是把所有样本映射到同一个点,即“表征坍塌”,学不到任何区分性信息。B 是收益而非负样本存在的必要性;C、D 与负样本无关。
Q6. MAE 设置 75% 高掩码率的主要目的是?
- A.迫使模型学习全局语义结构← 正确答案
- B.让解码器处理更多的图像块
- C.降低训练数据的内存占用
- D.提高重建图像的像素精度
答案:A。75% 掩码意味着模型只能看到四分之一的像素,必须依赖全局语义和物体结构常识才能重建缺失块,从而学到可迁移的高层表征。B、C、D 都不是 MAE 设计高掩码率的核心动机。
Q7. BERT 掩码采用 80%[MASK]、10% 随机词、10% 不变的原因是什么?
- A.缓解预训练与微调输入不一致← 正确答案
- B.提高模型并行计算训练速度
- C.减少模型对上下文信息依赖
- D.让模型能够处理任何噪声输入
答案:A。预训练时输入含 [MASK],微调时输入全是自然词,两者分布不一致会伤害微调效果。10% 随机替换让模型对“任意位置的任意词”保持敏感,10% 不变保留原始语义。B、C、D 与 80/10/10 的设计动机无关。
Q8. 自回归预训练模型的注意力机制特点是?
- A.双向注意力能看到完整上下文
- B.掩码注意力只能看到过去信息← 正确答案
- C.稀疏注意力随机忽略一些位置
- D.线性注意力降低计算复杂度
答案:B。GPT 使用因果掩码注意力,每个位置只能访问前面位置,这符合“根据前文预测下一个词”的自回归假设。A 是 BERT 的双向注意力,C、D 是其他注意力变体,与自回归的核心设定无关。
Q9. 自监督学习相比监督学习的优势包括哪些?
- A.无需大量人工标注数据← 正确答案
- B.可利用互联网级无标注数据← 正确答案
- C.预训练表征可迁移到多任务← 正确答案
- D.训练过程不消耗任何算力
答案:ABC。自监督用无标签数据预训练,省去标注成本,且互联网数据规模巨大,表征可迁移到多个下游任务。D 显然错误——训练必须消耗算力。就像孩子拼图不用交学费,但还是要花力气拼。
Q10. 关于自监督预训练与大模型能力,下列说法正确的有?
- A.规模扩大后模型会涌现新能力← 正确答案
- B.基础模型微调可适配各类下游任务← 正确答案
- C.模型性能与数据量严格呈线性关系
- D.自监督表征能跨模态进行语义对齐← 正确答案
答案:ABD。规模扩大后,大模型展现出少样本学习、指令跟随等涌现能力;基础模型经微调可适配分类、问答等任务;CLIP 等模型证明自监督表征可跨模态对齐。C 错在性能并非与数据量严格线性相关,而是先快速提升后趋于饱和的幂律关系。