深度学习论文: Emerging Properties in Self-Supervised Vision Transformers
Emerging Properties in Self-Supervised Vision Transformers
PDF: https://arxiv.org/pdf/2104.14294v1
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks
1 概述
本文探讨自监督学习是否为Vision Transformer(ViT)带来了相较于卷积网络的新特性。发现自监督ViT特征包含明确的图像语义分割信息,并展现出色的k-NN分类性能。同时,强调了动量编码器、多裁剪训练及小补丁在ViT中的重要性。基于这些发现,提出了DINO这一无标签自蒸馏方法,与ViT结合在ImageNet上实现了80.1%的top-1准确率。
2 DINO
DINO框架结合了自监督学习和知识蒸馏的特点。在知识蒸馏中,学生网络gθs的目标是模仿教师网络gθt的输出。两个网络对输入图像x产生K维概率分布Ps和Pt,通过softmax函数归一化网络输出得到。
2-1 SSL with Knowledge Distillation
从给定图像中,生成一组不同的视图V。该组包含两个全局视图xg1和xg2以及几个较小分辨率的局部视图(切图)。所有的局部视图都通过学生网络,只有全局视图通过教师网络,从而鼓励“局部到全局”的对应关系。最小化损失:
DINO中使用2个全局视图,分辨率为224x224,覆盖原始图像的大区域(例如大于50%),以及几个分辨率为96x96的局部视图,仅覆盖原始图像的小区域(例如小于50%)。
教师网络不是预先给定的,而是从学生网络的过去迭代中构建。使用指数移动平均(EMA)作为教师网络参数的更新规则,这在DINO框架中效果良好。
网络架构由主干网络(如ViT或ResNet)和投影头(MLP)组成,学生和教师网络共享相同的架构但参数不同。DINO不使用批量归一化(BN),特别是在使用ViT作为主干时。
为了避免模型坍塌,DINO结合了动量教师输出的居中和锐化操作。居中防止模型输出偏向单一维度,而锐化则增强输出分布的锐度。通过这种方式,DINO能够在不同批次大小下稳定工作。
2-2 Implementation and evaluation protocols
Vision Transformer (ViT):
- 描述了Vision Transformer的机制,参考了相关文献中的Transformer和图像适应细节。
- 本文使用的ViT配置总结在表1中,ViT输入为N×N分辨率的图像块网格,通常N=16或8。
- 通过线性层将图像块转换为嵌入,加入一个额外的可学习类别标记[CLS],并通过Transformer网络处理。
实现细节:
- 在无标签的ImageNet数据集上预训练模型,使用adamw优化器和1024的批量大小。
- 学习率根据线性缩放规则调整,并采用余弦退火和权重衰减。
- 使用BYOL的数据增强方法和双三次插值,模型代码和可复现结果公开。
评估协议:
- 自监督学习的评估包括在冻结特征上训练线性分类器或对下游任务特征进行微调。
- 线性评估使用随机裁剪和水平翻转的数据增强,微调评估则在预训练权重基础上调整网络。
- 引入k-NN分类器作为特征质量的评估,简化了评估过程,避免了超参数调整和数据增强的复杂性。
3 Results
3-1 Comparing with SSL frameworks on ImageNet
3-2 Properties of ViT trained with SSL