论文:arxiv.org/pdf/2306.06…
代码:github.com/NVlabs/Fast…
前言
随着数据集的规模和模型的复杂性不断增加,ViT在处理大规模图像数据时面临着一些挑战。为了解决这些问题,研究人员提出了Faster Vision Transformer(FasterVIT),这是一种经过改进的ViT网络架构。注于计算机视觉(CV)应用的高图像吞吐量。FasterViT融合 了CNN中快速局部表示学习和ViT中全局建模特性的优势。引入了层次注意(HAT) 方法。这受益于基于窗口的高效自我关注。
核心
【FasterVIT贡献摘要如下:】
- 我们介绍了FasterViT,这是一种新颖的混合视频转换器架构,旨在实现性能和图像吞吐量之间的最佳权衡。对于不同的数据集和模型大小,FasterViT可以有效地缩放到更高分辨率的输入图像。
- 我们提出了分层注意力模块,该模块有效地捕捉局部区域的跨窗口交互,并对长期空间依赖进行建模。
- FasterViT在图像吞吐量和准确性权衡方面实现了新的SOTA Pareto前沿,并且明显快于可比的基于ViT的架构,与最近的SOTA模型相比,产生了显著的加速。它还在MS COCO数据集上的检测和实例分割以及ADE20K数据集上语义分割的下游任务上实现了有竞争力的性能。
【关于网络的吞吐量:】
英伟达公司在人工智能领域开发CUDA编程模型,为研究人员和开发者提供了强大的工具来利用GPU加速计算,推动了人工智能算法的发展和应用。由英伟达设计的FasterViT架构提供Pareto准确性和延迟的权衡。
在主流现成的硬件上实现计算机视觉任务的最高吞吐量,例如擅长并行计算的GPU。在这种情况下,计算涉及一组以CUDA和张量核为计算单元的流式多处理器(SM)。它需要频繁的数据传输进行计算,并且可能受到数据移动带宽的影响。因此,受计算限制的运算是数学限制的,而受内存转移限制的运算则是内存限制的。这需要在两者之间仔细平衡,以最大限度地提高吞吐量。
在网络的初始阶段往往具较大的空间维度和较少的通道(例如输入图像的大小为:batch_size,3,640,640),这使得它们受到内存的限制。这表明在网络初始阶段属于计算密集型任务,例如密集卷积层,而不是对传输成本产生过多的开销的稀疏卷积(Sparse Convolution) 和深度可分离卷积(Depthwise Separable Convolution)。此外,不能以矩阵操作形式表示的操作,例如非线性激活函数、池化层、批处理归一化,也是受限于内存,应尽量减少使用。相反,网络的深层往往由于计算原因需要,计算密集型的运算受到了限制。例如,分层CNN具有具有高维核的大小为14×14的特征图。这为更具表现力的操作留下了空间,如层规范化、注意力机制等,对吞吐量的影响相当小。
结构
网络整体框架结构:
FasterViT体系结构概述。在第1,2阶段中,我们使用了带有cnn和基于VIT的多尺度体系结构。在这里也映衬了上述关于网络的吞吐量的思考,在网络的浅层部分设上保留卷积网络的优势以及在深层部分发挥VIT网络的优势,对整体吞吐量进行平衡优化。
关于HAT结构:
我们查看HAT的分层注意的可视化图,在特征空间通过对自窗口的注意力机制建立可实现信息的整体传播获取。该模块旨在以较低的计算成本促进局部和全局信息的交换,其中引入了载体标记(CTs)的概念,并执行分层自注意力操作。
根据上图所示的方法,HAT模块首先将输入的特征图分成了许多小块,就像Swin一样。每个小块都有一组标记来表示。关键思想是引入了CTs(上下文摘要),用来总结每个小块内的信息。CTs是通过池化和卷积操作得到的,它们提供了每个小块的摘要信息。每个小块都有自己独特的CTs。
在HAT块中,CTs经过了多头自注意力操作(MHSA),然后进行了层归一化和多层感知机操作(MLP)。这个注意力过程允许CTs之间交换信息,并总结全局特征。接下来,将小块的标记和CTs拼接在一起,并应用另一组注意力操作来建立它们之间的交互作用,从而实现了短距离和长距离空间信息的交流。然后,标记再次被分割成各自的小块和CTs,并在多个层上反复应用这些操作。为了促进长程交互,最后在该阶段进行了全局信息传播。输出结果通过对CTs进行上采样,并与小块的标记合并起来进行计算
结语
通过本文的阅读,读者将对FasterVIT网络的结构和各个层的功能有更深入的了解。希望这篇博客能为学术界和工程界的研究人员提供有益的参考,同时也为广大读者对图像处理和深度学习领域的发展趋势有所启示。