CVPR 2023 | 清华黄高团队提出适配边端和云端的即插即用型高效神经网络网络架构——Slide-Transformer

简介: CVPR 2023 | 清华黄高团队提出适配边端和云端的即插即用型高效神经网络网络架构——Slide-Transformer

640.png

Title: Slide-Transformer: Hierarchical Vision Transformer with Local Self-Attention

Paper: https://arxiv.org/pdf/2304.04237.pdf

Code: https://github.com/LeapLabTHU/Slide-Transformer

导读

众所周知,ViT 取得良好性能的一个关键组件便是自注意力机制,它可以从全局上下文中实现自适应特征提取。当然,反复提到的一个问题还是计算复杂度问题。先前的方法主要从两个角度去解决问题:

  1. 基于稀疏的全局注意力
  2. 采用窗口注意力

然而,以上这些方法要么不利于局部特征学习,要么还需要人工去调参。说到这,我们需要进一步思考局部注意力的意义是什么?作者认为,它能够将每个查询的感受野限制在其自己的相邻像素内,具有卷积和自注意力的双重好处,即局部归纳偏差动态特征选择

遗憾的是,目前的局部注意力模块要么使用效率低下的Im2Col函数,要么依赖于难以推广到没有CUDA支持的设备的特定CUDA内核。

为此,本文提出了一种新颖的局部注意力模块Slide Attention,它利用常见的卷积操作实现高效性灵活性通用性

具体来说,我们首先从新的row-based的角度重新解释了column-basedIm2Col函数,并使用深度卷积作为有效替代。在此基础上,本文提出了一个基于重参数化技术的deformed shifting module,进一步将固定的键/值位置嵌入到局部区域的可变形特征上。如此一来,该模块便能够以高效灵活的方式实现了局部注意力范式。

广泛的实验表明,本文所提的滑动注意力模块适用于各种先进的vision transformer模型,并兼容各种硬件设备,在综合基准测试上取得了持续改进的表现。

动机

640.png

Figure 1. Comparison of our model and other attention patterns.

上图给出了几种不同自注意力机制的实现方式。与 PVT 中的全局注意力和 Swin-Transformer 中的窗口注意力相比,本文提出了一种新颖的 Slide Attention 模块,它不仅可以像局部注意力一样施加局部归纳偏置,而且极具高效性和灵活性,轻松与各种 Vision Transformer 模型和硬件设备进行有效集成。

如上所述,针对先前局部注意模块中采用的低效 Im2Col 函数,本文将以崭新的视角看待这个问题。具体来说,原始 Im2Col 从基于列的视图生成键和值矩阵,其中每一列代表以输入的特定位置为中心的局部区域。或者,我们从基于行的视图重新制定键和值矩阵,并显示每一行对应于向不同方向移动的输入特征。

这种新的见解让我们有机会更进一步应用精心设计的Depthwise Convolutions来代替原本的移位操作。如此一来,我们便可以将Im2Col函数替换为标准的卷积运算,这样便能够很容易部署到不同的硬件设备上。此外,为了进一步增强灵活性,我们引入了一种新颖的可变形移位模块。如图 1(c) 所示,该模块将固定键和值位置relaxes到局部区域内的可变形特征。通过使用重参数化技术,既有效地增加了模型容量,又同时保持了推理效率。

Figure 2. Performance and inference speed comparison on local attention implementations.

为了对上述方法进行全面比较,本文实际分析了这两种局部自注意力实现的性能和运行时间,并将其与 SwinTransformer 中的窗口注意力进行了比较。如图 2 所示,基于 Im2Col 的局部注意力在效率和性能方面都不太有利。而基于 CUDA 的方法虽然可以通过窗口注意力等矢量化操作保持相当的推理速度,但仅显示出比其他注意力模式(例如 Swin-Transformer 中的窗口注意力)略微的提升。考虑到在不同硬件上适配CUDA内核的难度,目前为止,我们仍然缺乏兼具高效性和高泛化性的局部注意力模块。

针对这种现象,本文工作首先将Im2Col函数重新解释为特征移位操作,然后用更有效的深度卷积进行替代方案。可以看到,当进一步配备可变形的移位模块时,所提方法在类似的推理时间下实现了比基线的显着改进。上述 FPS 是基于 NVIDIA RTX3090 GPU 设备上测试的。

方法

Figure 3. Different implementation on the local attention module.

如上所述,局部注意力受到效率问题的困扰,导致实际应用中很难被部署上去。在本节中,作者首先展示了低效的 Im2Col 函数可以从另一个角度重新解释并证明其等价于一组简单的特征变换。在此基础上,本文进一步采用高效的深度卷积代替特征移位操作。最后,通过配备一种新颖的可变形移位模块,本文最终提出了一种局部注意模块,称为 Slide Attention,极具高效性和灵活性。

New Perspective on Im2Col

首先,我们可以将 Im2Col 函数表示为如下形式:

640.png

其次,从基于列的视图来看,如图 3(1) 所示,键/值矩阵包含  列,其中每一列对应于以特定查询为中心的局部窗口。具体来说,如果我们仔细检查输出的每一列,上面的等式可以重新表述为:

上述公式表示以 (i, j) 为中心的局部窗口,即对所有查询的窗口进行采样并按顺序放置。

紧接着,我们从基于行的角度来看,如图 3(2) 所示,键/值矩阵包含  行,其中每一行对应于将输入移向某个方向。具体来说,我们可以关注输出的每一行并将上述等式重新表述为:

这相当于将原始特征图向某个特定的方向  进行平移。

通过这种方式,我们提供了一种新的替代方法来理解 Im2Col 函数,方法是将基于列的视图替换为新颖的基于行的视图。以  为例,如果我们首先将原始特征图向 9 个不同方向移动(如图 3(2.b)),然后将这些特征展平为行,最后将它们连接在列中(如图 3(2.c)),得到的键/值矩阵被证明等价于  局部窗口,可以恢复与原始 Im2Col 函数完全等价的输出(如图 3(1.c))。

Shift as Depthwise Convolution

如上所述,我们提供了一种新的视角去理解 Im2Col 函数,但简单地将特征向不同方向移动仍然涉及低效的切片操作,这对提升局部注意力的效率几乎没有帮助。然而,与 Im2Col 中所有查询的采样窗口不同,我们可以采用更高效的方式实现,即深度卷积,如图 3(3) 所示。

具体地,对于窗口大小为 k 的局部注意力,我们可以将 Im2Col 函数重新实现为深度卷积,从而减轻主要开销。此外,这些深度卷积可以进一步归结为单组卷积,这不仅可以避免低效的切片操作,还可以转换为卷积操作从而轻松部署到各种硬件设备上。

Deformed Shifting Module

通过将原来的 Im2Col 函数切换为 depthwise convolutions,局部注意力的效率得到了极大的提升。尽管如此,精心设计的内核权重仍然将键和值限制在固定的相邻位置,这可能不是捕获不同特征的最佳解决方案。

因此,本文提出了一种新颖的可变形移位模块,以进一步增强局部注意力的灵活性。具体来说,我们在 shiftwise 卷积中利用设计范例,并引入并行卷积路径,其中内核参数在训练过程中随机初始化和学习。与将特征向不同方向移动的固定核相比,可学习内核可以解释为所有局部特征的线性组合。这类似于可变形卷积网络 中的不规则感受野。

640.png

如上图 4 所示,额外的卷积路径从几个角度改进了局部注意力模块:

  1. The key and value pairs in the local attention are extracted by a more flexible module, that greatly improves model capacity and can capture diverse features.

局部注意力机制是指在自注意力机制中,只关注输入序列中特定的局部区域,从而减少计算量和存储需求。这里提到的灵活模块指的是用来提取局部区域内特征的模块,其灵活性使得模型能够更好地适应不同的任务和数据集,并能够捕捉到更多的特征。

  1. The learnable convolution kernel shows a resemblance with the deformable technique in DCN. Similar to the bilinear interpolation of four neighboring pixels in DCN, our deformed shifting module can be viewed as a linear combination of features within the local window. This finally contributes to augmenting the spatial sampling locations and model geometric transformation of inputs.

本文提出的可学习卷积核其实同 DCNs 中的可变性卷积类似,可以对输入进行更灵活的采样,从而增强了模型对几何变换的适应性。具体来说,可变形平移模块中采用了类似于 DCN 中的双线性插值的方法,将局部窗口内的特征进行了线性组合,以获得更多的采样位置和几何变换的信息。

  1. We use the re-parameterization technique to transform the two parallel paths into a single convolution. In this way, we can improve the model capacity while maintaining inference efficiency.

为了进一步提高效率,本文引入了重参数化技术,以将原本需要两个并行路径来处理的信息,通过一次卷积操作实现,从而提高了模型的容量,同时还保持了模型的推断效率。

实验

重点看下上图,图中展示了所提方法在不同硬件下的实际推理时间,包括边缘端(iPhone 12)和服务器端(RTX 3090)。可以看出,与基线相比,嵌入滑动注意力模块后可以在不同设备上的运行时和模型性能之间表现出明显更好的权衡,并且在 Vision Transformer 模型上实现了高达 2.3 倍的加速。顺便一提,对于其他局部注意力模块,由于基于 CUDA 的方法无法在这些设备上实现,作者这里仅将所提方法与基于 Im2Col 的方法进行比较。

总结

在这篇论文中,作者重新审视了局部注意力机制,并通过提出一种新颖的 Slide Attention 模块来解决其效率问题。该模块仅使用常规卷积操作,将低效的 Im2Col 函数替换为深度卷积,并配备了一个可变形平移模块,从而实现了高效、灵活和通用的局部注意力。广泛的实验表明,所提模块可以广泛应用于各种视觉 Transformer 模型和不同的硬件设备上,同时在计算效率和模型性能之间实现了更好的权衡。

整体来说,本文所提出的滑动注意力中一味增加窗口大小的只会带来边际改进。因此,探索更大的窗口尺寸带来更好的性能-效率权衡值得我们进一步研究,这将会是未来研究的一个重要方向。

目录
相关文章
|
1月前
|
存储 人工智能 安全
云端防御:云计算时代的网络安全策略
随着云计算技术的飞速发展,企业和个人越来越依赖云服务来存储和处理数据。然而,云环境的开放性和灵活性也带来了新的安全挑战。本文将探讨在云计算时代,如何通过有效的网络安全策略保护数据不受威胁。我们将深入分析云服务的安全问题,并介绍一些实用的网络安全措施,帮助读者建立起一套完整的云端防御体系。
47 1
|
17天前
|
消息中间件 编解码 开发者
深入解析 Flutter兼容鸿蒙next全体生态的横竖屏适配与多屏协作兼容架构
本文深入探讨了 Flutter 在屏幕适配、横竖屏切换及多屏协作方面的兼容架构。介绍了 Flutter 的响应式布局、逻辑像素、方向感知、LayoutBuilder 等工具,以及如何通过 StreamBuilder 和 Provider 实现多屏数据同步。结合实际应用场景,如移动办公和教育应用,展示了 Flutter 的强大功能和灵活性。
86 6
|
1月前
|
存储 安全 网络安全
云端盾牌:云计算与网络安全的融合之道
在当今数字化时代,云计算以其高效、灵活和成本效益的特点,成为了企业和个人用户的首选技术平台。然而,随着数据上云的步伐加快,网络安全问题也日益凸显,成为制约云计算发展的关键因素。本文旨在探讨云计算环境中的网络安全挑战,分析云服务、网络安全及信息安全的相互关系,并提出相应的解决策略。通过深入剖析,本文揭示了在享受云计算带来的便利的同时,如何构建坚固的网络安全防护网,确保信息资产的安全与隐私保护。
|
1月前
|
存储 安全 网络安全
云端盾牌:云计算时代的网络安全守护在数字化浪潮中,云计算以其高效、灵活的特性成为企业转型的加速器。然而,伴随其迅猛发展,网络安全问题亦如影随形,成为悬在每个组织头顶的达摩克利斯之剑。本文旨在探讨云计算服务中的网络安全挑战,分析信息安全的重要性,并提出相应对策,以期为企业构建一道坚实的云端防护网。
在当今这个数据驱动的时代,云计算已成为推动创新与效率的关键力量。它允许用户随时随地访问强大的计算资源,降低了企业的运营成本,加速了产品上市时间。但随之而来的网络威胁也日益猖獗,尤其是对于依赖云服务的企业而言,数据泄露、身份盗用等安全事件频发,不仅造成经济损失,更严重损害品牌信誉。本文深入剖析云计算环境中的安全风险,强调建立健全的信息安全管理机制的重要性,并分享一系列有效策略,旨在帮助企业和个人用户在享受云服务带来的便利的同时,也能构筑起强有力的网络防线。
|
1月前
|
安全 物联网 网络安全
云端盾牌:云计算与网络安全的融合之道
【10月更文挑战第3天】 本文旨在探讨云计算技术与网络安全之间的紧密联系,分析云服务中存在的安全挑战,并阐述如何通过先进的网络安全策略来保障数据的安全性和完整性。我们将从云服务的基本原理出发,深入了解其运作模式,进而探讨在云环境下保护敏感数据的关键技术和方法。此外,文章还将提供一系列实用的建议,帮助个人和企业更好地应对日益复杂的网络安全威胁。
31 2
|
2月前
|
机器学习/深度学习 安全 网络安全
云端盾牌:云计算时代的网络安全守护在这个数字脉搏加速跳动的时代,云计算以其高效、灵活的特性,成为推动企业数字化转型的强劲引擎。然而,正如每枚硬币都有两面,云计算的广泛应用也同步放大了网络安全的风险敞口。本文旨在探讨云计算服务中网络安全的关键作用,以及如何构建一道坚不可摧的信息防线,确保数据的安全与隐私。
云计算作为信息技术领域的革新力量,正深刻改变着企业的运营模式和人们的生活。但在享受其带来的便利与效率的同时,云服务的安全问题不容忽视。从数据泄露到服务中断,每一个安全事件都可能给企业和个人带来难以估量的损失。因此,本文聚焦于云计算环境下的网络安全挑战,分析其根源,并提出有效的防护策略,旨在为云服务的安全使用提供指导和参考。
71 8
|
2月前
|
监控 安全 网络安全
云计算与网络安全:构建安全的云端未来
在当今这个数字化时代,云计算已成为推动技术创新和服务交付的重要力量。然而,随着云服务的普及,网络安全和信息安全的挑战也日益凸显。本文探讨了云计算的基本概念、面临的安全威胁以及采取的防护措施,旨在揭示如何通过先进技术和管理策略确保云环境的安全性。通过对现有技术的分析,本文展示了保护数据和基础设施免受网络攻击的可能性和重要性,为未来的云安全提供了方向。
39 1
|
2月前
|
监控 安全 网络安全
云端的守护者:云计算中的网络安全挑战与策略
在数字时代的浪潮中,云计算以其灵活性和可扩展性成为了企业信息技术架构的核心。然而,随之而来的网络安全问题也日益凸显。本文将探讨云计算环境下的网络安全挑战,分析云服务模型的安全考量,并提出有效的安全防御措施。通过深入浅出的方式,旨在为读者提供一套清晰的云计算网络安全指南,确保数据的安全与隐私保护,同时促进企业的健康发展。
|
2月前
|
存储 安全 网络安全
云端防御:云计算时代的网络安全新策略
【8月更文挑战第40天】随着云计算技术的飞速发展,企业与个人越来越依赖于云服务来处理数据和运行应用程序。然而,这种依赖也带来了新的安全挑战。本文将探讨在云计算环境中维护网络安全的重要性,并介绍如何通过实施先进的安全策略和技术来保护云基础设施免受网络威胁。我们将从基础的云服务安全措施谈起,逐步深入到更复杂的信息安全实践,最后通过一个简单的代码示例说明如何在云环境中部署一个安全的Web应用程序。
|
2月前
|
存储 安全 网络安全
云端守护:云计算与网络安全的融合之路
在数字化浪潮中,云计算如同一股不可阻挡的力量,重塑着企业的信息架构。然而,随之而来的网络安全挑战也日益严峻。本文将探索云计算与网络安全如何相互促进,共同构建一个更为坚固的信息安全防线。从云服务的基本概念出发,深入到网络安全的核心问题,再到信息安全技术的前沿应用,我们将一同见证这场技术演进的奇妙旅程。
35 1