Emerging Properties in Self-Supervised Vision Transformers阅读笔记
介绍
论文作者提出了一种新的自监督学习方法,self-distillation with no labels(DINO)。并将其应用在了CNN和Vision Transformer(ViT)结构上,均取得了不错的效果,且ViT的效果还要优于CNN。
特点
- self-supervised ViT的feature包含了图片的语义分割的明确信息,如场景布局(scene layout),对象边界(object boundaries)等(图1),而传统的supervised ViT和CNN没有包含
- self-supervised ViT(ViT-S)训练后,采用KNN分类器,在ImageNet可以达到78.3%(top-1)的效果
- 和BYOL自监督学习方法类似,DINO也由两个network构成,一个student(online)和teacher(target),采用momentum encoder结构,multi-crop training
启发(Motivation)
- 传统ViT的缺陷
- 需要大量计算,大量的训练数据,feature没有包含独特的性质(unique properties)
- Transformers先是在NLP中应用,之后才被人们尝试用在了CV中,并得到了可以和CNN竞争的优秀成果
- 因此,作者受到了Transformer在NLP中的自监督预训练思路的启发,如BERT,GPT,利用句子中word来生成pretext task,可以比监督方法提供更多的学习信息
- self-supervised方法通常使用相似的结构来避免模型坍塌(collapse)和提高性能,如BYOL,SimSiam
方法与实现
结构
-
两个结构基本相同,参数不同的network,student和teacher
- 各由一个encoder(backone,如Resnet,ViT)和一个projection head构成
- projection head由3层MLP,一层l2 normalization和一层full connection构成
-
teacher网络采用momentum形式更新,后面有一层centering层,实现对teacher输出的centering和sharpening,从而避免模型坍塌(BYOL中的predictor结构也是起到避免吗,模型坍塌的效果)
- student和teacher最后都接一层temperature softmax,对两个网络输出的K维feature进行归一化
- 在teacher网络使用stop-gradient,阻止梯度传播,因此teacher通过student采用exponential moving average(EMA)方法更新梯度
-
采用cross-entropy的损失函数
-
BN-free
- 没有使用batch normalization结构
训练流程
- 对输入的图片做两次随机的图像增强,然后分别传入student和teacher网络中, g θ s g_{\theta_{s}} gθs为student网络操作, g θ t g_{\theta_{t}} gθt为teacher网络操作
- 公式
P
P
P是为temperature softmax函数,
τ
\tau
τ参数控制网络输出分布的sharpness
- 然后计算两个网络的最终输出,cross-entropy loss
- 将ce loss应用到自监督学习
- EMA更新teacher参数,
λ
\lambda
λ随着训练采用cosine schedule方式由0.996更新到1
避免坍塌
作者通过平衡centering和sharpening两种效果,从而避免模型坍塌
坍塌:不论输入什么,模型的输出总是单一维度或者均匀分布
- centering避免了单一维度,但导致了均匀分布
- sharpening可以避免均匀分布
- centering操作:给teacher网络增加一个bias
c
c
c
- c c c也是采用EMA形式更新:
- sharpening通过teacher网络中softmax中的 τ \tau τ进行控制
实验
性能评估
作者将在ImageNet上训练好的backone提取出来,冻结参数,使用KNN分类器和线性分类器验证其性能
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MbDvrAWW-1629627664284)(Emerging Properties in Self-Supervised Vision Transformers论文阅读/image-20210822175246469.png)]
消融实验
不同结构组成
patch size
patch size越小,性能越高,但是吞吐量也会下降
迁移学习
作者将在ImageNet上用自监督方法训练得到的backone进行微调,在其他数据集上测试,与由监督学习得到的backone微调对比
基本自监督训练得到的backone要优于监督学习得到的
teacher更新
作者测试了不同的teacher更新方法
- 直接复制student网络参数和上一次迭代的student网络参数,都会导致网络无法收敛
- 采用复制student上一个epoch参数,可以取得一定效果
student,teacher训练效果
在训练过程中,teacher的效果要好于student,当使用previous epoch更新teacher就没有这种效果,而同样使用momentum的BYOL也没有这样的效果。
作者认为,DINO的momentum teacher更新类似于Polyak-Ruppert averaging
batch size
batch size 的影响不是很敏感