Vision Transformer堆叠多个Transformer块来处理不重叠的图像(即视觉标记)序列,从而形成用于图像分类的无卷积模型。与CNN模型相比,Transformer模型具有更大的感受野,并且擅长对远程依赖关系进行建模,事实证明在大量训练数据和模型参数的情况下可以实现优异的性能。
视觉识别中的过多注意力是一把双刃剑,每个查询补丁需要参与的键数量过多会导致计算成本高、收敛速度慢,并且增加过度拟合的风险。
目前最大的难题:避免过多的注意力计算,Swin Transformer采用基于窗口的局部注意力来限制局部窗口内的注意力,而Pyramid Vision Transformer (PVT) 对键和值特征图进行下采样以节省计算量。
理想情况下,人们期望给定查询的候选键/值集是灵活的,并且能够适应每个单独的输入,从而可以缓解手工制作的稀疏注意力模式中的问题。
学习卷积核(卷积滤波器)的可变形感受野已经被证明可以有效地在数据依赖的基础上选择性地关注更多信息区域。
数据依赖是指数据之间的一种约束关系,即某些数据的取值依赖于其他数据的取值。
数据依赖分为函数依赖和多值依赖两种类型。
可变形偏移量的引入,使得开销是补丁数量的二次方。Transformer的变形机制要么在检测头中采用,要么用作预处理层,为后续主干网络采样补丁。
可变形注意力Transformer
可变形自注意力模块配备强大的金字塔主干,用于图像分类和各种密集预测任务。
具体来说,对于每个注意力模块,参考点首先生成为统一网格,这些网格在输入数据中是相同的。然后,偏移网络将查询特征作为输入,并为所有参考点生成相应的偏移。通过这种方式,候选键/值向重要区域转移,从而以更高的灵活性和效率增强原始自注意力模块,以捕获更多信息特征。
自 ViT引入以来,改进专注于 学习密集预测任务的多尺度特征和高效的注意力机制 。
高效的注意力机制包括窗口注意力、全局令牌、焦点注意力和动态令牌大小。
基于卷积的方法被引入Vision Transformer模型中,现有的研究重点是通过卷积运算补充 Transformer 模型以引入额外的归纳偏差。CvT在标记化过程中采用卷积,并利用步幅卷积来降低自注意力的计算复杂度。
在深度学习中,“归纳偏置”(inductive bias)是指在模型设计和学习过程中对可能解释数据的方式进行的先验假设或约束。这些先验假设或约束有助于限制模型空间,使得模型更容易学习数据的真实规律,从而在实际应用中能够更好地泛化到未见过的数据。
可变形卷积和注意力
可变形卷积是一种强大的机制,可以根据输入数据处理灵活的空间位置。将其应用在Vision Transforemr。
可变形DETR(目标检测Transformer)通过为CNN主干顶部的每个查询选择少量键来提高DETR的收敛性。它的可变形注意力不适合用于特征提取的视觉主干,因为缺乏键限制了表示能力。此外,Deformable DETR 中的注意力来自简单学习的线性投影,并且查询标记之间不共享键。
可变形注意力的信息流和偏移生成网络的详细结构
DWConv (深度可分离卷积)
DWConv是一种深度可分离的卷积,在特征维度上分组卷积,对每个channel进行独立的深度卷积(depthwise convolution),并在输出前使用一个1x1卷积(pointwise convolution)将所有通道进行聚合,即是一种卷积。
更少的参数:dwconv可减少输入通道数量,从而有效地减少卷积层所需的参数。
更快的速度:dwconv的运行速度比传统卷积快。
更加易于移植:dwconv的计算量更小,更易于实现和部署在不同的平台上。
更加精简:dwconv能够精简计算模型,从而在较小的设备上实现高精度的运算。
GELU
各种激活函数小结https://blog.csdn.net/beingstrong/article/details/133827619
模型架构流程
预处理
将展平的特征图作为输入,
表示第m个注意力头的嵌入输出
可变形注意力
金字塔视觉注意力和Swin Transformer试图解决过度关注的挑战。但是其目前遇到的问题是:
金字塔视觉注意力的下采样技术会导致严重的信息丢失。
Swin Transformer的平移窗口注意力会导致感受野的增长很慢,限制对大型物体的建模。
因此需要依赖于数据的 稀疏注意力 来灵活地建模相关特征,才提出了可变形机制。
在Deformable Convolution Networks中,特征图上的每个元素单独学习其偏移量,其中特征图上的 3*3 可变形卷积的空间复杂度为
,如果我们直接在注意力模块中应用相同的机制,空间复杂度将急剧上升至
,其中
是查询和键的数量,通常与特征图大小
具有相同的比例。
注意力图是一种用于表示深度学习模型在处理输入信息时,对不同位置或不同时间步的信息分配的不同权重的方法。它可以帮助我们更好地理解模型在处理任务时的关注点,从而优化模型的性能
我们提出可变形注意力,以在特征图中重要区域的指导下有效地对标记之间的关系进行建模。这些聚焦区域是由多组变形采样点确定的,这些采样点是通过偏移网络从查询中学习到的。可以采用双线性插值从 特征图 中采样特征,然后将采样的特征馈送到键和值投影从而获得变形的键和值。
最后,应用标准多头注意力来关注对采样键的查询并聚合来自变形值的特征。变形点的位置提供了更强大的相对位置偏差,以促进可变形注意力的学习。
可变形注意力模块
最近邻插值法和双线性插值法https://blog.csdn.net/guoqingru0311/article/details/133784915
给定特征图,生成一个均匀网络点
,网格的大小是从特征图大小中按因子 r 下采样得到的,
,
。参考点的值是线性间隔的二维坐标
,然后我们将它们标准化到范围
,其中
表示左上角,
表示右下角。
为了获得每个参考点的偏移量,特征图被线性投影到查询标记,然后输入到轻量级子网络
以生成偏移量
,通过一些预定义的因子 s 来缩放
的幅度,以防止出现过大的偏移,即
。然后在变形点的位置对特征进行采样作为键和值,然后是投影矩阵:
分别用来表示变形的键和值嵌入,我们可以将采样函数
设置为双线性插值以使其可微。
和
索引
的所有位置。由于
仅在最接近
的四个积分点上为非零,因此可以将方程(8)简化为4个位置上的加权平均值。
其中对应于先前工作之后的位置嵌入,同时进行了一些调整。每个头的特征连接在一起并通过
投影以获得最终输出
。
偏移生成
采用子网络生成偏移量,它消耗查询特征并分别输出参考点的偏移值。考虑到每个参考点覆盖局部区域(s是偏移的最大值),生成网络还应该具有局部特征的感知以学习合理的偏移。
输入特征首先通过深度卷积来捕获局部特征,然后采用GELU激活和
卷积来获得2D偏移。
卷积中的偏差被丢弃,以减轻所有位置的强制移位。
可变形的相对位置偏差
相对位置偏差为每对查询和键之间的相对位置进行编码,通过空间信息增强了普通注意力,考虑形状为的特征图,其相对坐标位移在
和
两个维度上。
在Swin Transformer中,构建相对位置偏差表,通过用两个方向的相对位移对表进行索引来获得相对位置偏差B。因为我们的可变形注意力具有连续的键位置,因此我们计算归一化范围内的相对位移[-1;+1],然后通过连续相对位移在参数化偏置表中插值
以覆盖所有可能的偏移值。
计算复杂度
其中是采样点数。偏移网络的计算成本具有线性复杂度。通道对于注意力模块的计算成本来说相对较小。
模型架构
Deformable Attention Transformer与共享类似的金字塔结构,广泛适用于需要多尺度特征图的各种视觉任务。
形状为H × W × 3 的输入图像首先通过步幅为 4 的 4×4 非重叠卷积进行嵌入,然后通过归一化层来获得 补丁嵌入,旨在构建分层特征金字塔,主干包括四个阶段,步幅逐渐增大,在两个阶段之间,存在一个步幅为2的非重叠2*2卷积,对特征图进行下采样,从而将空间大小减半,并且将特征维度加倍。
首先对最后阶段输出的特征图进行归一化,然后采用具有池化特征的线性分类器来生成未经过归一化的原始得分。
DAT在集成视觉模型中扮演着骨干的角色,以提取多尺度特征,我们可以为每个阶段的特征添加一个归一化层,然后将它们输入到后面的模块。
在第三和第四阶段引入连续的局部注意力和可变形注意力块。特征图首先通过基于窗口的局部注意力进行处理,以在本地聚合信息,然后通过可变形注意力对局部增强标记之间的全局关系进行建模。
前两个阶段主要学习局部特征,因此早期阶段的可变形注意力不太受欢迎。此外,前两个阶段的键和值具有相当大的空间尺寸,这大大增加了可变形注意力中点积和 双线性插值 的计算开销。