关注公众号,发现CV技术之美

本文分享NeurIPS 2021 论文『Revitalizing CNN Attentions via Transformers in Self-Supervised Visual Representation Learning』,由港大&腾讯AI Lab&牛津大学联合提出 CARE,让 CNN 和 Transformer 能在对比学习中“互帮互助”!

详细信息如下:

  • 论文链接:https://arxiv.org/abs/2110.05340

  • 项目链接:https://github.com/chongjiange/care

导言:

自监督视觉表征学习(SSL)的研究提升了编码器主干网络的性能,使其能够区分无标签的训练样本。虽然通过SSL实现的CNN编码器的识别性能与通过监督学习实现的编码器相当,但其网络中的注意力机制还未得到探索,有待进一步改进。

受在识别场景中带视觉注意力机制的Transformer的启发,作者提出了一个CNN注意力恢复(CNN Attention REvitalization,CARE) 框架来训练SSL中由Transformer引导注意力的CNN编码器。本文提出的CARE框架由CNN流(C流,C-stream)Transformer流(T流,T-stream)组成,其中每个流包含两个分支。C-stream遵循现有的SSL框架,带有两个CNN编码器、两个投影模块和一个预测模块。

T-stream包含两个Transformer、两个投影模块和一个预测器。T-stream连接到CNN编码器,并与剩余的C-stream并行。在训练期间,作者在两个流中同时执行SSL,并使用T-stream输出来监控C-stream。CNN编码器的特征在T-stream中进行调整,以增强视觉注意力。然后使用这些调整的特征来监督C-stream,以便学习attentive的CNN编码器。

在多个标准视觉识别基准(包括图像分类、目标检测和语义分割)上的实验表明,本文提出的CARE框架将CNN编码器主干提高到SOTA的性能。

      01      

Motivation

有效地学习视觉特征对识别性能有着深远的影响。在处理大规模自然图像时,自监督视觉表征学习中的代理特征训练(pretext feature training),有利于下游识别任务。现有的SSL方法通常利用两个分支来度量来自同一输入图像的不同视图表示之间的相似性。通过最大化一幅图像中相关视图之间的相似性(例如,BYOL、SimSiam和Barlow Twins),或最小化不同图像中视图之间的相似性(例如,MoCo和SimCLR),这些方法被证明是学习自监督视觉表示的有效方法。

Transformer在自然语言处理中被提出,自ViT以来,它在处理大规模视觉数据方面也显示了其优势。Transformer中的编码器-解码器架构探索了无卷积的全局注意力。使用Transformer编码器的成功表明,视觉注意力有利于SSL中的编码器主干网络。另一方面,作者观察到现有的SSL方法并没有将视觉注意纳入CNN编码器中。这激发了作者对SSL中注意力机制的探索。作者希望CNN编码器能够具有Transformer的类似视觉注意力,以降低计算复杂度和内存消耗,从而提高识别性能。

在本文中,作者提出了一个CNN注意力恢复框架(CARE),通过Transformer引导使CNN编码器具备注意力机制。上图(d)显示了CARE的图示,并将其与其他SOTA的SSL框架进行了比较。CARE中有两个流(即C-Stream和T-Stream),其中每个流包含两个分支。C-stream与现有的SSL框架类似,它有两个CNN编码器、两个投影模块和一个预测模块。T-stream由两个Transformer、两个投影模块和一个预测模块组成。T-stream将CNN编码器特征作为输入,并通过Transformer提高特征的注意力。

在训练过程中,作者同时在两个流中执行SSL,并使用T-Stream输出来监督C-Stream。T-stream中的自监督学习确保了Transformer能够产生适用于SSL场景的注意力特征。同时,作者在C-stream上使用注意力来监督,这种监督使C-stream和T-stream都能产生类似的特性。CNN编码器的特征表示通过来自Transformer的视觉注意力得到了改进。

因此,预训练好的CNN编码器能够产生具有注意力的特征,这有利于下游识别场景。在图像分类、目标检测和语义分割基准上的实验表明,本文提出的CARE框架提高了CNN编码器主干网络的性能。

      02      

方法

本文的框架由C-stream和T-stream组成,如上图所示。

2.1 CNN-stream (C-stream)

本文的C-stream类似于现有的SSL框架,有两个CNN编码器、两个投影模块和一个预测模块。两个编码器的结构相同,两个投影模块的结构相同。给定一个训练图像X,首先使用一组随机增强来处理它,以创建两个不同的增强视图。然后将这两个视图输入到C-stream,分别获得相应的输出和。然后计算用损失函数来惩罚两个输出的不相似度,该损失项是归一化特征向量的均方误差,如下:

其中为正则化,为点积运算。由于C-stream的输入来自一幅图像,因此在训练过程中C-stream的输出应该是相似的。

2.2 Transformer-stream (T-stream)

T-stream将CNN编码器的输出特征映射作为其输入,与C-stream并行设置。它由两个Transformer、两个投影模块和一个预测模块组成。投影模块和预测模块的结构与C-stream中的结构相同。

两个Transformer共享相同的架构,由连续的注意块组成,其中每个注意块包含两个多层感知机(MLP)层和一个位于中间的多头自注意(MHSA)层,其结构如上图所示。MHSA由多个平行处理输入特征的注意头组成。

在每一个注意头中,如上图右侧所示,输入特征映射分别通过3个不同的MLP层映射到query特征(q)、key特征(k)和 value特征(k)。然后,q和k相乘形成基于内容的注意,而q和位置编码p相乘形成基于位置的注意,如下所示:

其中是q和k的维度。在T-stream中,两个Transformer的输出是2D特征映射,然后将其平均池化并送到投影模块和预测模块。T-Stream的输出可以表示为和,损失函数如下所示:

除了在两个流中引入SSL损失项外,作者还使用T-Stream输出来监督C-Stream。这一项可以写成:

在训练过程中,要求C-stream输出与T-stream输出尽可能相似。相比于知识蒸馏(KD),这个公式主要有三点区别:

  • 结构不同。在KD中,一个大型教师网络被训练用来管理一个小型学生网络。相反,在本文的方法中,CNN主干网络结构相同,不同的模块只是Transformer、投影模块和预测模块。

  • 训练模式不同。在KD中,教师网络通常在监督学生网络之前预训练好的。相比之下,本文方法的两个分支是从头开始一起训练的,以便相互学习。

  • KD中的损失函数通常是交叉熵损失,而本文采用均方误差。在KD期间,还将在特征映射级别之间计算监督损失,而本文的方法仅根据网络输出计算损失。

2.3 Network training

网络训练的最终目标函数可以表示为:

其中,λ是控制注意力损失影响的超参数。在计算之后,对C-stream和T-stream的上面分支执行反向传播。如上图中,CNN encoder1, projector1, predictor1通过C-stream中计算的梯度进行更新。同时,Transformer1、projector2和 predictor2通过T-stream中计算的梯度进行更新。然后剩下的部分,基于EMA进行更新。

2.4 Visualizations

本文的CARE框架,通过Transformer引导提高了CNN编码器的注意力。在上图中,作者展示了Attention Map的可视化结果。输入图像如(a)所示,而使用C-stream和CARE训练的编码器的Attention Map分别显示在(b)和(C)中。

总的来说,使用CARE训练的编码器的注意力比使用C-stream训练的编码器更集中,这表明T-stream为CNN编码器学习关注目标区域提供了有效的监督。T-stream帮助CNN编码器自适应地选择关注局部区域或全局区域。

例如,当分类需要全局信息时,CARE学习的CNN编码器将更加关注整个对象,如(c)中最后一列所示。另一方面,当局部信息足以进行分类时,CNN编码器将更加关注特定区域(例如,第一列和第二列(c)中的动物头部)。

      03      

实验

3.1 Comparison to state-of-the-art approaches

图像分类的自监督学习

上表展示了ImageNet上自监督学习的实验结果,(a)表展示了以ResNet-50为编码器的实验结果,可以看出,本文方法比其他的自监督方法效果都要更好;(b)表展示了不同Encoder的实验结果,可以看出,本文的方法同样有性能优势。

图像分类的半监督学习

上表展示了ImageNet上半监督的实验结果,可以看出本文方法的性能优越性。

迁移到目标检测和语义分割

上表展示了本文方法转移到目标检测和实例分割上的实验结果。

上表展示了用了FPN时,本文方法在目标检测和实例分割上的实验结果。

可以看出,在目标检测和实例分割任务上,本文方法同样比其他自监督方法效果更好。

3.2 Ablation studies

Supervision influenceλ

上表展示了不同λ的实验结果,可以看出λ=100时,实验结果是最好的。

注意块的数量

上表展示了不同注意块的实验结果,可以看出注意块为5时,实验结果是最好的。

位置编码

从上表可以看出,加入可学习的相对位置编码时,实验结果是最好的。

      04      

总结

Transformer通过注意力探索结构实现了高级的视觉识别。在自监督视觉表征学习中,出现了利用Transformer主干网络提高识别性能的研究,这表明Transformer的视觉注意有益于SSL方法。受此启发,作者研究了如何有效地探索视觉注意力,使SSL中的CNN编码器能够受益

因此,作者提出了CNN流和Transformer流并行的CARE框架。在SSL过程中,视觉注意力通过Transformer来监督CNN流。虽然在SSL和注意力监督损失项上会消耗更多的计算成本,但学习到的CNN编码器在Transformer引导下能够关注到正确的区域,并且不会在下游任务中消耗更多的计算成本。

在标准视觉识别基准(包括图像分类、对象检测和语义分割)上的实验表明,CARE让CNN编码器主干网络达到了更高的SOTA性能。

▊ 作者简介

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

END

加入「Transformer交流群

NeurIPS2021 港大腾讯AI Lab牛津提出:CARE,让CNN和Transformer能在对比学习中“互帮互助”!...相关推荐

  1. 【GNN报告】腾讯AI lab 徐挺洋:图生成模型及其在分子生成中的应用

    目录 1.简介 2.An overview of Graph Generative Models and Their Applications on Molecular Generation 背景 图 ...

  2. CVPR 2022|处理速度仅用0.2秒!港科大腾讯AI lab开源基于GAN反演的高保真图像编辑算法...

    作者丨Tengfei Wang 来源丨港科大.腾讯 AI Lab 编辑丨极市平台 论文:https://arxiv.org/abs/2109.06590 代码:https://github.com/T ...

  3. NeurIPS 2018 | 腾讯AI Lab参与提出基于随机路径积分的差分估计子

    感谢阅读腾讯AI Lab微信号第58篇文章.AI领域顶会 NeurIPS 正在加拿大蒙特利尔举办,腾讯AI Lab实验室每日将深度解读一篇入选论文,今天是第2篇.Enjoy! NeurIPS (Con ...

  4. 腾讯AI Lab联合清华,港中文长文解析图深度学习的历史、最新进展到应用

    本文作者: 腾讯:荣钰.徐挺洋.黄俊洲:清华大学:黄文炳:香港中文大学:程鸿 前言 人工智能领域近几年历经了突飞猛进的发展.图像.视频.游戏博弈.自然语言处理.金融等大数据分析领域都实现了跨越式的进步 ...

  5. NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩、机器学习及最优化算法

    导读:AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自动机器学习.机器学习与最优化算法,选取23篇会议上入选的重点论文进行分析解读,与大家分享.Enjo ...

  6. CVPR 2019 | 腾讯AI Lab 6大前沿方向33篇入选论文解读

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自腾讯 AI Lab 公众号(tencent_ailab),分组介绍了CVPR 2019 中腾讯 AI Lab 的6大重点研究方向和入选的33篇 ...

  7. 腾讯AI Lab联合清华、港中文带来万字干货解析:图深度学习的历史、最新进展和应用

    作者: 腾讯:荣钰.徐挺洋.黄俊洲:清华大学:黄文炳:香港中文大学:程鸿 前言 人工智能领域近几年历经了突飞猛进的发展.图像.视频.游戏博弈.自然语言处理.金融等大数据分析领域都实现了跨越式的进步并催 ...

  8. ICLR 2021 | 腾讯 AI Lab 入选论文解读

    本文转载自腾讯AI实验室. ICLR(International Conference on Learning Representations),即国际学习表征会议,由深度学习三巨头之二的 Yoshu ...

  9. ICLR 2021 | 腾讯 AI Lab 入选论文

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:腾讯AI Lab微信(tencent_ailab) AI博士 ...

最新文章

  1. 【高并发】面试官问我:为啥局部变量是线程安全的?
  2. 开机流程与主要开机记录区(MBR)
  3. Java中字符串和数字间转换
  4. 递归函数就兔子数C语言,【C语言】求斐波那契(Fibonacci)数列通项(递归法、非递归法)...
  5. 【WebRTC---进阶篇】(五)mediasoup的信令系统
  6. JAVA自学笔记25
  7. 使用PyQt4和twisted写的局域网聊天室(2)
  8. 全国省市区SQL语句(mysql)
  9. S2SH药膳馆会员管理系统计算机专业毕业论文java毕业设计开题报告
  10. Codeforces 869A. The Artful Expedient
  11. JAVA大数据需要学什么
  12. Bailian4005 拼点游戏【贪心】
  13. java pdf 签名_java – PDFBox 1.8.10:填充和签名PDF生成无效签名
  14. Spark学习-DAY4
  15. BeautifulSoup4用法详解
  16. Brave浏览器月活超千万,小费打赏功能你会用了吗?
  17. 来个几年前别人的小故事
  18. linux如何读取华为手机存储文件夹下,安卓手机文件系统的二次革命,F2FS后再看EROFS...
  19. Windows系统和Office的VL版本是什么意思有什么区别?
  20. emui android区别,华为手机为什么有EMUI版本和Android版本?

热门文章

  1. Java分割字符split与StringTokenizer
  2. Opencv--从CalibrateCamera到SolvePnp(一)
  3. 区块链教程(五):合约编写实战实例
  4. 早高峰共享单车潮汐点的群智优化(想法)
  5. Java 8 函数式编程学习笔记
  6. oracle的备份与恢复
  7. STM32 - 定时器高级应用说明 - 多触波的实现 (N-pulse waveform generation using timer synchronization)- 01
  8. python特征工程意义_python数据挖掘--特征工程篇(附代码)
  9. docker mysql 时区_配置mysql docker容器的时区
  10. navicat存储过程返回值为空_Excel VBA解读(128):Function过程详解——枯燥的语法...