swim transformer 在transformer基础上修改了什么
时间: 2023-11-06 22:03:34 浏览: 85
swim transformer 在 transformer 基础上修改了 self-attention 层的计算方式。传统的 transformer 使用的是全连接网络来计算 self-attention,而 swim transformer 使用了一种新的方法,称为 spatially weighted self-attention。它通过将图像划分成不重叠的子区域,并计算每个子区域与其他子区域之间的相似度,然后使用这些相似度来计算 self-attention。
swim transformer 的修改主要有以下几点:
1. 子区域划分:swim transformer 将输入图像划分成多个子区域,每个子区域都被视为一个节点。
2. 相似度计算:对于每个子区域,swim transformer 使用局部感知域内的信息来计算与其他子区域的相似度。这种相似度计算方法能够捕捉到局部特征和全局特征之间的关系。
3. 空间加权 self-attention:在计算 self-attention 时,swim transformer 使用空间加权的方式来融合不同子区域的信息。这种加权方式通过考虑每个子区域与其他子区域之间的相似度来决定权重,从而使得重要的子区域能够对结果产生更大的影响。
相关问题
swim transformer为什么适合图像分类
Swim Transformer适合图像分类的原因有以下几点:
1. 长程依赖性:Swim Transformer采用了全新的自注意力机制,能够更好地处理图像中的长程依赖关系。在图像分类任务中,不同区域之间往往存在着复杂的联系,传统的卷积操作可能无法捕捉到这种长程依赖关系,而Swim Transformer通过自注意力机制可以更好地捕捉到全局信息。
2. 多尺度特征建模:Swim Transformer利用了多层次、多尺度的特征建模方法。通过在不同层次进行特征提取和融合,可以捕捉到图像中不同尺度的细节信息。这对于图像分类任务特别重要,因为图像中的目标可能存在于不同的尺度上。
3. 高效的计算:相比传统的卷积神经网络,Swim Transformer具有更高的计算效率。Swim Transformer采用了稀疏性约束,能够减少计算量,并且利用了局部感知能力,进一步提高了计算效率。这使得Swim Transformer在处理大规模图像数据时具有较好的可扩展性。
Swim Transformer
Swim Transformer是一种特为视觉领域设计的分层Transformer结构。它具有滑动窗口和分层表示的特点。滑动窗口在局部不重叠的窗口中计算自注意力,并允许窗口之间的连接。分层结构允许模型适应不同尺度的图像,并且计算复杂度与图像大小成线性关系。因此,Swin Transformer被称为一种披着Transformer皮的CNN。它借鉴了CNN的分层结构,不仅适用于分类任务,还可以扩展到下游任务,如图像分割和目标检测等计算机视觉任务。该模型以Vision Transformer(VIT)为起点,吸收了ResNet的优点,并通过逐步扩大感受野的方式设计了Transformer。Swim Transformer的成功并非偶然,而是基于积累与沉淀。
论文题目:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
论文地址:https://arxiv.org/abs/2103.14030
Swim Transformer的每个块(Block)有两种结构,分别是W-MSA结构和SW-MSA结构。这两种结构是成对使用的,先使用W-MSA结构,然后再使用SW-MSA结构。因此,堆叠Swim Transformer Block的次数是偶数。