行业资讯
ATS: Adaptive Token Sampling for Efficient Vision Transformers 解读
一、论文基本信息论文题目Adaptive Token Sampling for Efficient Vision Transformers方法简称ATS作者Mohsen Fayyaz、Soroush Abbasi Koohpayegani、Farnoush Rezaei Jafari、Sunando Sengupta、Hamid Reza Vaezi Joze、Eric Sommerlade、Hamed Pirsiavash、Juergen Gall发表会议ECCV 2022 Oral官方项目页提供了论文和代码入口并标注该工作为ECCV Oral。论文摘要中也明确说明ATS 是一个parameter-free、differentiable、plug-and-play的 Adaptive Token Sampler可以插入现有 Vision Transformer在不额外训练的情况下减少 GFLOPs也可以端到端训练。二、这篇论文要解决什么问题Vision Transformer 的计算量和 token 数强相关。标准 ViT 把图像切成 patch tokens 后后续每一层基本都处理固定数量的 tokens。这样有一个问题无论输入图像简单还是复杂模型都用同样数量的 tokens 计算。但现实图像并不是这样。有些图像主体明显、背景单一只需要少数 tokens 就能完成分类有些图像背景杂乱、目标细节复杂需要保留更多 tokens。论文指出固定下采样并不理想它可能丢掉物体细节等重要信息也可能在大面积均匀背景上继续浪费计算。所以 ATS 要解决的问题是能不能让 ViT 根据每张图像或视频 clip 的实际复杂度自适应决定每一层保留多少 tokens这和 DynamicViT、EViT、A-ViT、ToMe 都属于 ViT token reduction 方向但 ATS 的独特点是它不引入额外可学习参数。它不是固定保留 top-K。它通过采样机制让不同输入保留不同数量的 tokens。三、核心思想ATS 的核心思想是根据 class token attention 和 value norm 给 patch tokens 打分然后用 inverse transform sampling 从这些 tokens 中自适应采样重要 tokens。它不是简单保留分数最高的 K 个 token而是把 token 分数看成一个概率分布然后从这个分布中采样。由于采样可能重复选中同一个 token最终去重后得到的 unique token 数K′往往小于设定上限K并且会随输入图像和网络层数变化。论文明确说明K 是最大采样数用来控制 GFLOPs 上界但实际保留 token 数 K′ 通常低于 K并且在不同图像或视频中变化。所以 ATS 的关键不是“保留多少个 token”而是最多允许保留 K 个但模型根据分数分布自动决定最终需要多少个。如果分数高度集中说明少数 tokens 很重要重复采样会导致去重后只剩较少 tokens。如果分数比较均匀说明很多 tokens 都可能有用去重后会保留更多 tokens。这就是 ATS 的adaptive含义。四、它剪的是什么ATS 操作的是ViT 中间层的 patch tokens。它不剪模型权重。attention head。MLP channel。Transformer layer。hidden dimension。所以它不是传统参数剪枝而是adaptive token sampling / dynamic token reduction。更准确地说它不是“token pruning”那么简单因为它不是直接用 top-K 删除低分 tokens而是通过score-based sampling得到一个自适应 token 子集。五、ATS 插在 Transformer 的哪里ATS 是插入到self-attention layer 内部或紧接 attention 计算过程中的模块。论文图 1 的描述很清楚ATS 先计算 attention matrix A然后利用 class token 对其他 tokens 的 attention 权重作为 significance score再结合 value 向量的模长修正分数接着用 inverse transform sampling 选择显著 tokens最后从 attention matrix 中采样对应的 rows得到更短的 attention 输出并把这些输出 tokens 送入下一 stage。简单理解就是先用完整 tokens 算一次当前 attention。根据 attention 中暴露出来的重要性决定哪些 tokens 继续进入后续层。输出序列变短后面层计算减少。这和一些在 block 前插 selector 的方法不同。ATS 直接利用当前 self-attention 已经算出来的信息不需要额外预测器。六、Token Scoringtoken 重要性怎么算ATS 的 token score 有两个来源。第一个来源是class token attention。在分类 ViT 中class token 最终进入分类头所以 class token 对某个 patch token 的 attention 可以被看成这个 patch 对分类 token 的贡献。论文中明确说attention matrix 的第一行 A1,: 是 class token 的 attention weights因此 A1,j 表示第 j 个输入 token 对输出 class token 的重要性class token 自身 A1,1 不用于打分因为 class token 永远保留。第二个来源是value norm。仅看 attention weight 还不够因为最终输出是 attention weight 和 value 的加权和。如果某个 token 的 attention 不低但它的 value 向量模长接近 0那么它对输出实际影响也可能很小。因此 ATS 把 class attention 和对应 value norm 相乘再归一化作为 token significance score。论文明确说明value norm 接近 0 的 token 对输出影响低因此其 significance 应该更低多头 attention 中每个 head 分别计算分数然后跨 head 求和。所以 ATS 的重要性不是单纯 attention也不是单纯 feature norm而是这个 token 被 class token 关注多少 × 这个 token 的 value 信息量有多大。七、为什么不用 top-K这是 ATS 最重要的设计之一。最直接的做法是算出每个 token 的 score然后保留 top-K。很多 token pruning 方法都是这种思路。但 ATS 认为 top-K 有两个问题。第一top-K 不能自适应决定 K′。它每次都保留固定 K 个 token无法做到简单图像少保留、复杂图像多保留。第二top-K 可能误删有用 token。在浅层特征还不够判别很多相似 tokens 的 attention 会被 softmax 分散导致每个 token 分数都不高。如果直接 top-K可能把这一组相似但有用的 tokens 全部删掉。论文明确指出多个具有相似 key 的 tokens 在早期阶段可能会因 softmax 分散而得到较低 attention虽然其中某些 token 对后续阶段有用但 top-K 可能全部丢弃。因此 ATS 不用 top-K而是基于分数做sampling。如果多个相似 tokens 各自分数不高但总分数较大那么采样机制仍然有概率从这组 tokens 中选出一个代表 token。论文也说明这种采样机制会在早期阶段选择更多 tokens在后期阶段选择更少 tokens。八、Inverse Transform SamplingATS 怎么采样ATS 把归一化后的 token scores 看成概率分布然后计算它们的累积分布函数 CDF再用 CDF 的反函数做采样。这就是inverse transform sampling。为了避免随机性ATS 并不是每次真的随机从 U[0,1] 抽样而是使用一组固定采样点1/(2K), 3/(2K), ..., (2K-1)/(2K)这样训练和推理都是确定性的同时仍然保留了按概率分布采样的效果。论文明确说明为了得到 deterministic inference它采用固定采样 scheme而不是随机采样。采样后如果某个 token 被多次选中只保留一次。因此实际 token 数 K′ 可能小于 K。这带来了 ATS 的自适应性如果 score 分布很尖锐少数 token 被反复采样去重后 K′ 小。如果 score 分布比较平坦采样点会落到更多不同 tokens 上去重后 K′ 大。论文还解释了极端情况如果只有一个 token dominant则 K′1如果 scores 比较均衡则 K′K。九、为什么它是 parameter-freeATS 没有额外 predictor、gate network、MLP selector 或 halting module。它所需的信息都来自原始 Transformer attention 里已经计算好的内容attention matrix A。value vectors V。所以 ATS 不增加 backbone 的可学习参数。论文反复强调ATS 是 parameter-free module可以插入 off-the-shelf pretrained ViTs甚至不需要额外训练。这和 DynamicViT、IA-RED²、A-ViT 的区别很明显DynamicViT 需要 prediction module。IA-RED² 需要 multi-head interpreter / policy network。A-ViT 虽然不加独立子网但需要训练 halting 机制。ATS 直接利用已有 attention 和 value 信息不加参数。十、为什么它是 differentiableATS 论文强调它是 differentiable因此可以端到端训练带 ATS 的 ViT。直观上ATS 的 score 来自 attention 和 value这些都是网络内部连续变量采样过程使用固定 CDF-based 近似选择使得整体可以嵌入训练流程中。项目页也说明ATS 既可以作为 plug-and-play 模块直接加入预训练 ViT也可以在训练过程中使用。这里要注意一点虽然论文称它 differentiable但 token selection 本身仍然包含离散索引选择。它的工程意义主要是ATS 不需要额外学习参数不需要像强化学习那样训练 selector也不需要复杂的 Gumbel gate。十一、为什么能加速ATS 每经过一个插入位置就把 token 数从 N 变成 K′。后续层只处理 K′ 个 patch tokens 加 class token。因此它减少的是后续 attention 的 token 交互。后续 MLP 对每个 token 的计算。中间 activation 和 attention matrix 的大小。论文结论中总结ATS 在图像和视频 Vision Transformers 上可以把 GFLOPs 降低27% 到 50.8%且精度下降很小。这类方法的加速逻辑和 ToMe、DynamicViT、EViT 一样减少 token 数比单独优化 attention kernel 更全面因为 MLP 和 projection 计算也会随 token 数减少。十二、实验设置论文在图像和视频两个方向验证 ATS。图像分类方面ATS 被加入到多个现有视觉 Transformer包括DeiT-SCvT-13 / CvT-21PS-ViT论文说明对于 DeiT-S它把 ATS 加入 stages 3 到 11对于 CvT把 ATS 加入第 3 stage 的若干 blocks对于 PS-ViT把 ATS 加入 transformer module 的 stages 1 到 9。视频动作识别方面ATS 被加入到XViTTimeSformer数据集包括ImageNet-1KKinetics-400Kinetics-600论文摘要和项目页都明确说ATS 在 ImageNet、Kinetics-400、Kinetics-600 上评估并能在基本保持精度的同时约 2× 降低计算成本。十三、主要实验结果13.1 ImageNetDeiT-S ATS在 ImageNet 上论文报告DeiT-SATS可以把 GFLOPs 从 DeiT-S 的4.6G降到2.9GTop-1 从79.8到79.7也就是37% GFLOPs reductionTop-1 只下降 0.1%。论文表 1 也显示在相近 GFLOPs 下DeiT-SATS 的 Top-1 高于 DynamicViT-DeiT-S 30 epochs、IA-RED²、HVT-S-1 等对比方法。这个结果说明ATS 不加参数却能达到非常接近原 DeiT-S 的精度并显著减少计算。13.2 CvT 和 PS-ViT 上也有效论文指出ATS 加到 CvT 后能带来约30% GFLOPs reductionTop-1 只下降0.1–0.2%。将 ATS 加到本身已经很低 GFLOPs 的 PS-ViT 上也能进一步降低计算。这说明 ATS 不是只适用于纯 DeiT也能插入其他视觉 Transformer family。13.3 视频任务XViT 和 TimeSformer视频实验中ATS 的优势更明显因为视频 token 数更大冗余更多。论文报告XViTATS 在 Kinetics-400 上 GFLOPs 降低 39%Top-1 只下降 0.2%。XViTATS 在 Kinetics-600 上 GFLOPs 降低 38.7%Top-1 只下降 0.1%。TimeSformer-LATS 在 Kinetics-400 上 GFLOPs 降低 50.8%Top-1 只下降 0.2%。论文还指出XViTATS 在 Kinetics-600 上能达到与 TokenLearner 接近的准确率但需要17.6× 更少 GFLOPs。这说明 ATS 对视频 Transformer 特别有价值视频中空间和时间 token 很多自适应 token 采样可以显著减少冗余计算。十四、可视化结果说明什么论文可视化了 DeiT-SATS 在 stages 3 到 11 中逐步采样 tokens 的过程。结果显示ATS 会逐渐删除与预测无关的 tokens并保留与目标物体相关的 tokens。论文描述中说在两个示例中ATS 都识别出了与目标物体相关的 tokens 作为最 informative tokens。另外论文还展示了不同 stage 中采样 token 数的直方图。结果显示浅层通常保留更多 tokens。深层通常保留更少 tokens。不同输入图像保留 token 数不同。对于背景均匀的图像ATS 只采样少数 tokens对于 cluttered images则需要更多 tokens。论文明确用这些现象说明 token sampling 自适应的重要性。这点和人类直觉一致简单图像少算复杂图像多算。十五、和 DynamicViT 的区别DynamicViT 用额外 prediction module 学习 token importance并通过训练让 selector 学会删 token。ATS 不加 prediction module而是直接利用已有 attention matrix 和 value norm。所以区别可以概括为DynamicViT学一个 selector。ATS用 attention 自带信息做 sampling。DynamicViT通常固定每阶段保留比例。ATS设定最大 K但实际 K′ 随输入变化。DynamicViT需要训练 selector。ATS可以 plug-and-play无额外训练。ATS 的优势是轻量、无参数、容易插入已有模型DynamicViT 的优势是 selector 可以通过任务训练学习更强的判别性。十六、和 EViT 的区别EViT 也利用 class token attention但它通常是根据 class attention 识别 attentive tokens并融合 inattentive tokens。ATS 也利用 class token attention但它进一步结合 value norm并且核心不是 top-K 或融合而是inverse transform sampling。所以EViTclass attention guided token reorganization。ATSclass attention × value norm guided adaptive sampling。EViT 的低重要 tokens 会被融合ATS 的低采样 tokens 不进入后续序列。ATS 的实际 token 数还会因为重复采样去重而自动变化。十七、和 ToMe 的区别ToMe 是 token merging。它根据 key 相似度把相似 tokens 合并不判断哪个 token对 class token 最重要。ATS 是 token sampling。它根据 class token 相关的重要性分布采样 tokens不做 token 合并。所以ToMe 问哪些 tokens 相似可以合并ATS 问哪些 tokens 对 class token 输出更重要应该被采样ToMe 更关注冗余合并ATS 更关注任务相关显著性。另一个工程区别是ToMe 也可以 training-free但它会融合 tokensATS 则是选择 tokens保留原 token 表示对应的 attention 输出。十八、和 TokenLearner 的区别TokenLearner 是 learned tokenization。它学习多张空间 attention maps从原始特征图中生成 8 或 16 个新 learned tokens。ATS 不生成新 token它只从已有 tokens 中采样显著 tokens。所以TokenLearner学习生成少量新 tokens。ATS从已有 patch tokens 中自适应采样子集。TokenLearner 通常需要训练模块ATS 没有额外参数可以直接插入已有模型。十九、它是不是剪枝严格说ATS 是一种动态 token sampling广义上可归入token pruning / token reduction。但如果分类更细ATS 最好不要简单写成 pruning因为它不是 top-K 删除也不是学习 gate而是probability-distribution-based sampling。建议分类为parameter-free adaptive token sampling for efficient ViTs。或者attention-guided dynamic token sampling。它的结构单元是image/video patch token。二十、方法优点第一无额外参数。ATS 直接利用 attention matrix 和 value vectors不加 selector 网络。论文和项目页都强调它是 parameter-free可以插入现有 ViT。第二可以 plug-and-play。因为不加可学习参数ATS 可以加入预训练模型并减少 GFLOPs不一定需要额外训练。第三实际 token 数自适应。K 只是上限去重后的 K′ 随输入和层数变化。简单图像保留少复杂图像保留多。第四比 top-K 更稳。sampling 可以避免浅层因 softmax 分散导致一组相似但有用 tokens 全被删掉的问题。第五图像和视频都有效。论文在 ImageNet、Kinetics-400、Kinetics-600 上验证报告 27% 到 50.8% GFLOPs 降低精度损失很小。二十一、方法局限第一依赖 class token attention。ATS 的重要性主要来自 class token attention所以它天然适合分类任务。对检测、分割这类 dense prediction 任务class token 不一定能代表所有空间位置的重要性。第二它仍然需要先计算当前层 attention。ATS 用当前 attention matrix 来打分因此当前层 attention 计算本身已经发生了。它主要节省后续层而不是节省插入点之前的计算。第三丢弃 token 后信息不可恢复。ATS 是 sampling不是 merging。低分 token 如果没有被采样后续就不再处理相比 ToMe 或 EViT 的融合机制信息保留可能更弱。第四K 仍然需要人工设定。虽然实际 K′ 自适应但最大 K 控制 GFLOPs 上界仍然是一个需要调的超参数。第五dynamic token 数对 batching 有工程影响。不同输入保留 token 数不同实际部署时可能需要 padding、bucketing 或动态 shape 支持否则吞吐收益会受 runtime 影响。二十二、整体评价ATS 的核心贡献是把 ViT token reduction 做得非常轻量不加参数不训练 selector只利用原有 attention 中的信息完成自适应采样。它和之前几篇 token 方法的区别非常清楚DynamicViT 学 selector。EViT 用 class attention 做重组和融合。A-ViT 学 token halting。Patch Slimming 从最终误差反推 patch 贡献。ToMe 合并相似 tokens。TokenLearner 学新的 tokens。ATS 则用 class attention × value norm 构造概率分布再用 inverse transform sampling 选 token。这使 ATS 很适合作为一种低侵入式 token reduction 插件。它最大的优点不是压缩率极限最高而是工程成本低可以插入已有 ViT设置一个最大 token 上限 K就能让模型对不同输入自动保留不同数量的 tokens。二十三、一句话总结《Adaptive Token Sampling for Efficient Vision Transformers》提出 ATS一个无额外参数、可微、可插拔的 ViT token sampling 模块它利用 class token attention 与 value norm 计算 patch token 显著性分数再通过 inverse transform sampling 自适应选择 token 子集使实际保留 token 数 K′ 随输入图像、视频和网络阶段变化。相比固定 top-K 或固定下采样ATS 能更自然地做到简单样本少算、复杂样本多算并在 ImageNet、Kinetics-400、Kinetics-600 上显著降低 GFLOPs、基本保持精度。
郑州网站建设
网页设计
企业官网