特征蒸馏FD:让对比学习匹敌图像掩码自监督学习

paper:[2205.14141] Contrastive Learning Rivals Masked Image Modeling in Fine-tuning via Feature Distillation (arxiv.org)

code:GitHub - SwinTransformer/Feature-Distillation

特征蒸馏:让对比学习匹敌图像掩码自监督学习 - 知乎 (zhihu.com)

2022年简单高效的多模态KD&&FD - 知乎 (zhihu.com)

【自监督论文阅读笔记】Contrastive Learning Rivals Masked Image Modeling in Fine-tuning via Feature Distillation_contrastive 对角线_YoooooL_的博客-CSDN博客


掩码图像建模 (MIM)

掩码图像建模 (MIM)是一种新兴的自监督预训练方法,在使用视觉Transformer (ViT) 的众多下游视觉任务中取得了令人瞩目的成功。

它的基本思想很简单:输入图像的一部分被随机屏蔽,然后通过pretext任务重建。然而,为什么 MIM 运作良好并没有得到很好的解释,之前的研究坚持认为 MIM 主要适用于 Transformer 系列,但与 CNN 不兼容。


知识蒸馏除了DEiT系列,今年还出了几篇方法简单,复现起来难度不大的FD相关论文,只需要一个图片编码器和projector以保证图片特征的多样性。具体如下:

论文1:Contrastive Learning Rivals Masked Image Modeling in Fine-tuning via Feature Distillation

论文2:A Unified View of Masked Image Modeling

基于图像掩码MIM,Masked image modeling)的自监督方法让ViT实现了更好的微调性能在本文中,证明了这些预训练方法的较差微调性能可以通过以特征蒸馏(FD)形式的 简单后处理 来显著改善【对比学习和特征蒸馏都是预训练方法,但是它们的目标不同。对比学习的目标是学习如何将相似的样本映射到相邻的位置,而将不相似的样本映射到远离的位置。特征蒸馏的目标是将一个模型的知识转移到另一个模型中,使得后者能够更好地完成任务。在这篇论文中,作者展示了特征蒸馏可以显著提高对比学习和其他预训练方法在微调任务上的表现。比如基于MAE预训练的ViT-B可以在ImageNet-1K数据集达到83.6%准确度,这要超过之前基于对比学习的模型,如基于DINO的ViT-B只能达到82.8%。

近日微软AI(SwinTransformer原团队)在论文Contrastive Learning Rivals Masked Image Modeling in Fine-tuning via Feature Distillation提出了一种简单的后处理方法来优化对比学习得到的预训练模型:通过简单的特征蒸馏FD,feature distillation)来将原来的模型转换成和MIM(Masked Image Modeling)有相似性质的新模型。

对比学习的模型进行特征蒸馏其在ImageNet-1K数据集上的微调性能可以和基于MIM的模型不相上下。这种特征蒸馏优化方法具有普适性,不仅可以优化对比学习模型,也可以用于有监督模型,MIM模型以及基于图像-文本对比学习的CLIP模型。对CLIP ViT-L模型进行特征蒸馏,其可以在ImageNet-1K数据集上达到89.0%,这是目前ViT-L所能实现的SOTA,而对30亿参数的SwinV2-G模型进行特征蒸馏,可以在ADE20K语义分割数据集上达到新的SOTA:61.4 mIoU


论文提出的特征蒸馏方法非常简单,其整体架构如下所示,这里预训练的模型作为teacher模型,而要转换的新模型为student模型

Figure 1: Left: Illustration of the feature distillation approach

我觉得是最易复现的一个多模态KD论文

step1. Teacher模型使用CLIP中的视觉编码器;

step2. Student模型使用随机初始化的一个vit模型;

step3. loss为smooth L1 loss,只需要将torch里面的参数beta改为2即可;

step4. 一个图片只需要两次random resize crop即为Teacher模型和Student模型的输入;

note:Teacher模型的输出要进行归一化处理;Student模型的输出要进行映射一下,通常为1*1的conv即projector


这里的特征蒸馏主要有以下4个要点:

(1)蒸馏的目标采用特征图

另外一种知识蒸馏思路是特征蒸馏方法,如下图所示。它不像Logits方法那样,Student只学习Teacher的Logits这种结果知识,而是学习Teacher网络结构中的中间层特征。最早采用这种模式的工作来自于论文《FITNETS:Hints for Thin Deep Nets》,它强迫Student某些中间层的网络响应,要去逼近Teacher对应的中间层的网络响应。这种情况下,Teacher中间特征层的响应,就是传递给Student的知识。在此之后,出了各种新方法,但是大致思路还是这个思路,本质是Teacher将特征级知识迁移给Student。

常规的知识蒸馏常常采用logits作为蒸馏目标,而这里的特征蒸馏采用模型输出的特征图作为目标,这也适用于那些没有logits输出的模型如CLIP

为了让teacher和student输出的特征图一致,teacher和student模型的输入是原始图像的同一数据增强视野(这里只采用RandomResizeAndCrop 0.08-1数据增强)。同时在student模型上加了一个projector,采用一个1x1卷积层,这其实也让特征蒸馏变得具有普适性,比如teacher模型和student模型的输出特征图的维度不一致。采用特征图作为蒸馏目标,比采用logits或者GAP特征(全局池化后特征)在效果上也更好,ViT-B的对比结果如下所示:

(2)对teacher的特征进行白化(whiten)

不同的预训练模型输出的特征的数量级不同,这样不同的模型其蒸馏训练的超参数都需要调整。这里对teacher输出的特征进行白化处理来将特征归一化同一量级,在实现上采用非训练的LayerNorm(去掉训练的weight和bias)。这里的损失函数采用smooth L1 loss,如下所示:

这里默认设置为2.0,s和t分别是student和teacher模型输出的特征图,g代表的是projector,即1x1卷积。对特征进行白化处理,相比不处理或者L2 norm效果更好:

(3)采用共享的相对位置编码

ViT原始论文中采用相对位置编码RPB,relative position bias)相比绝对位置编码APE,absolute position encoding)并没有增益,所以就默认采用APE。不过在特征蒸馏中,作者对比了不同的编码策略:RPB,APE以及共享RPB(所以的layer共享一个RPB,和Swin不一样)。实验发现采用共享的RPB效果最好:

在做特征可视化后,发现共享RPB的蒸馏模型其不同heads的attention distances更发散,从而能得到更好的微调性能。 (4)采用非对称的drop path rates 这里teacher模型drop path rate设置为0,即不采用drop path,而student模型在{0.1, 0.2, 0.3, 0.4}中选择最优的drop path rate,此时效果是最好的。

论文共选择了5种不同的预训练策略:DINO,EsViT,CLIP, DeiT和MAE,其中DINO,EsViT和DeiT采用ViT-B和Swin-B进行实验,而CLIP选择ViT-B和ViT-L进行实验。特征蒸馏在ImageNet-1K训练集上进行,训练epochs为300。下表对比了不同的预训练模型在特征蒸馏后在ImageNet-1K数据集上微调和linear probe,以及在ADE20K数据集上迁移的效果。可以看到DINO,EsViT,CLIP, DeiT方法预训练的模型经过特征蒸馏后均可以在ImageNet-1K数据集上微调效果上提升1~2%,也可以在ADE20K数据集上提升1~3.3 mIoU。这也使得对比学习的预训练模型效果和基于MIM的预训练模型(如MAE和BEiT)效果相当了。

特征可视化

为了进一步研究为什么特征蒸馏会起作用,论文对特征蒸馏前后的模型做了特征可视化分析,主要包括以下几个部分:

(1)average attention distance per head

首先可视化了各个不同layer的各个head的average attention distance,average attention distance反应的是attention head的感受野大小。如下左图所示,可以看到对于特征蒸馏前的模型,其在深层的attention heads表现出了相似的感受野,这说明了不同的attention heads学习到了相似的模式,这是可能对模型容量的浪费;而经过特征蒸馏后,深层的attention heads的感受野相对发散一些,这也意味着模型的表达力可能更好。我们同样也可以从右图中的各个heads的average cosine similarity看出来差异(特征蒸馏后,深层的余弦相似度差异变得更大)。

(2)attention 模式的改变

第二个分析是对attention map可视化,这里不同layer的average attention maps(不同heads平均)如下所示,这里attention map主要有两种模式:diagonal模式和column模式,其中diagonal模式说明模型学习到了不同patchs间的一些固定的相对位置,而column模式说明模型学习到的是patchs的固定位置。当然diagonal模式要比column模式更好,我们也可以看到特征蒸馏后,模型的diagonal模式要更加突出,其中共享的RPB也是其中的一部分原因。

(3)loss / accuracy landscapes

最后论文也分析了loss / accuracy landscapes,如下图所示,我们可以看到特征蒸馏后模型的loss / accuracy landscapes变得更平坦,网络更容易进行优化。

论文也对基于MAE的预训练模型进行了特征蒸馏,不过效果提升的不是特别明显(ViT-B从83.6% -> 83.8%)。如果同样进行特征可视化的话,可以看到MAE本身得到的模型其average attention distance就比较发散,同时loss / accuracy landscapes也比较平坦,特征蒸馏后变化不是特别大。这其实也侧面反映了通过对对比学习得到的模型进行特征蒸馏可以转换为和MIM预训练模型具有相似性质的新模型,从而提升其微调效果。

在论文的最后,作者认为一个好的预训练模型应该具有好的优化友好度(optimization friendliness),简单来说,就是一个好的预训练模型来进行初始化,它应该比较容易进行微调(比如有平坦的loss landscape)。而特征蒸馏则是增加了预训练模型的优化友好度。

小结

同样架构的模型,其最终的性能也要取决于优化策略。无论是有监督,还是基于MIM的自监督,甚或是基于对比学习的自监督,我们如果能找到好的优化技巧,它们应该可以得到相似的性能:DeiT III证明了有监督,而这个工作证明了对比学习自监督

Contrastive Learning Rivals Masked Image Modeling in Fine-tuning via Feature Distillation相关推荐

  1. 【ICML 2020对比学习论文解读】SimCLR: A Simple Framework for Contrastive Learning of Visual Representations

    一.写在前面 对比学习(Contrastive Learning) 对比学习是一种自监督学习方法,在无标签数据集上仍可以学习到较好的表征. 对比学习的主要思想就是相似的样本的向量距离要近,不相似的要远 ...

  2. 2022_WWW_Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning

    [论文阅读笔记]2022_WWW_Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Lear ...

  3. 《Reducing Word Omission Errors in Neural Machine Translation:A Contrastive Learning Approach》论文阅读笔记

    Reducing Word Omission Errors in Neural Machine Translation:A Contrastive Learning Approach 基本信息 研究目 ...

  4. 浅聊对比学习(Contrastive Learning)

    作者丨parasol@知乎 (已授权) 来源丨https://zhuanlan.zhihu.com/p/521614413 编辑丨极市平台 导读 本文通过解读对比学习的经典论文和综述,介绍对比学习的概 ...

  5. 从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering)

    从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailug ...

  6. 对比学习(Contrastive Learning)综述

    A.引入   https://zhuanlan.zhihu.com/p/346686467 A.引入 深度学习的成功往往依赖于海量数据的支持,其中对于数据的标记与否,可以分为监督学习和无监督学习. 1 ...

  7. 对比学习系列论文SDCLR(二)-Self-Damaging Contrastive Learning

    目录 0.Abstract 0.1逐句翻译 0.2总结 1. Introduction 1.1. Background and Research Gaps 1.1.1逐句翻译 第一段(引出对比学习是否 ...

  8. 【NLP】Contrastive Learning NLP Papers

    来自 | 知乎 作者 | 光某人 地址 | https://zhuanlan.zhihu.com/p/363900943 编辑 | 机器学习算法与自然语言处理公众号 本文仅作学术分享,若侵权,请联系后 ...

  9. 对比学习(Contrastive Learning)相关进展梳理

    ©PaperWeekly 原创 · 作者|李磊 学校|西安电子科技大学本科生 研究方向|自然语言处理 最近深度学习两巨头 Bengio 和  LeCun 在 ICLR 2020 上点名 Self-Su ...

最新文章

  1. 驭势科技引入国家队战略注资,完成超10亿元人民币融资
  2. CVPR 2022 | 阿里达摩院新技术,美体塑形一键就成
  3. 蛋花花:互联网正在告别青春期
  4. 箱形图适用于哪种数据_盘点 | 十分钟进阶Excel数据可视化
  5. PHP定时备份MySQL,mysqldump语法大全
  6. 两个坐标系进行了缩放平移后的变换关系
  7. Cpp / 空指针对象调用函数的不同结果
  8. ssm如何支持热部署_Pipedrive如何在每天部署50+次的情况下支持质量发布?
  9. 基于SpringBoot+mybatis+layui就业管理系统设计和实现
  10. 信息学奥赛一本通 1055:判断闰年 | OpenJudge NOI 1.4 17
  11. SQL Server相关知识
  12. 狱警讲述死刑_BDFL是死刑吗?
  13. rsa加密算法实现_深度理解:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  14. 红帽:将开源进行到底!
  15. JavaScript 小技巧之数组合并
  16. hdu 4004The Frog's Games 二分查找!!!!!!!
  17. 18.Argument replacement
  18. 对象转JSON字符串保留空(null)值;
  19. npm install报错214 verbose node v14.15.0 215 verbose npm v7.23.0
  20. CISCO 关闭4786端口解决方法 cisco IOS and IOS XE software Smart Install protocol Misuse

热门文章

  1. 超简单 不进PE 不用U盘 自己重装电脑系统步骤
  2. 产品经理学习-加分技能
  3. HTTP 、HTTPS
  4. 正确使用pageX、pageY、offsetLeft、offsetTop
  5. ideaIU-2020.1下载
  6. 十问旷视印奇、唐文斌:AI企业都在经历「死亡之谷」
  7. 软件开发过程 文档
  8. Excel技能培训-INDIRECT实现拼接动态引用单元格,trl+pageDown速切换工作簿,多工作表求和,多个工作簿合并和拆分
  9. 分布式与集群的区别 .
  10. 学计算机键盘用什么轴,机械键盘别再盲目的选择,看看四种常用轴到底适合什么用途...