自监督学习与监督学习
🔍 一、监督学习 vs 自监督学习:核心区别
维度 | 监督学习(Supervised Learning) | 自监督学习(Self-Supervised Learning) |
---|---|---|
是否需要人工标注的标签 | ✅ 需要,如分类标签、边界框等 | ❌ 不需要,从数据本身构造“伪标签” |
目标 | 学习从输入到人工标签的映射 | 学习通用特征表示,用于下游任务 |
数据来源 | 标注好的数据集(如 ImageNet、COCO) | 大规模未标注数据(如互联网图像、文本) |
应用场景 | 分类、检测、分割等具体任务 | 特征提取、迁移学习、零样本学习 |
🤔 二、为什么说自监督学习不需要标注?
虽然自监督学习看起来也用了“标签”,但这些“标签”不是由人手动标注的,而是从原始数据中自动构建出来的。
举个例子:
假设你有一张图片:
你想用它训练一个模型,但没有类别标签(比如这张图是猫还是狗?不知道)
在监督学习中:
你需要知道这张图是“猫”,才能做分类任务。
在自监督学习中:
你可以对这张图进行一些变换,比如裁剪、旋转、颜色扰动,得到两个视图 A 和 B。
然后告诉模型:“A 和 B 是同一张图的不同版本”,这就是你的“伪标签”。
这样,模型就可以通过对比这两个视图来学习不变性特征。
🧠 三、自监督学习中的“伪标签”是如何生成的?
常见的方法包括:
1. 对比学习(Contrastive Learning)
- 构造正例:同一图像的不同增强版本
- 构造负例:其他图像的增强版本
- 模型目标:拉近正例距离,推远负例距离
例如:MoCo、SimCLR、BYOL
2. 掩码建模(Masked Modeling)
- 输入一张图像或一段文本,随机遮住一部分内容
- 模型目标:重建被遮住的部分
例如:BERT(NLP)、MAE(CV)
3. 代理任务(Pretext Tasks)
- 设计一些辅助任务帮助模型学习特征:
- 图像旋转预测(RotNet)
- 拼图任务(Jigsaw Puzzle)
- 相对位置预测(Context Encoders)
📌 四、总结一句话:
监督学习依赖人类标注的真实标签,而自监督学习从数据内部结构构造“伪标签”来驱动学习过程。
虽然都用了“标签”,但这些标签不是人为定义的语义类别,而是根据数据本身的变换或结构自动生成的,因此不需要人工参与标注。
💡 五、打个比方帮助理解
想象你在学画画:
- 监督学习就像是老师手把手教你画一只猫,并告诉你“这是猫的眼睛、耳朵……”
- 自监督学习则是你自己观察很多动物的照片,尝试发现它们之间的相似和差异,从而学会识别猫的特点。
虽然你最后也能画出猫,但你是自己“悟出来”的,而不是靠老师教的。
📚 六、延伸阅读建议
如果感兴趣,可以看看以下经典论文(按领域分类):
计算机视觉(CV):
- SimCLR:简单有效的对比学习框架
- MoCo:解决负样本存储问题
- MAE:掩码图像建模,类似BERT
自然语言处理(NLP):
- BERT:经典的掩码语言模型
- Word2Vec:早期词向量自监督学习