机器学习的半监督学习,弱监督学习,自监督学习

半监督学习、弱监督学习和自监督学习是机器学习中利用不同形式监督信号的三种方法,它们的核心区别在于标注数据的数量、质量以及监督信号的来源。以下是它们的详细对比:


1. 半监督学习(Semi-Supervised Learning)

  • 核心特点

    • 少量标注数据 + 大量未标注数据,通过利用未标注数据的分布特征来提升模型性能。
    • 假设标注数据和未标注数据服从相同的分布(如聚类假设、流形假设)。
  • 典型方法

    • 自训练(Self-training):先用标注数据训练初始模型,预测未标注数据的伪标签,再迭代优化。
    • 协同训练(Co-training):用多个视图(特征子集)分别训练模型,相互提供伪标签。
    • 图半监督学习:基于数据点之间的图结构传播标签(如标签传播算法)。
  • 应用场景

    • 标注成本高的领域(如医学图像分类、语音识别)。
    • 示例:用100张标注的肺部CT图像和10万张未标注图像训练肺炎检测模型。

2. 弱监督学习(Weakly-Supervised Learning)

  • 核心特点

    • 使用不完整、不精确或噪声标注数据,标签质量低但数据量可能较大。
    • 标签形式多样:粗粒度标签(如图像级而非像素级)、多示例标签(如包级别标注)、噪声标签等。
  • 典型方法

    • 多示例学习(MIL):以"包"为单位标注(如"包中至少有一个正例"),用于病理切片分类。
    • 注意力机制(Attention):模型自动定位关键区域(如仅用图像级标签训练目标检测模型)。
    • 噪声标签修正:通过模型置信度或一致性过滤错误标签。
  • 应用场景

    • 标注难以获取或成本极高(如视频行为识别、遥感图像分割)。
    • 示例:训练目标检测模型时,仅提供图像级标签(如"图片中有猫"),不标注猫的位置。

3. 自监督学习(Self-Supervised Learning)

  • 核心特点

    • 无需人工标注,通过设计代理任务(Pretext Task)从数据本身生成监督信号。
    • 本质是无监督学习的一种,但通过构造监督任务学习特征表示。
  • 典型方法

    • 图像领域:图像修补(Inpainting)、旋转预测、对比学习(如SimCLR)。
    • 文本领域:掩码语言模型(如BERT)、下一句预测。
    • 视频领域:帧顺序预测、时序对齐。
  • 应用场景

    • 预训练通用特征表示,用于下游任务(如分类、检测)。
    • 示例:BERT通过预测文本中被掩码的词,学习语言表示,再微调用于问答任务。

三者的核心区别

维度 半监督学习 弱监督学习 自监督学习
监督信号来源 少量人工标注 + 未标注数据 低质量人工标注(如噪声标签) 数据自身生成的伪标签
数据假设 标注与未标注数据分布一致 标注不完整但有一定信息量 无标注数据隐含结构可被挖掘
典型任务 分类、回归 检测、分割 预训练表示学习
标注成本 中等(需部分标注) 低(标注简单但质量差) 零(无需人工标注)
代表方法 自训练、协同训练 多示例学习、注意力机制 对比学习、掩码语言模型

实际应用中的结合

  • 半监督 + 自监督:先用自监督任务预训练模型,再用半监督学习微调(如医疗影像分析)。
  • 弱监督 + 自监督:用自监督学习提取特征,结合弱监督标签训练下游模型(如社交媒体情感分析)。
  • 工业场景:自动驾驶中,利用自监督学习预训练视觉模型,再通过弱监督(自动生成的边界框)微调检测模型。

总结

  • 半监督学习:在标注数据有限时,利用未标注数据的分布信息提升模型。
  • 弱监督学习:在标注质量不足时,通过算法设计从噪声或不完整标签中学习。
  • 自监督学习:完全无需人工标注,通过数据内在结构学习通用特征表示。

三者并非互斥,实际应用中常结合使用(如自监督预训练 + 弱监督微调),以应对数据标注的多样挑战。

相关推荐
云知谷15 小时前
【C++基本功】C++适合做什么,哪些领域适合哪些领域不适合?
c语言·开发语言·c++·人工智能·团队开发
rit843249915 小时前
基于MATLAB实现基于距离的离群点检测算法
人工智能·算法·matlab
初学小刘16 小时前
深度学习:从图片数据到模型训练(十分类)
人工智能·深度学习
递归不收敛17 小时前
大语言模型(LLM)入门笔记:嵌入向量与位置信息
人工智能·笔记·语言模型
deng-c-f18 小时前
Linux C/C++ 学习日记(28):KCP协议(四):如何实现更复杂的业务:将连接状态的管理进行封装,用户只需实现发送、接收、断开的处理逻辑。
学习·网络编程·kcp
之墨_18 小时前
【大语言模型】—— 自注意力机制及其变体(交叉注意力、因果注意力、多头注意力)的代码实现
人工智能·语言模型·自然语言处理
从孑开始18 小时前
ManySpeech.MoonshineAsr 使用指南
人工智能·ai·c#·.net·私有化部署·语音识别·onnx·asr·moonshine
涛涛讲AI18 小时前
一段音频多段字幕,让音频能够流畅自然对应字幕 AI生成视频,扣子生成剪映视频草稿
人工智能·音视频·语音识别
可触的未来,发芽的智生19 小时前
新奇特:黑猫警长的纳米世界,忆阻器与神经网络的智慧
javascript·人工智能·python·神经网络·架构
悟乙己19 小时前
MLops | 基于AWS Lambda 架构构建强大的机器学习(ML)血缘关系
机器学习·架构·aws