半监督与自监督学习
半监督结合少量标签和大量无标签数据,自监督从数据本身构造训练目标。
学习前需要掌握
背景与问题
标注数据常比未标注数据昂贵。半监督学习尝试同时使用少量带标签样本与较多未标注样本;自监督学习则从输入本身构造预测任务,先学习有用表示。
两种方法都不能因为没有给每条样本提供人工答案,就跳过独立评价。尤其是未标注数据与目标任务分布不同、或标注样本不具代表性时,额外数据可能带来偏差。
概念定义
半监督方法在训练中同时利用监督标签与未标注输入,例如用已有模型生成伪标签,或要求合理扰动后的预测保持一致。
自监督方法把数据的一部分或另一视图当成训练目标,例如遮住词语再预测、让同一样本的不同视图在表示空间中接近。预训练任务与最终业务任务通常不同。
直观理解
伪标签像先让较熟练的学生给新题写暂定答案,再用这些答案继续练习。如果原模型总把某类样本判断错,这种循环也可能把错误强化;“标签数量变多”不等于“新增了同样多的可靠证据”。
100 个标签与 900 条未标注记录
假设只用 100 个标签训练的模型,对 900 条未标注记录中 300 条产生高置信度预测。把它们加入训练前,应检查这些 300 条是否几乎都来自同一个容易类别,而不是简单把训练规模写成“400 个同质量标签”。
另一个自监督方案可以先遮住文本词语训练表示,再用原来的 100 个标签微调。两者的区别在于额外信号来自模型暂定类别,还是输入自身构造的目标;最终都要在同一份独立验证数据上比较。
核心原理
半监督依赖额外假设,例如局部相似样本应具有相近标签,或类别与数据分布的结构相关。这些假设在标签边界复杂、类别重叠或有分布外样本时可能不成立。
伪标签通常需要阈值、权重或一致性约束控制影响,但高置信度本身并不是正确性的证明;应该检查各类别覆盖与错误是否累积。
自监督预训练学习的表示需要通过下游任务验证。对预训练目标表现好,不代表对分类、检索或控制任务都更好;微调数据与评估边界仍然重要。
比较方法时,应固定可用标签数量、未标注数据范围和验证协议。把测试样本混进预训练可能属于不同的传导式设定,不能在未说明时与严格独立测试混为一谈。
数学表达
核心表达
预训练目标与下游任务不同,表示是否有用仍需在独立下游评价中验证。伪标签错误也可能被循环放大。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1准备无标签数据
- 2设计预训练或伪标签策略
- 3避免评价数据参与训练
- 4在下游训练/验证
代码对应位置
示例 1完整构造一次遮挡输入与目标:展示自监督目标怎样从原样本产生,不假装已经训练语言模型。
计算与实现步骤
- 准备无标签数据
- 设计预训练或伪标签策略
- 避免评价数据参与训练
- 在下游训练/验证
- 比较纯监督基线
代码实现
示例 1
完整构造一次遮挡输入与目标
example_01.py用途:展示自监督目标怎样从原样本产生,不假装已经训练语言模型。
sample = ["太阳", "从", "东边", "升起"]
position, mask_token = 2, "[MASK]"
masked = sample.copy()
target = masked[position]
masked[position] = mask_token
print("input:", masked)
print("target:", target)
print("original_unchanged:", sample[position] == target)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
展示自监督目标怎样从原样本产生,不假装已经训练语言模型。
Step 1 · 1–8 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
sample = ["太阳", "从", "东边", "升起"]
position, mask_token = 2, "[MASK]"
masked = sample.copy()
target = masked[position]
masked[position] = mask_token
print("input:", masked)
print("target:", target)
print("original_unchanged:", sample[position] == target)预期输出或运行结果
input: ['太阳', '从', '[MASK]', '升起'] target: 东边 original_unchanged: True
常见错误 · 2 条
- 把无标签数据等同无风险数据
- 伪标签无验证地循环使用
实际应用
- 语言模型预训练
- 有限标签图像分类
常见错误
- 把无标签数据等同无风险数据
- 伪标签无验证地循环使用
推荐学习资料
参考库不会生成虚假资源或无效外部链接。