Self-Supervised learning
#DL基础
2025-04-06
自监督学习 = 用无标签数据训练 encoder ➕ 用少量标注数据解决真实任务
Bert
见李宏毅讲义
GPT
见李宏毅讲义
Visualizing Attention
soft $ hard
Contrastive Representation Learning
核心公式
跟交叉熵类似
SimCLR: A Simple Framework for Contrastive Learning
SImCLR Pipeline
Projection Head 的选择
投影头 = 损失函数的缓冲区
让对比损失不会直接干扰 encoder 的主特征表示。
非线性
Batch size 的影响
大的 batchsice, 但训练需用 TPU
InfoNCE 是 mutual information 的下界,batch 越大,下界越紧.
MoCo,(Momentum Contrast)
解决了SimCLR 需要大 batch 的问题
基本框架
生成正样本对(两次 data augmentation);
分别用:
query encoder
key encoder
得到 query / key 表示;
key 用 .detach() 防止梯度传播;
利用 queue 中的 key 构造负样本;
计算 InfoNCE Loss(使用 queue 里的所有负样本);
用 loss 反向传播更新
;用 momentum 更新
:$$
\theta_k \leftarrow m \theta_k + (1 - m) \theta_q
$$
- 把当前 batch 的 key 加入 queue,移除最早的 key。
MoCo v2
来自 SimCLR 的改进:
- 非线性投影头(non-linear projection head)
- 更强的数据增强(strong data augmentation)
保留 MoCo 的优点:
- Momentum Queue 机制
MoCo v1、SimCLR、MoCo v2 三者对比
Instance-level vs. Sequence-level Contrastive Learning
CPC(Contrastive Predictive Coding)
More Examples
MoCo v3
Masked Autoencoder
Dense Object Net
DINO
DINO v2
CLIP