物尽其用,卷积和自注意力在Transformer中实现统一:多SOTA、ICLR 2022接收(1)

简介: 物尽其用,卷积和自注意力在Transformer中实现统一:多SOTA、ICLR 2022接收

本文介绍的是中科院深圳先进技术研究院、商汤和上海 AI Lab 的研究者合作完成的 UniFormer,包括 ICLR 2022 接收的视频 backbone,以及为下游密集预测任务设计的拓展版本,在各种任务上都能取得相较流行 SOTA 模型更好的性能。代码、模型、日志以及训练脚本都已开源。。




  • 图像分类:在 Token Labeling [1] 的加持下,仅靠 ImageNet-1K 训练,39G 的 UniFormer-L-384 在 ImageNet 上实现 86.3% 的 top-1 精度;
  • 视频分类:仅用 ImageNet-1K 预训练,UniFormer-B 在 Kinetics-400 和 Kinetics-600 上分别取得了 82.9% 84.8% 的 top-1 精度(比使用 JFT-300M 预训练,相近性能的 ViViT [2] 的 GFLOPs 少 16 倍)。在 Something-Something V1 和 V2 上分别取得 60.9% 71.2% 的 top-1 精度,为同期模型的 SOTA;
  • 密集预测:仅用 ImageNet-1K 预训练,COCO 目标检测任务上取得 53.8 的 box AP 与 46.4 的 mask AP;ADE20K 予以分割任务上取得 50.8 的 mIoU;COCO 姿态估计任务上取得 77.4 的 AP。后面会介绍为下游任务设计的,训练和测试时模型适配。


图像分类与视频分类任务性能比较(上方为 ImageNet 上 224x224 与 384x384 分辨率输入)

研究动机

对图像和视频上的表征学习而言,有两大痛点:

  • 局部冗余(local redundancy):视觉数据在局部空间 / 时间 / 时空邻域具有相似性,这种局部性质容易引入大量低效的计算;
  • 全局依赖(global dependency):要实现准确的识别,需要动态地将不同区域中的目标关联,建模长时依赖。


现有的两大主流模型 CNN 和 ViT,往往只关注解决问题之一。卷积只在局部小邻域聚合上下文,天然地避免了冗余的全局计算,但受限的感受野难以建模全局依赖。而自注意力通过比较全局相似度,自然将长距离目标关联,但如下可视化可以发现,ViT 在浅层编码局部特征十分低效。

DeiT 可视化,可以看到即便是经过了三层的自注意力,输出特征仍保留了较多的局部细节。我们任选一个 token 作为查询,可视化注意力矩阵可以发现,被关注的 token 集中在 3x3 邻域中(红色越深关注越多)。

TimeSformer 可视化,同样可以看到即便是经过了三层的自注意力,输出的每一帧特征仍保留了较多的局部细节。我们任选一个 token 作为查询,可视化空间注意力和时序注意力矩阵都可以发现,被关注的 token 都只在局部邻域中(红色越深关注越多)。

无论是空间注意力抑或时序注意力,在 ViT 的浅层,都仅会倾向于关注查询 token 的邻近 token。要知道注意力矩阵是通过全局 token 相似度计算得到的,这无疑带来了大量不必要的计算。相较而言,卷积在提取这些浅层特征时,无论是在效果上还是计算量上都具有显著的优势。那么为何不针对网络不同层特征的差异,设计不同的特征学习算子,将卷积和自注意力有机地结合物尽其用呢?

本文的 UniFormer (Unified transFormer),旨在以 Transformer 的风格,有机地统一卷积和自注意力,发挥二者的优势,同时解决局部冗余和全局依赖两大问题,实现高效的特征学习

方法

模型整体框架,标红维度仅对视频输入作用,对图像输入都可视作 1。

模型整体框架如上所示,借鉴了 CNN 的层次化设计,每层包含多个 Transformer 风格的 UniFormer block。

UniFormer block

每个 UniFormer block 主要由三部分组成,动态位置编码 DPE、多头关系聚合器 MHRA 以及 Transformer 必备的前馈层 FFN,其中最关键的为多头关系聚合器:

MHRA

与多头注意力相似,我们将关系聚合器设计为多头风格,每个头单独处理一组 channel 的信息。每组的 channel 先通过线性变换生成上下文 token ,然后在 token affinity 的作用下,对上下文进行有机聚合。

基于前面的可视化观察,研究者认为在网络的浅层,token affinity 应该仅关注局部邻域上下文,这与卷积的设计不谋而合。因此,他们将局部关系聚合设计为可学的参数矩阵:

local MHRA

其中为 anchor token,为局部邻域 任一 token,为可学参数矩阵, 为二者相对位置,表明 token affinity 的值只与相对位置有关。这样一来,local UniFormer block 实际与 MobileNet block [3] 的风格相似,都是 PWConv-DWConv-PWConv(见原论文解析),不同的是研究者引入额外的位置编码以前前馈层,这种特别的结合形式有效地增强了 token 的特征表达

在网络的深层,研究者需要对整个特征空间建立长时关系,这与自注意力的思想一致,因此通过比较全局上下文相似度建立 token affinity:

global MHRA

其中为不同的线性变换。先前的视频 transformer 往往采用时空分离的注意力机制 [4],以减少视频输入带来的过量点积运算,但这种分离的操作无疑割裂了 token 的时空关联。相反,UniFormer 在网络的浅层采用 local MHRA,节省了冗余计算量,使得网络在深层可以轻松使用联合时空注意力,从而可以得到更具辨别性的视频特征表达。再者,与以往 ViT 中使用绝对位置编码不同,这里采用卷积风格的动态位置编码,使得网络可以克服排列不变形(permutation-invariance)的同时,对不同长度的输入更友好。

流行的 ViT 往往采用绝对或者相对位置编码 [5],但绝对位置编码在面对更大分辨率的输入时,需要进行线性插值以及额外的参数微调,而相对位置编码对自注意力的形式进行了修改。为了适配不同分辨率输入的需要,研究者采用了最近流行的卷积位置编码 [6] 设计动态位置编码:

DPE

其中 DWConv 为零填充的的深度可分离卷积。一方面,卷积对任何输入形式都很友好,也很容易拓展到空间维度统一编码时空位置信息。另一方面,深度可分离卷积十分轻量,额外的零填充可以帮助每个 token 确定自己的绝对位置。

框架

图像分类

模型细节

研究者设计了三种不同规模的模型,每个模型包含 4 层,前两层使用 local MHRA,后两层使用 global MHRA。对于 local MHRA,卷积核大小为 5x5,归一化使用 BN(使用 LN 性能较差)。对于 global MHRA,每个 head 的 channel 数为 64,归一化使用 LN。动态位置编码卷积核大小为 3x3,FFN 的拓展倍数为 4。

对于特征下采样,研究者采用非重叠卷积,其中第一次下采样卷积核大小为 4x4、步长为 4x4,其余三次下采样卷积核大小为 2x2、步长为 2x2。在每次下采样卷积之后,他们额外增加 LN 归一化。网络最后接平均池化层与线性分类层,输出最终预测。当使用 Token Labeling 时,研究者额外加入一个线性分类层以及辅助损失函数。

对于 UniFormer-S,研究者设计了增强版本,每层 block 数量为 [3, 5, 9, 3],下采样使用重叠卷积,FLOPs 控制为 4.2G,保证与其他 SOTA 模型可比。


相关文章
|
机器学习/深度学习 算法 Python
【DYConv】CVPR2020 | 即插即用的动态卷积模块助力你涨点
【DYConv】CVPR2020 | 即插即用的动态卷积模块助力你涨点
1580 1
【DYConv】CVPR2020 | 即插即用的动态卷积模块助力你涨点
|
6月前
|
人工智能 Cloud Native 安全
《2025年度企业用云十大趋势》发布,AI云全面支撑大模型落地
《2025年度企业用云十大趋势》发布,AI云全面支撑大模型落地
|
7月前
|
机器学习/深度学习 人工智能 算法
ProtGPS:MIT再造生命科学新基建!蛋白质AI一键预测定位+设计新序列,登Nature子刊
ProtGPS 是麻省理工学院和怀特黑德研究所联合开发的蛋白质语言模型,能够预测蛋白质在细胞内的亚细胞定位,并设计具有特定亚细胞定位的新型蛋白质。
582 17
ProtGPS:MIT再造生命科学新基建!蛋白质AI一键预测定位+设计新序列,登Nature子刊
|
12月前
|
算法 测试技术 开发者
精进你的代码:重构的艺术与实践
在软件开发中,编写清晰、高效且可维护的代码是每位开发者的追求。重构是提升代码质量的关键手段,它在不改变代码外部行为的前提下,优化其结构、可读性和性能。本文探讨重构的艺术与实践,介绍重构的概念、目标及基本原则,并提供实用技巧,如提取方法、简化条件表达式、消除重复代码、使用描述性命名和优化数据结构,帮助开发者持续改进代码,应对需求变化,提高开发效率。
|
开发框架 Android开发 iOS开发
跨平台开发的双重奏:Xamarin在不同规模项目中的实战表现与成功故事解析
【8月更文挑战第31天】在移动应用开发领域,选择合适的开发框架至关重要。Xamarin作为一款基于.NET的跨平台解决方案,凭借其独特的代码共享和快速迭代能力,赢得了广泛青睐。本文通过两个案例对比展示Xamarin的优势:一是初创公司利用Xamarin.Forms快速开发出适用于Android和iOS的应用;二是大型企业借助Xamarin实现高性能的原生应用体验及稳定的后端支持。无论是资源有限的小型企业还是需求复杂的大公司,Xamarin均能提供高效灵活的解决方案,彰显其在跨平台开发领域的强大实力。
179 0
|
Java 编译器
Java——类与对象(继承和多态)
本文介绍了面向对象编程中的继承概念,包括如何避免重复代码、构造方法的调用规则、成员变量的访问以及权限修饰符的使用。文中详细解释了继承与组合的区别,并探讨了多态的概念,包括向上转型、向下转型和方法的重写。此外,还讨论了静态绑定和动态绑定的区别,以及多态带来的优势和弊端。
242 7
Java——类与对象(继承和多态)
|
缓存 监控 前端开发
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(3)-再识Fiddler让你感性认识一下
【7月更文挑战第18天】Fiddler界面简要介绍:Fiddler是一个HTTP协议调试代理工具,其界面分为多个部分,包括菜单栏、工具面板、会话列表、监控面板和状态栏。
233 1
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(3)-再识Fiddler让你感性认识一下
|
存储 关系型数据库 MySQL
精通MySQL:核心功能与实践应用
h3> 第一章:MySQL入门 1.1 MySQL概述 简要介绍MySQL的历史、特点以及在数据库领域的应用
使用IntelliJ IDEA查看类图,内容极度舒适
使用IntelliJ IDEA查看类图,内容极度舒适
325 1
|
分布式计算 监控 Hadoop
Hadoop权限问题
【5月更文挑战第6天】Hadoop权限问题
424 1