半监督学习 — 未标记数据不是免费的午餐,先验资再用
R — 原文 (Reading)
""聚类假设"(cluster assumption),即假设数据存在簇结构,同一个簇的样本属于同一个类别。……另一种常见的假设是"流形假设"(manifold assumption),即假设数据分布在一个流形结构上,邻近的样本拥有相似的输出值。"
— 周志华, 《机器学习》第13章 13.1节 "未标记样本"
"此类方法有一个关键:模型假设必须准确,即假设的生成式模型必须与真实数据分布吻合;否则利用未标记数据反倒会降低泛化性能。……遗憾的是,在现实任务中往往很难事先做出准确的模型假设,除非拥有充分可靠的领域知识。"
— 周志华, 《机器学习》第13章 13.2节 "生成式方法"
"不同视图、不同算法、不同数据采样、不同参数设置等,都仅是产生差异的渠道,而非必备条件。"
— 周志华, 《机器学习》第13章 13.5节 "基于分歧的方法"
I — 方法论骨架 (Interpretation)
未标记样本不含标签,却含有数据分布的信息——前提是你能把"分布"和"标记"挂钩起来。这个挂钩就是桥梁假设:聚类假设(同簇同类别)或流形假设(邻近样本输出相似),本质都是"相似的样本拥有相似的输出"。所有半监督方法的收益与风险都压在这座桥上。
三条纪律:
- 先验资:标记数据真的不够吗?若监督基线已达要求,引入半监督等于凭空增加一层假设风险——免费的午餐可能有毒。
- 查同源:未标注样本必须与标注样本来自同一分布(独立同分布采样)。分布错位时,海量廉价数据会把模型拽向错误的结构。
- 按领域知识选路线:生成式方法要求模型假设准确(需强领域知识背书,EM 求解);半监督 SVM 押注"低密度分隔";基于分歧的方法对模型假设最宽容——分歧才是本质,多视图只是产生分歧的渠道之一(不同算法/采样/参数皆可);图方法概念清晰但撞 O(m²) 存储墙,且天生直推(封闭世界,新样本要重构图或另补预测器)。
最后的安全阀:永远保留纯监督基线对照——加了未标记数据后在同一验证协议下不升反降,立即回退并按病灶定位排查。"安全半监督"至今仍是未决问题,所以对照纪律不是可选的礼貌,是唯一的防线。
A1 — 书中的应用 (Past Application)
案例 1: 瓜田问瓜——主动学习 vs 半监督的三岔口 (c32)
- 问题: 丰收季来到瓜田,瓜农只抱来三四个好瓜、指着五六个说还需再生长些时日——不到十个带标记的瓜训练分类器太少,地里满地的未标记瓜能不能用上?
- 方法论的使用: 作者把"用未标记瓜"拆成三条路逐一辨析:(1) 让模型先训一个、自己挑"对改善性能帮助最大"的瓜去问瓜农,问完加进训练集重训再挑——这是主动学习,花查询成本买专家信息;(2) 不与任何专家交互,直接利用未标记瓜携带的分布信息——这是半监督。直观演示:待判别瓜恰好位于一正一反两个标注瓜的正中间,只能瞎猜;但观察到周围未标记瓜聚出的簇后,可有把握判为正类(聚类假设落地)。(3) 请瓜农把地里全部瓜标完再用——耗费大量人力物力,被否定。
- 结论: 未标记样本虽无标记,却在"与有标记样本同分布"的前提下揭示了数据分布结构,可在标记稀缺时大幅助力建模;医学影像(影像海量、请专家全标病灶不现实)与网页推荐(极少用户愿花时间打标、互联网网页近乎无限)是同一结构的两个现实映射。
- 结果: 该开篇场景成为半监督章的公理级示例,同时埋下反面伏笔——桥梁假设不成立时未标记数据会反噬(见 B 段 x45)。
A2 — 触发场景 (Future Trigger) ★
用户会在什么情境下需要这个 skill?
- 用户手里只有几百条(甚至几十条)标注,但还有几万/几十万条同源未标注数据,问"这些未标注的能不能拿来训练"。
- 用户实现了 self-training / pseudo-label 流程,加入未标注数据后验证集反而掉点,来问"为什么会越加越差"。
- 用户分不清主动学习、半监督、直推学习、自监督的边界,纠结该往哪个方向投入标注预算。
- 用户想做协同训练/多视图学习,问双视图前提是否满足,或者两个"视图"其实是高度相关的特征切块。
- 医学影像、网页分类、语音、异常检测等"标注贵、数据贱"领域的方案讨论。
语言信号 (用户的话里出现这些就应激活)
- "只有几百条标注" / "标注太贵了" / "未标注数据怎么用" / "unlabeled data"
- "pseudo-label" / "self-training 风险" / "伪标记" / "加了大量无标注样本反而掉点"
- "semi-supervised" / "半监督" / "协同训练" / "co-training" / "multi-view 多视图"
- "TSVM" / "label propagation 标签传播" / "主动学习和半监督有什么区别"
与相邻 skill 的区分
- 与
ml-task-matching的区别: 那是训练前的通用选型(还没定范式);本 skill 只管"已确定要走利用未标记数据这条路之后"的资格审查与路线选择。问"用什么模型"→ 选型;问"没标签怎么办/未标注能不能用"→ 本 skill。 - 与
ml-bayesian-thinking的区别: 生成式半监督的底层机制(混合模型假设、EM 迭代、分布假设审查纪律)在那边展开;本 skill 管的是"何时敢用生成式半监督"的决策与安全对照,不重复推导。 - 与
ml-ensemble-design的区别: 基于分歧的方法与集成共享"制造多样性"的手艺(不同算法/采样/参数),但目的不同——集成用分歧降方差提精度,半监督用分歧消化未标记数据。用户目标是"利用无标签"→ 本 skill;"提升有标签任务的鲁棒性"→ ensemble。 - 与
ml-imbalanced-learning的区别: TSVM 标记指派过程中会出现伪标记类别不平衡(书中专门给出 Cu 拆分修正),不平衡的处理细节在那边;本 skill 只负责提醒这道坎的存在。
E — 可执行步骤 (Execution)
当 skill 被激活后, agent 应按以下步骤执行:
资格线一:标记数据真的不够吗
- 拿监督基线说话:仅有标注数据训练的模型,其验证性能距业务要求差多少?学习曲线是否还在随标注量上升?
- 完成标准: 给出"监督基线现状 + 差距量化"的一句话结论。
- 判停条件: 若监督基线已达标且曲线趋平 → 停止,直接监督学习,不引入额外假设风险。
资格线二:未标注与标注同源吗
- 审查两者的采集渠道、时间窗、预处理管线是否一致;必要时做分布对比(特征统计量/漂移检验)。
- 完成标准: 给出"同分布 / 异分布 / 存疑"三选一的判定与证据。
- 判停条件: 若明显异源 → 纯半监督收益存疑,改道主动学习(挑样本去标注)或域适应,并向用户说明原因。
桥梁假设验证
- 对数据做可视化/统计检查:是否存在簇结构(聚类假设)?低维邻域结构(流形假设)?类别间是否低密度分隔(S3VM 前提)?
- 完成标准: 至少一项与所选路线对应的假设证据(图或统计量),或明确承认"无法验证,风险自担"。
路线选型
- 按领域知识与技术约束四选一:生成式(有可靠领域知识支撑模型假设、标注极少时往往最好)/ S3VM-TSVM(低密度分隔成立、二分类、能承受迭代求解开销)/ 基于分歧(有多视图或能造分歧——算法/采样/参数差异皆可,最稳健)/ 图传播(样本量可控、可接受直推式封闭世界设定)。
- 完成标准: 写出所选路线 + 一句"为什么不是另外三条"。
安全性检查(强制,不可跳过)
- 保留纯监督基线;加入未标记数据的每个版本都在同一验证协议下与基线对比。
- 完成标准: 输出"基线 vs 半监督"的同协议对照数字。
- 判停条件: 若性能不升反降 → 立即回退基线,按病灶定位排查(生成式→模型假设不准;半监督 SVM→多个低密度划分中被做了不利选择),排查无效则放弃半监督路线并如实告知"safe 半监督尚无通解"。
工程纪律交付
- 伪标记置信度阈值与挑选数量上限、迭代轮数上限、类别平衡保护(参照 TSVM 的 Cu 拆分思路)、self-training 无纠错机制的固有风险书面提示。
- 完成标准: 交付说明包含上述四项配置及其理由。
B — 边界 (Boundary) ★
不要在以下情况使用此 skill
- 标注数据充足、监督学习已经好用:引入半监督是净增风险(多一层桥梁假设),没有收益就没有理由。
- 未标注数据与标注数据明显异源(不同采集设备/不同用户群/不同时间段且已漂移):桥梁假设从地基上就不成立。
- 需要对训练时未见的新样本持续预测、却选了图半监督:该方法接新样本要么重构全图重传播、要么另训一个预测器——封闭世界假设与开放世界需求冲突。
作者在书中警告的失败模式
- 模型假设不准,未标记数据反倒降低泛化性能(x45): 生成式方法的命门——假设的生成模型与真实分布不吻合时,海量未标记数据会把模型拽向错误结构;各方法病灶各异(生成式→假设不准;S3VM→多低密度划分的不利选择,S4VM 以最坏情形优化补救);"更一般的 safe 半监督学习仍是一个未决问题"。
- 协同训练的苛刻前提(x46): 经典 co-training 要求两个"充分且条件独立"的视图;数据只有一个视图(或两视图高度相关)时硬上,两个分类器互相喂的是同样的偏见,错误滚雪球。推广口径记牢:分歧才是本质,视图只是渠道——无多视图时可用不同算法/数据采样/参数设置制造分歧,但当标注极少又不具多视图时,生成分歧学习器本身"并不容易,需有巧妙的设计"。
- self-training 的原始性(习题 13.8 点名): 自己教自己的闭环没有外部纠错信号,早期错误伪标记会被自我强化——它是理解半监督的反面教具,不是默认首选。
- 图方法的两大硬伤: 亲和矩阵 O(m²) 存储开销难以规模化;构图仅覆盖训练样本,新样本"难以判知其在图中的位置"。
作者的盲点 / 时代局限 (2016 成书)
- 深度半监督缺位:consistency regularization、FixMatch 类方法、以及最重要的"自监督预训练 + 少量标注微调"范式均未出现;当代实践中后者常优先于经典半监督——本 skill 决策树之外应先问"能否用自监督预训练吃掉无标签数据"。
- i.i.d. 假设贯穿全书,"未标注与标注同分布"这一前提在真实数据管道中最常被打破(时间漂移、采样偏差),使用时应主动做漂移检查而非默认成立。
- 书中实验尺度以 UCI 级数据为主,百万级未标注样本下各方法的工程可行性(尤其图方法)需另行评估。
容易混淆的邻近方法论
- 主动学习: 引入专家交互、把未标记样本转变为有标记样本,花的是查询预算;半监督不与专家交互、"自动地"利用分布信息。两者可组合但目标函数不同。
- 自监督学习: 不靠人工标签、从数据自身构造监督信号(预训练表示);产出是表示而非直接分类器,与半监督"少标签直接提泛化"是两条互补路线。
- 迁移/域适应: 借用的是其他域/任务的标注知识,跨域正是其研究对象;半监督恰恰要求同分布,前提相反。
- 无监督聚类: 完全不用标签;半监督的一切价值都来自"少量标签锚定了簇与类别的对应关系"。
相关 skills
- contrasts-with: ml-task-matching(通用选型 vs 半监督专项资格审查)
- composes-with: ml-bayesian-thinking(生成式路线的 EM/分布假设纪律), ml-ensemble-design(分歧制造手艺同源、目的不同), ml-imbalanced-learning(TSVM 伪标记类别不平衡的处置)
审计信息
- 验证通过: x45 ✓ / c32 ✓ (阶段1.5 三重验证 PASS);本 skill 属扩充批A·第2组新增(覆盖 ch13),R 引文已逐字核对章节文本
- 测试通过率: 待阶段 3 测试 (详见 test-prompts.json)
- skill_version: 0.0.1
- 蒸馏时间: 2026-08-24