相关介绍
Self-Supervised Learning,自监督学习,一般机器学习分为有监督学习,无监督学习和强化学习。而 Self-Supervised Learning 是无监督学习里面的一种,主要是希望能够学习到一种通用的特征表达用于下游任务 (Downstream Tasks)。
MIM任务
Self-distillation
结构
论文中认为一个能够提取图像 patch 中高层语义的 tokenizer 可帮助模型避免学习到冗余的这些细节信息。文中指出视觉的 tokenizer 应该具备两个属性:(a)具备完整表征连续图像内容的能力;(b) 像 NLP 中的 tokenizer 一样具备高层语义。作者首先将经过 mask 过的图片序列输入 Transformer 之后进行预测的过程建模为知识蒸馏的过程,从 tokenizer 中获得知识。
图1 iBOT的MIM过程
如上图1所示,待训练的目标网络 (比如 ViT、Swin) 输入 masked images,Online tokenizer 接收原始图像。目标是让待训练的目标网络将每个 masked patch token 恢复到其相应的 token。
图2 iBOT的具体方法
Loss
patch
CLS
一张图片 x 经过 10 (local_crops_number) 次不同的数据增强,此次数据增强操作包括:. 对原始图片随机伸缩然后再resize到目标尺寸,比如目标尺寸是96。2. 随机翻转、颜色抖动。3. 随机高斯噪声。送入学生网络中得到 10个 student_local_cls,拼接经过 global_crops_number 次student输出的 cls 结果,记为student_cls_c,计算 student_cls_c 和 teacher_cls_c 的损失即可。
对应图2中3、4标识,在[CLS]标签上的自蒸馏保证了在线tokenizer学习到高语义特征。
Pseudocode
图3 iBOT伪代码
实验结果
图4 KNN 和 Linear Probing结果
kNN:把目标网络 Backbone 部分的权重冻结,在模型最后使用 k-nearest 完成分类。
Linear Probing:把目标网络 Backbone 部分的权重冻结,在模型最后添加一层线性分类器 Linear Classifier (它其实就是一个 FC 层) 完成分类,只训练 Linear Classifier 的参数。
图5 Fine-tuning结果
Fine-tuning:在模型最后添加一层线性分类器 Linear Classifier (它其实就是一个 FC 层) 完成分类,同时使用全部 label 训练目标网络 Backbone 部分的权重和分类器的权重。结果如下图5所示:只使用 ImageNet-1k 数据集时,使用 ViT-S/16 模型得到的 Fine-tuning 的 Accuracy 是:82.3%,使用 ViT-B/16 模型得到的 Fine-tuning 的 Accuracy 是:83.8%。借助 ImageNet-22k 数据集,使用 ViT-S/16 模型得到的 Fine-tuning 的 Accuracy 是:84.4%,使用 ViT-B/16 模型得到的 Fine-tuning 的 Accuracy 是:86.3%。
图6 Semi-supervised Learning 结果
Semi-supervised Learning:在模型最后添加一层线性分类器 Linear Classifier 完成分类,同时只使用1% 或10%的 label 训练目标网络 Backbone 部分的权重和分类器的权重。只使用1% 或10%的 label 做 Fine-tuning 以后,可以分别达到61.9% 和 75.1% 的 Top-1 Accuracy。