专题介绍
自监督学习(Self-Supervised Learning, SSL)是深度学习最重要的表示学习范式之一。与监督学习不同,自监督学习通过设计**代理任务(pretext task)**从无标签数据中学习表示,避免了对大规模标注数据的依赖。
本专题系统整理自监督学习的核心方法、理论分析和实践技巧。
内容导航
一、经典方法
| 文档 | 描述 | 核心创新 |
|---|---|---|
| BYOL | Bootstrap Your Own Latent | 无需负样本、EMA目标网络 |
| Barlow Twins | 冗余减少原则 | 互相关矩阵、批量无关 |
| SimSiam | 简单孪生网络 | 停止梯度、无需动量编码器 |
二、现代架构
三、补充阅读
| 文档 | 描述 | 相关度 |
|---|---|---|
| 对比学习理论 | SimCLR/MoCo理论分析 | ⭐⭐⭐ |
| MAE | 掩码自编码器 | ⭐⭐⭐ |
| Vision Transformer | ViT基础 | ⭐⭐ |
| JEPA | 联合嵌入预测架构 | ⭐⭐⭐ |
方法分类图
自监督学习
│
┌────────────────────┼────────────────────┐
│ │ │
↓ ↓ ↓
┌─────────┐ ┌──────────┐ ┌─────────┐
│ 对比学习 │ │ 蒸馏学习 │ │ 重建学习 │
├─────────┤ ├──────────┤ ├─────────┤
│ SimCLR │ │ BYOL │ │ MAE │
│ MoCo │ │ DINO │ │ SiT │
│ SwAV │ │ SimSiam │ │ iBOT │
└─────────┘ │ BarlowTwins│ └─────────┘
└──────────┘
核心概念速查
BYOL损失
Barlow Twins损失
SimSiam损失
DINOv2损失
学习路径
路径1:基础入门
1. BYOL
↓ (理解预测器+EMA)
2. SimSiam
↓ (理解停止梯度)
3. Barlow Twins
↓ (理解冗余减少)
4. MAE
目标:掌握自监督学习的核心机制
路径2:现代架构
1. DINOv2
↓ (理解教师-学生蒸馏)
2. SiT
↓ (理解扩散+表示学习)
3. JEPA
目标:了解最新的自监督学习进展
路径3:理论深度
1. 对比学习理论
↓
2. NTK与表示学习
↓
3. 信息瓶颈理论
目标:理解自监督学习的理论基础
方法对比表
| 方法 | 负样本 | 动量编码器 | 批量大小 | 崩溃机制 |
|---|---|---|---|---|
| SimCLR | 必须 | 无 | 4096+ | 对比 |
| MoCo | 必须 | 有 | 256 | 字典队列 |
| BYOL | 无 | 有(EMA) | 256-4096 | 预测器 |
| SimSiam | 无 | 无 | 256 | 停止梯度 |
| Barlow Twins | 无 | 无 | 256 | 冗余减少 |
| SwAV | 无 | 无 | 256 | 在线聚类 |
| DINO | 无 | 有(EMA) | 256 | 教师-学生 |
核心论文引用
经典论文
- BYOL: Grill et al. (2020). “Bootstrap Your Own Latent”. NeurIPS.
- Barlow Twins: Zbontar et al. (2021). “Barlow Twins”. ICML.
- SimSiam: Chen & He (2021). “Exploring Simple Siamese Representation Learning”. CVPR.
- DINO: Caron et al. (2021). “Emerging Properties in Self-Supervised Vision Transformers”. ICCV.
- DINOv2: Oquab et al. (2024). “DINOv2”. ICLR.
前沿论文
- SiT: Li et al. (2023). “SiT”. arXiv.
- MAE: He et al. (2021). “Masked Autoencoders”. CVPR.
- JEPA: Bardes et al. (2022). “VICReg”. ICML.
工具与库
| 库 | 用途 |
|---|---|
| PyTorch | 基础框架 |
| timm | 预训练模型 |
| lightly | 自监督学习工具 |
| faiss | 特征相似度搜索 |
| wandb | 训练监控 |
# 使用timm加载预训练模型
import timm
# 加载DINOv2
model = timm.create_model('vit_large_patch14_dinov2.lvd142m', pretrained=True)
# 加载MAE
model = timm.create_model('vit_base_patch16_mae', pretrained=True)
# 加载BYOL预训练模型
model = timm.create_model('tf_efficientnet_b0_ns', pretrained=True, num_classes=0)实践项目
项目1:实现BYOL
# 完成BYOL实现
# - 在线/目标网络
# - 预测器
# - EMA更新
# - 对比评估项目2:对比实验
# 在CIFAR-10/ImageNet上对比
# - BYOL vs SimSiam vs Barlow Twins
# - 线性评估
# - 下游任务微调项目3:自监督预训练
# 使用自监督方法预训练ViT
# 在下游任务上评估迁移性能与其他专题的关联
| 相关专题 | 关联内容 |
|---|---|
| Vision Transformer | ViT骨干网络 |
| 对比学习理论 | SimCLR/MoCo理论 |
| NTK理论 | 无限宽网络分析 |
| 信息瓶颈 | 表示学习理论 |
更新日志
| 日期 | 更新内容 |
|---|---|
| 2026-06-21 | 新增BYOL文档 |
| 2026-06-21 | 新增Barlow Twins文档 |
| 2026-06-21 | 新增SimSiam文档 |
| 2026-06-21 | 新增DINOv2文档 |
| 2026-06-21 | 新增SiT文档 |
| 2026-06-21 | 创建专题索引 |
最后更新:2026-06-21