全新Backbone | SWin+CSWin 成就更强的 AEWin Backbone!

简介: 全新Backbone | SWin+CSWin 成就更强的 AEWin Backbone!

fb9f06b081e34d3e004063321fcd8ee3.png

最近,Transformers 在各种视觉任务中表现可喜。Transformer 设计中的一个具有挑战性的问题是全局自注意力的计算成本非常高,尤其是对于高分辨率视觉任务。局部自注意力在局部区域内进行注意力计算以提高其效率,这导致它们在单个注意力层中的感受野不够大,导致上下文建模不足。


在观察场景时,人类通常专注于局部区域,而以粗粒度关注非注意力区域。基于这一观察,作者开发了轴向扩展窗口自注意力机制,该机制在局部窗口内执行细粒度自注意力,在水平轴和垂直轴上执行粗粒度自注意力,因此可以有效地捕获短和远距离的视觉依赖。

1、简介

长期以来,计算机视觉建模一直由卷积神经网络 (CNN) 主导。最近,自然语言处理(NLP)领域的 Transformer 模型引起了计算机视觉(CV)研究人员的极大兴趣。 Vision Transformer (ViT) 模型及其变体在许多核心视觉任务上获得了最先进的结果。继承自 NLP 的原始 ViT 首先将输入图像拆分为Patch,同时配备一个可训练类 (CLS) Token,该Token附加到输入Patch Token。接下来,Patch在 NLP 应用程序中的处理方式与Token相同,使用自注意力层进行全局信息通信,最后使用输出 CLS Token 进行预测。最近的工作表明,ViT 在大规模数据集上优于最先进的卷积网络。然而,当在较小的数据集上进行训练时,ViT 通常不如基于卷积层的对应模型。


原始 ViT 缺乏局部性和平移等效性等归纳偏差,导致 ViT 模型的过度拟合和数据效率低下。为了解决这种数据效率低下的问题,随后的大量工作研究了如何将 CNN 模型的局部性引入 ViT 模型以提高其可扩展性。这些方法通常会重新引入分层架构来补偿非局部性的损失,例如 Swin Transformer


局部自注意力和分层 ViT (LSAH-ViT) 已被证明可以解决数据效率低下的问题并缓解模型过度拟合。然而,LSAH-ViT 在浅层使用基于窗口的注意力,失去了原始 ViT 的非局部性,这导致 LSAH-ViT 的模型容量有限,因此不适用于 ImageNet-21K 等更大的数据机制。为了架起窗口之间的联系,之前的 LSAH-ViT 作品提出了专门的设计,例如“haloing operation”和“shifted window”。这些方法通常需要复杂的架构设计,并且感受野扩大非常缓慢,并且需要堆叠大量块来实现全局自注意力。

a36a62681bb89043ec3c8b637edd6898.png

在观察场景时,人类通常专注于局部区域,而以粗粒度关注非注意力区域。基于这一观察提出了轴向扩展窗口(AEWin)自注意力,如图 1 所示,并与现有的自注意力机制进行了比较。考虑到附近区域之间的视觉依赖性通常比远处更强,作者在局部窗口内执行细粒度自注意力,在水平轴和垂直轴上执行粗粒度注意力。


将多头分成3个平行的组,前2组的Head数是最后一组的一半,前两组分别用于水平轴和垂直轴上的self-attention,最后一组group 用于局部窗口内的self-attention。值得注意的是,采用AEWin自注意力机制,局部窗口、横轴、纵轴的自注意力是并行计算的,这种并行策略并没有引入额外的计算成本。

a48baaaa18049958b61e3e9d488c13f2.png

如图 2 所示,特征图用long tokens关注其最近的环境,用short tokens关注其水平和垂直轴上的环境,以捕获粗粒度的视觉依赖关系。因此,它能够有效地捕捉短程和长程的视觉依赖。得益于细粒度的窗口自注意力和粗粒度的轴向自注意力,与图 1 所示的现有局部自注意力机制相比,AEWin 自注意力可以更好地平衡性能和计算成本。

基于提出的 AEWin self-attention 设计了一个具有分层架构的通用视觉 Transformer 主干,命名为 AEWin TransformerTiny AEWin-TImageNet-1K 上实现了 83.6% 的 Top-1 准确度,无需任何额外的训练数据或标签。

2、本文方法

2.1、总体结构

b0fa6c9db7089fed3292ffa116e57fae.png

AEWin-ViT 架构的概述如图 3 (a) 所示,它说明了Tiny版本。AEWin-ViT 由4个分层阶段组成,遵循Swin-ViT中流行的设计来构建分层架构以捕获多尺度特征并交替使用移位窗口。每个阶段都包含一个patch merging layer和多个 AEWin Transformer Block。随着网络越来越深,输入特征通过patch merging layer按一定比例进行空间下采样,通道维度扩大两倍,产生分层图像表示。


具体来说,空间下采样率在第一阶段设置为 4,在后3个阶段设置为 2,使用与 Swin-ViT 相同的patch merging layerpatch merging layer的输出被馈送到后续的 AEWin Transformer Block中,并且Token的数量保持不变。最后,对最后一个Block的输出应用全局平均池化步骤,以获得最终预测的图像表示向量。

2.2、轴向扩展窗口 Self-Attention

LSAH-ViT 在浅层使用基于窗口的注意力,失去了原始 ViT 的非局部性,这导致 LSAH-ViT 的模型容量有限,因此在更大的数据机制上不利于扩展。现有作品提出了专门的设计,例如“haloing operation”和“shifted window”,以在窗口之间传递信息。这些方法通常需要复杂的架构设计,并且感受野扩大非常缓慢,并且需要堆叠大量块来实现全局自注意力。为了捕捉从短程到长程的依赖关系,受人类观察场景的启发提出了轴向扩展窗口自注意力(AEWin-Attention),它在局部窗口内执行细粒度自注意力和粗粒度自注意力。

1、轴向扩展窗口

根据multi head self-attention机制,输入特征1675253004628.png先线性投影到K个heads,然后每个head会在窗口或横轴或垂直轴内进行局部self-attention

对于水平轴向self-attention1675253028741.png,X被均匀地分割成不重叠的水平stripes,每个stripes包含1675253051486.pngtoken。形式上,假设第 k 个 head 的投影querykeyvalue 都有维度1675253070449.png ,那么第 k 个 head 的水平轴 self-attention 的输出定义为:

ff3ff56d3b8d3f41423f89e8231cecd3.png

其中1675253087864.pngMSA表示Multi-head Self-Attention。1675253175097.png 分别表示第 k 个headquerykeyvalue的投影矩阵1675253114895.png垂直轴向self-attention可以类似地推导出来,它对第k个head的输出表示为1675253155264.png

对于windowed self-attention,X被均匀地分割成高度和宽度等于M的非重叠局部窗口1675253203682.png,每个窗口包含M×Mtoken。基于以上分析,第 k 个 head 的窗口化 self-attention 的输出定义为:

3ee5f39b45150c8e41b418b2920d5e70.png

其中,N=(H×W)/(M×M),M 默认为7。

2、不同粒度的并行实现

将K个head分成3个平行组,前2组为K/4个head,最后一组为K/2个head,从而在局部和全局之间建立了不同的粒度,如图2所示。第一组head进行横轴自注意力,第二组head进行纵轴自注意力,第三组head进行局部窗口自注意力。最后,这三个平行组的输出将被重新连接在一起。

35de6064ae331742f61439e2f4a4bab6.png

其中,1675253228371.png是常用的投影矩阵,用于积分三组的输出Token。与分别逐步实现轴向自注意力和窗口自注意力相比,这种并行机制具有较低的计算复杂度,通过仔细设计不同组的head数可以实现不同的粒度。

3、Complexity Analysis

给定大小为H×W×C和窗口大小(M,M)的输入特征,M 默认设置为7,标准的全局自注意力的计算复杂度为

c3a7adcec012a02ed3416f50adb5dde5.png

然而,提出的AEW注意力在并行实现下的计算复杂度为

d04f873004b79d0d0f9f10e3b5b1cdd2.png

与全局相比,这可以明显减轻计算和内存负担,因为 1675253261219.png 始终成立。

2.3、AEWin Transformer Block

采用上述自注意机制,AEWin Transformer block 定义为:

ed885624c557c3902218ab138108b9c4.png

其中1675253284787.png分别表示Block lAEWin模块和MLP模块的输出特征。在计算 self-attention 时,遵循 Swin-ViT,在计算相似度时包括每个head的相对位置偏差 B。

3、实验

484f2995d1607f84864dce7f2248f2e9.png

4、参考

[1].Axially Expanded Windows for Local-Global Interaction in Vision Transformers.

5、推荐阅读

3D检测难点 | 3D检测如何解决远处小目标问题?Deformable PV-RCNN 或是个答案!

YOLOU 集成超轻量化 YOLO 系列模型YOLO-Fastest v2,ONNX一键导出部署!

超越YOLOv7 | YOLOv6论文放出,重参+自蒸馏+感知量化+...各种Tricks大放异彩

相关文章
|
机器学习/深度学习 搜索推荐 数据挖掘
常见的几种距离量度(欧式距离、曼哈顿距离、切比雪夫距离等)
在机器学习和数据挖掘中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距离。本文介绍几种常用的距离量度方法。
2492 0
|
机器学习/深度学习 编解码 自动驾驶
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
617 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
机器学习/深度学习 编解码 并行计算
论文阅读笔记 | Transformer系列——CSWin Transformer
论文阅读笔记 | Transformer系列——CSWin Transformer
1310 0
论文阅读笔记 | Transformer系列——CSWin Transformer
|
机器学习/深度学习 存储 缓存
pytorch 单卡改多卡详细教程
pytorch 单卡改多卡详细教程
1150 0
pytorch 单卡改多卡详细教程
|
弹性计算 Prometheus 运维
一文详解阿里云可观测体系下标签最佳实践
在当今数字化转型加速的时代,企业 IT 系统的复杂度与日俱增,如何高效地管理和监控这些系统成为了一项挑战。阿里云作为全球领先的云计算服务商,提供了一整套全面的可观测性解决方案,覆盖从业务、端侧(小程序、APP、H5 等)、应用、中间件、容器/ECS 等全栈的监控体系,旨在帮助企业构建强大而灵活的可观测性体系。其中,标签(Tag)作为一种核心组织和管理手段,在阿里云可观测体系中扮演着至关重要的角色。本文将深入探讨阿里云可观测系列产品中标签的应用,以及如何运用标签在阿里云可观测产品体系下进行体系化建设并给出相关最佳实践。
1238 194
|
4月前
|
人工智能 自然语言处理 API
AI Ping 限时开放:GLM-4.7 与 MiniMax M2.1 免费体验,赋能真实工程场景
AI Ping平台上线GLM-4.7与MiniMax M2.1国产大模型,限时免费调用,支持高吞吐、低延迟的工程级AI应用。助力开发者实现编码自动化、Agent工作流构建等真实业务落地,推动AI从“能用”迈向“好用”。
741 0
|
4月前
|
人工智能 前端开发 JavaScript
GLM-4.7实战指南:三个梯度测试,解锁国产大模型的代码生成与审美上限
国产大模型 GLM-4.7 在前端代码生成与智能体编程(Agentic Coding)上实现突破,凭借强大的逻辑推理、UI 审美与交互设计能力,可媲美 Claude 3.5 Sonnet。实测显示,其在 SVG 生成、网页游戏开发及高级页面设计中表现惊艳,支持长上下文、高性价比 API,成为开发者高效落地 AI 编程的优选工具。
GLM-4.7实战指南:三个梯度测试,解锁国产大模型的代码生成与审美上限
|
数据可视化 前端开发 PyTorch
|
Ubuntu
Ubuntu 20.04 手动安装 Nvidia 驱动
Ubuntu 20.04 手动安装 Nvidia 驱动
1868 0
成功解决:Could not initialize SDL - No available video device (Did you set the DISPLAY variable?)
成功解决:Could not initialize SDL - No available video device (Did you set the DISPLAY variable?)
1137 0

热门文章

最新文章

下一篇
开通oss服务