Swin transformer讲解

Swin Transformer是为了解决Transformer在视觉领域的应用问题而提出的,它采用移动窗口注意力的层级式设计,解决了ViT计算复杂度高和单一尺寸特征输出的问题。模型通过Patch Partition和Linear Embedding进行预处理,然后通过Swin Transformer Block和Patch Merging实现层次化特征提取。Swin Transformer Block包括W-MSA和SW-MSA,两者交替使用,以增加patch之间的交互。Patch Merging则用于下采样,扩大感受野,实现多尺寸特征输出。这种设计使Swin Transformer更适合用于目标检测、实例分割等密集预测任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于自注意力机制的Transformer模型在自然语言处理领域的成功引起了计算机视觉研究者的注意。近年来,有越来越多的研究者正试图将Transformer应用于视觉领域。但Transformer终究还是为了解决NLP领域的问题而设计的,将其应用到视觉领域会遇到两个需要解决的问题:

  1. 在NLP领域,具有完整语义信息的一个个体通常仅为一个单词或几个词元的组合体,尺度较小且较为固定,而视觉领域中,一个完整的带有独立语义信息的物体在图片中可大可小,尺寸变化较大

  2. NLP领域中,一个句子或一个段落被分割成token后得到的序列长度仍然在几十至几百不等,而视觉任务所处理的图片数据通常拥有成千上万甚至百万个像素,简单地将图像中的像素展平成一个向量会导致巨大的序列长度,这对于计算复杂度与序列长度的平方成正比的Transformer来说是不可接受的。

 ViT并非十全十美。首先,由于完全采用原始Transformer架构,几乎不含任何与视觉任务相关的先验信息,因此需要在大量数据的训练下才能表现出良好的性能。其次,ViT通过分割图片块的方式缩短了序列长度,但自注意力操作仍需在整张图片上的所有图片块之间进行,计算复杂度仍与图片面积的平方成正比。最后,ViT论文中仅仅对Transformer应用于图像分类任务进行了尝试,这仅需单一尺寸的图片特征即可完成。而许多其他的视觉任务(尤其是密集预测性任务,如目标检测和语义、实例分割)都需要模型输出多尺寸的特征,这恰是ViT所不能提供的。

为了获得一个能够作为视觉任务通用骨干网络的基于Transformer架构的视觉模型,本文的作者提出了"使用移动窗口注意力的层级式Vision Transformer",简称Swin Transformer。通过基于ViT的一系列改进,Swin做到了正比于图像面积的计算复杂度多尺寸特征输出,为Transformer在视觉领域应用于更大的图片和更多的任务铺平了道路。

模型架构

认识swin transformer

 

整个模型采取层次化的设计,一共包含4个Stage,每个stage都会缩小输入特征图的分辨率,像CNN一样逐层扩大感受野。

具体步骤:

首先将图片输入到Patch Partition模块中进行分块,即每4x4相邻的像素为一个Patch,然后在channel方向展平࿰

Swin Transformer是一种基于Transformer架构的视觉模型,它在图像处理任务中表现出色,特别是对于长序列输入的高效处理。其核心特点是采用了窗口化(Windowing)机制以及局部自注意力(Local Attention),这使得模型能够在保持并行计算能力的同时捕捉到更丰富的上下文信息。 以下是Swin Transformer的一般步骤解释: 1. **窗口划分(Window Partitioning)**:将大张量分割成多个小窗口,每个窗口内的像素相互连接形成一个小的局部图卷积结构,减少了计算复杂度。 2. **局部自注意力(Local Self-Attention)**:仅在相邻窗口之间计算注意力,而不是全局,提高了计算效率。这样可以在保持一定范围的全局感知的同时避免了全连接计算的开销。 3. **移位(Shift)操作**:通过向左、上移动窗口,实现了跨窗口的信息交换,有助于模型学习到更大的上下文依赖。 4. **MHA(Multi-head Attention)和FFN(Feedforward Network)**:像标准Transformer一样,使用多头注意力(MHA)和前馈神经网络(FFN)进行特征融合。 5. **跳过连接和残差块(Skip Connections and Residual Blocks)**:保留来自原始位置的信号,通过残差连接和层间跳跃连接加速模型训练和收敛。 6. **下采样和上采样(Downsampling and Upsampling)**:用于处理不同分辨率的数据,并在必要时进行空间金字塔池化或反卷积操作恢复分辨率。 Swin Transformer通常应用于计算机视觉任务如图像分类、目标检测和图像分割等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值