FightingCV

V1

2022/11/30阅读:31主题:默认主题

ECCV2022 Oral | 一种提高视觉Transformer的自适应性token采样技术

ECCV2022 Oral | ATS:一种提高视觉Transformer的自适应性token采样技术

1. 论文和代码地址

论文题目:ATS:Adaptive Token Sampling For Efficient Vision Transformers

论文地址:https://doi.org/10.48550/arXiv.2111.15667[1]

代码地址:https://github.com/adaptivetokensampling/ATS[2]

2. 动机

基于CNNs的图像分类任务取得了巨大的进展,视觉Transformer的出现为图像分类任务提供了新的强有力的模型,传统的vision transformer的计算成本高、参数量大,模型不适合部署到边缘设备,虽然可以通过减少网络中的token数量来实现GFLOPs数量的减少,但是没有办法针对不同的输入图片设置最佳的tokens。

为了解决这个问题,DynamicViT提出了训练一个token打分神经网络来预测哪个tokens是多余的。但打分网络额外引入了计算开销,需要和视觉transformer一起进行训练,需要修改损失函数,增加一个额外了损失项和超参数。应用到不同的设备上的时候,模型需要重新训练。

在分类过程中,不是所有图像信息都是必要的,图像中的部分像素是多余的或者不相干的,是否相关的判断取决于图片本身,本文提出了基于自注意矩阵的AST模块,对token进行打分,以最小的信息损失去掉输入中的冗余信息,解决了DynamicViT引入额外开销的限制,并且不需要预训练就可以达到降低视觉Transformer计算成本,减少模型参数的效果。

3. 方法

模型准确性与输入patch数量相关,传统CNN使用池化操作,导致网络的空间分辨率逐渐下降,会导致模型的准确度下降,这种,静态采样会导致忽略重要信息或者信息冗余。

所以本文提出了在不同的stage自适应token数量的方法,以期实现不忽略重要信息并且不浪费计算资源的目标。

ATS模块是一个无参数的可微分模块,其中:K是token采样的最大数量;K'是采样tokens,具有动态自适应的能力。

3.1 token打分

标准自注意力层的注意力矩阵A计算公式,其中Q是queries,K是keys,V是values,d表示:

由于Softmax函数,注意力矩阵A的每行的和为1。输出token是通过注意力矩阵权重对V进行加权:

A中的注意力权重表示了所有tokens对输出t3oken的贡献度,A1,j表示输入token j 对输出分类token 的重要性,用A中第一行的权重作为注意力矩阵A剪枝的显著性评分。

输出token由A和V决定,所以将V的范数考虑到token j 的显著性打分计算公式中,如下:

对于多头注意力层,对每个头的打分进行计算,然后加总。

3.2token采样

对每个token有了打分后,需要从注意力矩阵中删除对应的token。若采用直接删除打分低的tokens没有得到很好的结果。

这可能是因为early stage的特征并没有明显的区别,需要对比所有的token,通过softmax函数降低相似的token的权重,但是相似的token中有一个是有用的,若全部丢弃则会忽略信息。

本文提出根据分数进行抽样的方法:相似token采样比例与该相似token占总token的比例相等,并且,早期要比后期选择更多的tokens。

使用逆变换抽样,基于tokens对应的分数S对tokens进行抽样,分数S是归一化的,可以解释为概率,所以累计概率分布函数CDF是:

值得注意的是,因为j=1表示分类token,因为分类token需要被保留,所以j从2开始,通过累计概率分布函数CDF的反函数得到抽样函数:

选择tokens之后,重新调整注意力矩阵A,得到

使用调整后的注意力矩阵计算输出:

3.3模型架构

ATS被整合到视觉Transformer块的自注意层中,首先利用自注意层中分类token的自注意权重来计算,然后对分数使用逆变换来选择一个tokens的子集,最后对输出tokens软降采样,以最小的信息损失从输出标记中去除冗余信息

4.实验

4.1SOTA结果

融合ATS模块自适应模型与在ImageNet-1K 上进行图像分类。我们将ATS模块合并到DeiT-S 模型的第3到第11阶段。将ATS模块集成到CvT- 13 和CvT-21 的第三阶段的第1到第9块中。 可以看出ATS模块减少了所有视觉transformer模型的GFLOPs,而没有向主干模型添加任何额外的参数。将加入ATS的模型与DynamicViT和HVT进行比较,后者为模型增加了额外的参数,我们的方法在精度和GFLOPs之间实现了更好的权衡。

如图1所示,该方法显著降低了不同尺寸的视觉transformer的gflop,而没有明显的精度损失。

4.2模型参数消融实验

图(a)显示了采用逆变换采样方法对输入标记进行软降采样。评估了模型在选择显著性得分最高的前K标记s时的性能,逆变换抽样方法优于Top-K选择。 图(b)显示了微调能提高精度。 图(c)显示了单阶段和多阶段将ATS块集成到视觉变压器模型中的效果。在单阶段模型中,我们将ATS模块集成到DeiT-S的第三阶段中。在多阶段模型中,我们将我们的ATS模块集成到DeiT-S的第3-11阶段中。多阶段DeiT-S+ATS的性能优于单阶段DeiT-S+ATS。这是因为多阶段DeiT-S+ATS模型可以通过在早期阶段丢弃更少的token来逐渐减少GFLOPs,而单阶段DeiT-S+ATS模型必须在早期阶段丢弃更多的tolen来达到相同的GFLOPs水平。

4.3显著性评分方法消融实验

使用分类token的注意权重在较低的FLOPs状态下表现得更好。这可能是由于分类token的注意权重是选择候选token的一个更强的信号,分类token稍后将用于预测模型最后阶段的分类概率。因此,其对应的注意权重显示了哪些token对输出分类token的影响更大 只显示相加权重之后注意力最高的token对分类token不一定有用。随机选择token,不是选择分类token,使用注意权重来进行分数分配,这种方法相对很差。

等式加入V的二范式进行实验,发现效果打给提高了0.2%

4.4自适应采样

每个ATS阶段的采样token数量的直方图,所有阶段,选定的token的数量和所有图像都是不一样的。

4.5可视化

为了更好地理解ATS模块的操作方式,在图3中可视化了token采样过程(逆变换采样)。在DeiT-S网络的第3到第11阶段整合了ATS模块。在每个阶段被丢弃的token被表示为输入图像上的一个掩码。 DeiT-S+ATS模型逐渐去除不相关的标记,并对对模型预测更重要的标记进行采样。我们的方法将与目标对象相关的token标识为信息最丰富的token。

5. 总结

本文提出了一个新的无参数模型ATS,AST在ViT的stage重选择信息丰富的最独特的标记,以便为每个图像使用尽可能多的标记,但不超过必要的标记。ATS模块可以直接引入到训练好的视觉transformer中,不需要引入额外的参数,也可以不用额外的训练和微调。在ImageNet-1K图像识别数据集上评估了我们的方法,并将我们的ATS模块合并到三个不同的最先进的视觉Transformer中。结果表明,ATS模块将计算成本(GFLOPs)降低了27%到37%,而精度下降可以忽略不计。

参考资料

[1]

https://doi.org/10.48550/arXiv.2111.15667: https://doi.org/10.48550/arXiv.2111.15667

[2]

https://github.com/adaptivetokensampling/ATS: https://github.com/adaptivetokensampling/ATS

分类:

人工智能

标签:

人工智能

作者介绍

FightingCV
V1

公众号 FightingCV