半监督学习(Semi-supervised Learning)指的是:手上只有少量带标签的数据,同时有一大堆没有标签的数据,把两者放在一起训练模型,让无标签数据帮忙提升效果。
要理解它为什么有用,先看标注这件事有多贵。假设你要做一个工单自动分类系统,把用户提问分成"退款""物流""账号""其他"。规则写不出来,只能靠人一条条读、一条条打标签。打一千条可能还行,打十万条就是一场灾难——要人、要时间、要反复对齐标准,还得处理标注员之间的分歧。可与此同时,公司数据库里躺着几百万条历史工单,它们天然没有标签,但真实、完整、带着用户原话的分布特征。半监督学习想吃的就是这口饭。
打个比方。教小孩认动物,你不需要把动物园里每只动物都指着说一遍"这是猫""这是狗"。你只要认真教他认识几只猫和几只狗,之后他自己看绘本、看动画、看路边的小动物,慢慢就能把"猫感"和"狗感"迁移出去。少量带名字的样本是"家教课",大量没名字的样本是"自己瞎看"。半监督学习做的,就是让模型也能"自己瞎看"。
具体怎么让无标签数据发挥作用?常见思路有几类,都不需要公式也能讲清。
一是自训练(Self-training)。先用少量标注数据训一个还凑合的模型,让它去给无标签数据打"伪标签",挑那些它最有把握的样本,连同预测结果一起加回训练集,再训一轮。相当于让学生先做会做的题,做完对答案,再挑战更难的。
二是一致性正则(Consistency Regularization)。同一张图片稍微旋转、加噪、裁剪,模型应该给出同样的判断;同一句话换个说法,意思不该变。用这个要求去约束模型,无标签数据就提供了大量"应该保持一致"的训练信号。
三是基于图的传播。把每个样本看成图上的一个点,相似的样本连边,标签就像热量一样从有标签的点向周围扩散。
它和几个邻居概念的区别值得说清楚:
| 概念 | 数据情况 | 核心思路 |
|---|---|---|
| 监督学习 | 全部有标签 | 直接从标注里学映射 |
| 无监督学习 | 全部无标签 | 找结构、聚类、降维 |
| 半监督学习 | 少量有标签 + 大量无标签 | 用无标签数据辅助,提升监督任务效果 |
| AI 词典:自监督学习">自监督学习 | 无标签,但自动造出"伪任务" | 比如遮住一句话的一部分让模型补全 |
| 迁移学习 | 借用别的任务/数据上训好的模型 | 解决的是"从哪出发"的问题 |
注意,半监督学习和自监督学习容易混。自监督是自己给自己出题(预测被遮住的词、判断两张图是不是同一张的变换),目标是学一个通用表示;半监督是任务已经定好了,只是标注不够,想借无标签数据把这件事做得更准。两者常一起用:先用自监督预训练一个大模型,再用半监督在少量标注上微调。
对从业者的实际意义:当你发现标注预算只够覆盖需求的百分之几,别急着砍需求或加钱,先看看无标签数据有多少。数据量足够大、分布和任务一致时,半监督往往能把少量标注的价值放大好几倍。反过来,如果无标签数据和任务场景偏差很大(比如拿通用网页文本去救一个垂直领域的分类器),收益会打折,甚至引入噪声。
对普通职场人的意义更直接:以后做 AI 项目,先问"标注多少条、无标签多少条",比问"用什么模型"更能判断这事能不能成。少量标注 + 大量无标签,往往是性价比最高的一条路。具体工具和接口能力以官方页面为准。
