本文来源公众号“CV技术指南”,仅用于学术分享,侵权删,干货满满。
原文链接:中科院又一创举 SecViT | 多功能视觉 Backbone 网络,图像分类、目标检测、实例分割和语义分割都性能起飞!
前言
视觉 Transformer (ViT)因其卓越的关系建模能力而受到关注。然而,其全局注意力机制的二次复杂度带来了相当大的计算负担。常见的解决方法是空间地分组 Token 以进行自注意力,减少计算需求。然而,这种策略忽略了 Token 中的语义信息,可能将语义相关的 Token 分散到不同的组中,从而损害了用于建模 Token 间依赖的自注意力的有效性。基于这些洞察,作者引入了一种快速且均衡的聚类方法,名为语义均衡聚类(SEC)。SEC以一种高效、直接的方式根据 Token 的全局语义相关性对 Token 进行聚类。与需要多次迭代的传统聚类方法不同,作者的方法在一次传递中完成 Token 聚类。此外,SEC调节每个簇中的 Token 数量,确保在当前计算平台上进行有效的并行处理,而无需进一步优化。
来源:AI视界引擎
仅用于学术分享,若侵权请联系删除
代码将可在https://github.com/qhfan/SecViT获取。
1 Introduction
自从Vision Transformer(ViT)[13]问世以来,由于其强大的建模能力,已经引起了研究界的广泛关注。然而,自注意力机制的二次复杂度导致了巨大的计算开销,从而限制了ViT的实际应用。已经设计出多种策略来减轻这种计算负担,其中最普遍的做法涉及 Token 分组,从而限制每个 Token 的注意力范围。
具体来说,Swin-Transformer [36]将 Token 划分为多个小窗口,限制每个窗口内的 Token 注意力。CSWin-Transformer [12]采用十字形分组,赋予每个 Token 一个全局感受野。MaxViT [48]结合了窗口和网格注意力,使窗口内的 Token 能够关注到其他窗口的对应 Token 。然而,这些仅依赖于空间定位的方法忽视了 Token 语义,可能限制了自注意力建模语义依赖的能力。为了减轻这个问题,DGT [35]采用k-means聚类进行 Query 分组,考虑 Token 的语义信息以增强特征学习。然而,k-means聚类的迭代性质以及每个簇中 Token 数量可能不均,这影响了并行注意力操作的效率。
考虑到这些因素,一个理想的 Token 划分方案应该高效地分离 Token ,融入语义信息,并高效利用计算资源(如GPU)。对此,作者提出了一种简单、快速且公平的聚类方法,名为Semantic Equitable Clustering(SEC)。SEC根据 Token 与全局语义信息的关联度来分割 Token 。具体来说,作者使用全局池化生成一个包含全局语义信息的全局 Token 。然后计算这个全局 Token 与所有其他 Token 之间的相似性,反映全局语义相关性。在获得相似性矩阵后,将 Token (除全局 Token 外)按相似性分数排序,并将相似分数的 Token 分组到簇中,确保簇间 Token 分布均匀。如图1所示,SEC全面考虑了 Token 语义,并在单次迭代中完成聚类过程,与多次迭代的k-means不同。由此产生的包含相等数量 Token 的簇可以被GPU高效地并行处理。
图1:窗口划分、动态k-means分组与语义公平聚类的比较。作者的语义公平聚类在保持高效聚类的同时融入了图像语义,无需像k-means那样的迭代过程。此外,它使得 Token 的均等划分成为可能,促进了无需额外CUDA优化的GPU高效处理。
图2:在ImageNet-1K上,resent SOTA模型的Top-1准确度与FLOPs对比。SecViT在所有设置中均超越了所有同类模型。