Multiscale Vision Transformers
多尺度视觉Transformer (MViT) 是一种新型的视觉识别模型,主要用于处理图像和视频。它结合了传统多尺度特征层次结构与Transformer模型的优势,旨在提高视频和图像的识别性能。
1. 多尺度视觉Transformer (MViT) 的概念
MViT的核心思想是在网络中引入多尺度特征金字塔,通过在不同阶段调整通道数量和空间分辨率来提取视觉信息。相比于传统的Vision Transformer (ViT),MViT能够更好地适应密集的视觉信号,特别是在视频数据中。
MViT通过在早期层级以高空间分辨率处理简单的低级视觉信息,而在后期层级以低空间分辨率处理更复杂的高级特征,从而实现了分层的特征提取。
2. 结构概述
MViT的结构主要分为多个缩放阶段(Scale Stages),每个阶段由若干Transformer块组成。在每个阶段中,通道数量增加,空间分辨率减少,逐步形成特征金字塔。整个网络的输入通常是一个视频帧序列或图像,最终输出用于视觉识别的高层语义特征。
2.1 输入和特征提取
- 输入层:模型首先接收输入图像或视频帧序列。MViT从高分辨率且通道数较少的输入数据开始处理。在视频识别任务中,输入通常包括时间维度。
- Patchify:与Vision Transformer类似,MViT将输入的图像/视频划分为若干固定大小的小块(patch)。这些小块经过线性投影,形成一个初始的序列。
2.2 多尺度缩放阶段 (Scale Stages)
MViT通过多个缩放阶段来处理视觉数据。每个缩放阶段都有以下特性:
- 通道扩展:随着网络深入,通道数逐渐增加(例如,通道数从96逐渐扩展到768)。
- 空间分辨率缩减:空间分辨率逐步降低(例如,从最初的56×56到7×7),从而减少计算量,但保留足够的特征信息。
每个缩放阶段由多个Transformer块组成,每个Transformer块包含自注意力机制和多层感知机(MLP)。自注意力机制用于捕捉序列中的远距离依赖关系,而MLP则用于处理每个位置的特征。
2.3 多头池化注意力 (Multi-Head Pooling Attention, MHPA)
这是MViT中的核心创新之一。MHPA是一种用于处理空间和时间信息的自注意力机制,与传统的多头自注意力不同,它允许通过池化操作来减少输入序列的长度,从而降低计算复杂度。具体而言:
多头池化的意义
- 降低计算复杂度:在标准的多头自注意力机制中,输入序列的长度保持不变,因此计算复杂度随着序列长度的平方增加。在MHPA中,通过对查询(Query)、键(Key)、值(Value)进行池化操作,可以有效减少序列长度,从而降低计算和内存消耗。
- 处理多尺度特征:视觉数据(特别是视频)通常包含大量的空间和时间信息。通过池化,MHPA能够根据数据的不同尺度动态调整分辨率,在较少的计算资源下提取更有意义的多尺度特征。
- 灵活性:MHPA为MViT提供了灵活性,使模型可以在不同的阶段根据需要调整分辨率,适应不同层次的特征处理。这种灵活性使得MViT能够在不同视觉任务中高效运行。
多头池化的工作原理和细节
MHPA扩展了传统的多头注意力机制,其中每个头独立地执行注意力计算。在MViT中,MHPA不仅通过查询、键、值向量之间的相似度进行注意力计算,还引入了池化操作来缩减输入序列的长度。
输入向量投影
- 输入数据首先被线性投影为查询(Query)、键(Key)、值(Value)三组向量。
- 对于给定输入序列 ( X )(序列长度为 ( L ),维度为 ( D )),MHPA首先通过线性变换得到中间张量 ( Q )、( K )、( V ):
[
Q = XW_Q, \quad K = XW_K, \quad V = XW_V
]
其中 ( W_Q )、( W_K )、( W_V ) 是学习的线性投影矩阵。
池化操作
池化是MHPA中最重要的步骤,它允许在不同的阶段对序列长度进行灵活调整。具体来说:
- 查询池化 (Query Pooling):在进行注意力计算前,MHPA对查询向量 ( Q ) 进行池化,缩短其长度。
- 键值池化 (Key-Value Pooling):对键向量 ( K ) 和值向量 ( V ) 进行类似的池化操作,减少它们的序列长度。
池化操作由一个三维的池化核 (Pooling Kernel) 完成,定义为 ( P( \cdot ; \Theta ) ),其中 ( \Theta ) 包含池化核的大小 ( k )、步长 ( s ) 和填充 ( p )。经过池化后的序列长度由公式给出:
[
L’ = \left\lfloor \frac{L + 2p - k}{s} \right\rfloor + 1
]
这个公式表明,通过池化操作,输入的长度从 ( L ) 缩减为 ( L’ ),减少的比例取决于步长 ( s ) 和池化核的大小。
注意力计算
池化后的查询、键、值向量被输入到注意力机制中进行计算。与标准的注意力机制相似,MHPA通过计算查询与键的点积得到注意力权重:
[
\text{Attention}(Q, K, V) = \text{Softmax}\left( \frac{QK^T}{\sqrt{d}} \right)V
]
其中 ( d ) 为向量维度的缩放因子,目的是防止内积过大导致梯度消失。与传统注意力不同的是,MHPA中经过池化的查询、键、值向量使得该计算更为高效,因为序列长度已经大幅度缩短。
多头机制
与标准的多头注意力类似,MHPA中有多个并行的注意力头,每个头独立处理一部分通道(维度为 ( D/h ))。这些头的输出会被连接起来形成最终的输出结果。这种多头机制允许MHPA同时关注不同的特征空间,并增强模型的表现能力。
计算复杂度分析
由于MHPA的注意力计算是基于池化后的序列进行的,计算复杂度相较于标准多头自注意力大幅降低。MHPA的计算复杂度为:
[
O\left( \frac{THW}{f_Q f_K} D \right)
]
其中 ( f_Q ) 和 ( f_K ) 是查询和键-值池化后的缩减因子,( THW ) 是原始输入序列的空间-时间维度。
通过池化操作,MHPA能够以显著较低的计算复杂度处理大规模的视觉数据,使MViT可以在相同的计算资源下获得更好的性能。
MHPA的灵活性和优势
- 自适应分辨率调整:MHPA允许在网络的不同阶段自适应调整空间和时间分辨率,确保模型能够根据不同的任务和输入数据规模高效处理信息。
- 减少冗余计算:通过池化,MHPA在减少不必要的冗余计算的同时,保留了对重要特征的捕捉能力。
- 多尺度建模:MHPA能够通过不同尺度的注意力机制同时处理局部和全局特征,从而更好地处理复杂的视觉数据。
2.4 跳跃连接 (Skip Connections)
MViT在不同缩放阶段之间引入了跳跃连接,用于在各个阶段之间传递信息。在通道数量变化时,跳跃连接使用线性层将输入的通道数扩展到匹配的输出通道数。
2.5 输出层
经过多层的Transformer块后,最终的特征被汇总,用于图像或视频分类等视觉任务。MViT可以通过删除时间维度的方式用于静态图像分类任务,也可以保留时间维度来处理视频。
3. 多尺度架构的优点
- 效率提升:MViT通过逐步降低空间分辨率来减少计算量,并通过多尺度特征提取确保模型能够捕捉到丰富的视觉信息。相比于单尺度的ViT模型,MViT在减少计算复杂度的同时还能保持高精度。
- 处理密集视觉信号:特别适用于视频数据,这种多尺度结构能够有效捕捉视频中的时空信息。在处理帧乱序的视频时,MViT的表现显著优于其他Transformer模型。
4. 实验结果
MViT在多种视觉任务(如Kinetics视频分类、ImageNet图像分类等)中表现优异,尤其是在视频识别任务中,它不依赖大规模的外部预训练数据就能达到较高的精度,与同时期的其他模型相比具有明显的计算效率优势。
总结
多尺度视觉Transformer (MViT) 通过引入多尺度特征层次结构,有效提高了图像和视频识别任务中的性能。其结构通过逐步扩展通道数、降低空间分辨率的方式来处理视觉信号,同时使用池化注意力机制降低计算成本,特别适合处理大规模视频数据。