Author: Sijin Yu
Uniformer
标题: UniFormer: Unified Transformer for Efficient Spatiotemporal Representation Learning
arXiv URL: https://arxiv.org/abs/2201.04676
code: https://github.com/Sense-X/UniFormer
期刊/会议: ICLR2022
发表时间: 2022 年 01 月
UniformerV2
标题: UniFormerV2: Spatiotemporal Learning by Arming Image ViTs with Video UniFormer
arXiv URL: https://arxiv.org/abs/2211.09552
code: https://github.com/OpenGVLab/UniFormerV2
期刊/会议: ICCV2023
发表时间: 2022 年 11 月
在高维的视频中学习丰富的时空特征表示具有挑战性, 因为在视频的每帧之间, 存在大量的局部冗余和复杂的全局冗余.
关于此, 最近的主流框架有: 3D CNNs 和 ViTs.
3D CNNs 可以高效地整合局部内容, 以降低局部冗余, 但是因为其感受野有限, 无法降低全局冗余.
ViTs 可以通过自注意力机制降低全局冗余, 但是因为其盲目地比较所有 tokens, 无法降低局部冗余.
我们提出一种新式框架 Unified transFormer (UniFormer), 集成了 CNN 和 ViT 的优点, 并且在计算消耗和正确率之间取得了很好的平衡.
与传统的 transfomers 不同, 通过在浅层和深层分别学习局部和全局 token affinity [⚠️注: token affinity (词单元亲和力) 度量了两个 token 之间的关联性], 我们的 relation aggregator (关系聚合器) 可以同时处理时空冗余和依赖关系.
我们在主要的 video benchmarks 上做了实验. 在只用 ImageNet-1k 预训练的情况下, UniFormer 在 Kinetics-400 上获得了 82.9% 的准确率, 在 Kinetics-600 上获得了 84.8% 的准确率, 同时需要的 GELOPs 比其它 sota 模型少了 10 倍 [⚠️注: GELOP 指每秒十亿次浮点运算]. UniFormer 在 Something-Something V1 上获得了 60.9% 的正确率, 在 Something-Something V2 上获得了 71.2% 的正确率.
由 CNN 层 (灰色梯形) 和 transformer 层 (粉色圆角矩形) 组成.
一个 transformer 层 (Stage) 由若干个 UniFormer 块组成.
一个 UniFormer 块包含三个主要模块:
DPE: Dynamic Position Embedding, 动态位置包埋.
MHRA: Multi-Head Relation Aggregator, 多头关系聚合器.
FFN: Feed Forward Network, 全连接层.
具体为:
其中,
给定一层的输入张量:
将其 reshape 成一个 tokens 的序列:
一层 MHRA 有
在一个
对于 Local MHRA:
对于 tokens 序列
给定一个 token
这里本质上是为了保证:
给定一个目标 token
, 任何一个在它感受野 内的邻居 token 应满足:
令
对于在
对于不在
对于 Global MHRA:
矩阵
对于 Global 情况, 感受野变为
最后, MHRA 层的行为是:
其中,
下图: 在 Kinetics-400 和 Kinetics-600 上的对比, 以低计算代价达到 SOTA 性能.
下图: 在 Something-Something V1 和 Something-Something V2 上达到 SOTA.
下图: 在计算代价和准确率之间的平衡. (横轴: 计算代价, 纵轴: 准确率)
下图: 消融实验.
Unified 表示是否使用 local MHRA, Joint 表示是否使用 global MHRA, DPE 表示是否使用 DPE. ✖️ 表示使用 MobileNet 块.
Type 中的 L/G 表示四层 Stage 分别使用 Local MHRA 还是 Global MHRA.
下图: Local MHRA 中 长方体感受野的敏感性.
下图: 迁移学习的能力. 在 K400 上训练, 在 SSV1 上测试.
下图: 采样方法的敏感性. (帧数
下图: Multi-clip/crop 实验.
[⚠️注: Multi-clip 指将视频按不同帧切分为多个视频, 对每个视频做分类, 然后将预测结果组合起来获得最终预测结果. Multi-clop 指将每一帧裁剪为不同的区域, 分别得到不同的多个视频, 然后将各视频的预测结果组合起来获得最终预测结果]
主要创新点:
将 CNN 和 ViT 融合.
设计了 token 亲和力
主要成果:
能同时处理局部冗余和全局冗余.
计算代价相对小.
学习具有区分性的时空特征表示是视频理解的关键问题.
ViTs 通过自注意力展现了他们在学习长视频依赖性上的强大能力. 但不幸的是, 因为它们盲目地比较所有 tokens, 在处理局部视频冗余问题上展现出局限性.
UniFormer 通过在 transformer 架构中整合 CNNs 和自注意力为关系聚合器 (relation aggregator), 成功地缓解了这一问题.
但是 UniFormer 在视频微调之前, 需要复杂的图像预训练步骤. 这限制了它的广泛应用.
与之相反, 大量开源的 ViTs 已经在丰富的图像监督下预训练.
基于这些观察, 我们通过结合预训练的 ViTs 和 UniFormer, 提出一种搭建强大视频网络族的通用范式. 我们称之为 UniFormerV2.
它包含了全新的 local 和 global aggregators, 并且通过集成 ViTs 和 Uniformer 的优点, 在计算代价和准确率上取得很好的平衡.
UniFormerV2 在 8 个主流的视频 benchmarks 上获得了 SOTA 性能, 包括 K400/600/700 和 SSV1/V2. 它是第一个在 Kinetics-400 数据集上获得 90% top-1 准确率的模型.
动机: UniFormer 和 ViT 的对比
SL 是有监督学习, CL 是对比学习, MIM 是 Mask Image Modeling.
ViTs 在图像预处理方面有优势, 而 UniFormer 在视频微调方面有优势.
本模型旨在融合 ViTs 和 UniFormer 的优势.
UniFormerV2 模型的设计和与 SOTA 的对比
比起 ViTs 的主要改进:
将 Temporal MHSA 改为 Loacl MHRA.
将 ViT 层的输出传给 Global MHRA 并将它们在最后融合.
下图: 模型框架.
Local UniBlock 的行为:
其中,
其中,
[⚠️注: 留意到, Local UniBlock 的输入和输出形状是完全一样的.]
Global UniBlock 的行为:
其中,
其中,
其中,
其中,
同式 (15),
最后, 计算
这一模块的任务: 将 Local UniBlock 输出的
记第
Sequential 方式: 更新
Parallel 方式: 随机初始化所有的
其中,
Hierarchical KV 方式: 随机初始化所有的
Hierarchical Q 方式: 随机初始化所有的
实验表明, Sequential 方式和 Hierarchical Q 方式最有效 (见消融实验部分), 模型采用 Sequential 方式作为基准.
下图: 在 K400 上的性能比较.
下图: 在 K600/700 上的性能比较.
下图: 在 MiT V1 上的性能比较.
下图: 在 SSV2 上的性能比较.
原文在 SSV1, ActivityNet, HACS 上也做了实验, 均达到了 SOTA.
主要创新点:
将 UniFormer 的设计放入 ViT 框架中.
为
UniFormer 设计了多头关系聚合器 (MHRA), 很好地处理了视频数据的局部冗余和全局冗余; UniFormerV2 在此基础上, 将 UniFormer 中大获成功的 MHRA 设计成块, 设计了 Local UniBlock 和 Global UniBlock, 并且设计了 Global Cross MHRA, 在 Multi-stage Fusion 中提出四种方式, 结合了 ViTs 的优点, 大大提高了视频理解的性能.