自监督学习的学习笔记
文章目录
- 一、基本概念
- 1. 自监督学习的定义
- 2. 与监督学习和无监督学习的关系
- 3. 自监督学习的核心要素:代理任务 (Pretext Task)
- 二、自监督学习的有效应用场景
- 三、实现自监督学习的方法
- 1. 对比学习 (Contrastive Learning)
- 2. 预测/生成学习 (Predictive/Generative Learning)
- 四、总结
一、基本概念
1. 自监督学习的定义
自监督学习(Self-Supervised Learning, SSL)是一种介于监督学习和无监督学习之间的机器学习范式。它的核心思想是:利用数据本身内在的结构或属性,自动地为无标签数据生成标签(或称为伪标签、代理标签),然后像监督学习一样训练模型。
自监督学习是预训练过程,它能够让神经网络以监督学习的方式学习大规模无标签数据集。
换句话说,它不依赖于人类手动标注的数据(如图像分类中的“猫”、“狗”标签,或文本情感分析中的“积极”、“消极”标签),而是设计一个代理任务(Pretext Task),这个任务的目标可以从数据本身推断出来。模型在解决这个代理任务的过程中,被迫学习到数据的有意义的、可迁移的表征(Representations)或嵌入(Embeddings)。
2. 与监督学习和无监督学习的关系
- 监督学习 (Supervised Learning): 需要大量的 (输入, 标签) 对,标签由人工提供。模型直接学习从输入到人工标签的映射。
- 无监督学习 (Unsupervised Learning): 只有输入数据,没有标签。目标是发现数据中的结构,如聚类(Clustering)、降维(Dimensionality Reduction)、密度估计(Density Estimation)。
- 自监督学习 (Self-Supervised Learning): 只有输入数据,但通过设计代理任务自动生成 (输入, 伪标签) 对。目标通常是学习通用的数据表征,这些表征随后可以用于各种下游任务(通常只需要少量的人工标签进行微调)。可以看作是无监督学习的一种特定方法论,或者是一种特殊的监督学习(其监督信号来自数据自身)。
3. 自监督学习的核心要素:代理任务 (Pretext Task)
代理任务的设计是自监督学习的关键。这个任务应该:
(1) 可自动生成标签: 标签必须能从原始数据中直接或通过简单的变换得到。
(2) 迫使模型学习语义: 解决任务需要模型理解数据的某些深层结构、关系或语义信息,而不仅仅是表面统计特征。
二、自监督学习的有效应用场景
自监督学习在以下情况尤其有效和重要:
- 存在大量无标签数据,但标签数据稀缺或昂贵: 这是最主要的应用场景。例如,互联网上有海量的图片和文本,但为它们打上精确标签成本极高。医学影像、卫星图像、语音识别等领域也面临同样问题。自监督学习可以充分利用这些无标签数据进行预训练。
- 需要学习通用的、可迁移的特征表示: 自监督学习的主要目标是学习数据的内在结构,得到的表征通常比纯无监督方法(如 PCA 或 K-Means)包含更丰富的语义信息,并且可以很好地迁移到相关的下游任务(如分类、检测、分割等)。
- 作为大型模型(如 Foundation Models)的预训练方法: 现代大型语言模型(如 BERT, GPT 系列)和视觉模型(如 SimCLR, MoCo, DINO, MAE)大多采用自监督学习在海量数据上进行预训练,学习通用的知识和表征能力。
- 提高下游任务的样本效率: 经过自监督学习预训练的模型,在进行下游任务的微调(Fine-tuning)时,通常只需要少量的有标签数据就能达到很好的性能,甚至有时能实现零样本(Zero-shot)或少样本(Few-shot)学习。
- 特定领域的表征学习: 当通用预训练模型在特定领域(如医学、金融)效果不佳时,可以在该领域的无标签数据上进行自监督学习,以获得更适配的表征。
三、实现自监督学习的方法
自监督学习主要分为两大类——对比自监督学习(Contrastive Self-Supervised Learning,即对比学习)和自预测(Self-Prediction)。
1. 对比学习 (Contrastive Learning)
- 核心思想: 通过学习将数据的不同“视图”(通常是通过数据增强生成的)在嵌入空间(潜空间)中拉近(正样本对),同时将不同数据的视图推远(负样本对)。模型需要区分哪些视图来自同一个原始样本。也就是说,神经网络所产生的嵌入向量,能够使得相似训练样本之间的向量距离最小化、不相似样本之间的距离最大化。
- 常见方法:
- SimCLR (Simple Framework for Contrastive Learning of Visual Representations): 使用同一图像的两个不同增强版本作为正样本对,同一批次中的其他图像作为负样本对。需要较大的批次大小。
- MoCo (Momentum Contrast): 使用一个队列(memory bank)来存储大量的负样本表示,并使用动量更新的编码器来提高表示的一致性,解决了 SimCLR 对大批次大小的依赖。
- BYOL (Bootstrap Your Own Latent): 只使用正样本对。通过一个在线网络预测目标网络(动量更新)对同一图像不同增强版本的表示,避免了负样本的使用,防止模型坍塌(输出恒定)。
- SwAV (Swapping Assignments between multiple Views of the same image): 结合了对比学习和在线聚类。强制同一图像不同视图的编码被分配到相同的“原型”(聚类中心)。
2. 预测/生成学习 (Predictive/Generative Learning)
- 核心思想: **自预测(Self-prediction)**是该方法的核心思想(甚至可把这类方法乘坐自预测方法),即隐藏或破坏输入数据的一部分(如通过设置掩码
mask
这样的的早点来掩蔽输入),然后让模型根据剩余的部分来预测或重建被隐藏/破坏的部分。添加扰动掩码后进行自预测如下图所示(该图摘自Machine Learning Q and AI 30 Essential Questions and Answers on Machine Learning and AI)
-
常见方法 (视觉领域):
- 图像修复 (Image Inpainting): 随机移除图像的一个区域,让模型预测缺失的像素。
- 图像上色 (Image Colorization): 输入灰度图像,让模型预测其彩色版本。
- 上下文预测 (Context Prediction) / 相对位置预测 (Relative Patch Prediction): 将图像分割成多个图块,打乱顺序或取出一个图块,让模型预测图块间的相对位置关系(如哪个图块在中心图块的右边)。
- 旋转预测 (Rotation Prediction): 将图像随机旋转 0, 90, 180, 270 度,让模型预测施加了哪个旋转角度。
- 掩码自编码器 (Masked Autoencoders, MAE): 随机掩盖图像的大部分区域(例如 75%),然后让模型仅基于可见的小部分区域重建出被掩盖的像素。
-
常见方法 (自然语言处理领域):
- 掩码语言模型 (Masked Language Model, MLM): (BERT, RoBERTa) 随机掩盖句子中的一些词(Token),让模型根据上下文预测被掩盖的词。
- 下一句预测 (Next Sentence Prediction, NSP): (BERT 早期使用,后被证明效果有限或有负面影响) 给定两个句子 A 和 B,判断 B 是否是 A 的实际下一句。
- 自回归语言模型 (Autoregressive Language Model): (GPT 系列) 根据前面的词预测下一个词。
四、总结
自监督学习通过巧妙地设计代理任务,使得模型能够从未标记数据中学习到强大的、通用的特征表示。它极大地缓解了对大规模人工标注数据的依赖,已成为现代深度学习(尤其是大型模型预训练)的关键技术之一,并在计算机视觉、自然语言处理、语音识别等多个领域取得了显著成功。选择哪种 SSL 方法取决于具体的任务、数据模态和计算资源。对比学习和基于掩码的预测学习是当前非常主流和有效的方法。