首页 > 系统相关 >Swin Transformer: Hierarchical Vision Transformer using Shifted Windows详解

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows详解

时间:2023-12-17 16:35:18浏览次数:38  
标签:Shifted Transformer Swin 窗口 times frac 注意力

初读印象

comment:: (Swin-transformer)代码:https://github. com/microsoft/Swin-Transformer

动机

将在nlp上主流的Transformer转换到cv上。存在以下困难:

  • nlp中单词标记是一个基本单元,但是视觉元素在尺度上有很大的变化。
  • 图像分辨率高,自注意力操作计算复杂度是图像大小的二次方
    提出了一种通用的Transformer主干,称为Swin Transformer,它构造了分层的特征映射,并且具有与图像大小相关的线性计算复杂度。Swin Transformer通过从小尺寸的补丁,并在更深的Transformer层中逐渐合并相邻的补丁来构造分层表示。通过这些分层特征图,Swin Transformer模型可以方便地利用先进的密集预测技术,如特征金字塔网络( FPN )或U - Net。线性计算复杂度是通过在划分图像(用红色勾画)的非重叠窗口内局部计算自注意力来实现的。每个窗口中的补丁数量是固定的,因此复杂度与图像大小成线性关系。

方法

总体架构(以简易版本Swin-T为例)

Pasted image 20221107111202

  1. Patch Parition:将整张图片切片,此处切成\(4\times 4\)的patch,每个patch看成一个token,拼接成\(4\times 4\times3=48\)的特征向量。(为了产生层次化的表示)
  2. Stage1:将token经过一个线性嵌入层变为长度为C的特征向量,整张图变成\(\frac{H}{4}\times\frac{W}{4}\times C\)的大小,经过两个Swin Transformer Block(不改变特征图大小)。
  3. Stage2: 一个Patch Merging再加上两个Swin Transformer Block。
    • Patch Merging:为了产生层次化的表示,随着网络的加深,通过补丁合并层来减少token的数量。合并相邻的\(2\times 2\)个patch,拼接得到长度为4C的token特征向量,并经过一个线性层,token的长度变为2C,整张图变为\(\frac{H}{8}\times\frac{W}{8}\times 2C\)。
  4. stage3:同stage2,整张图变为\(\frac{H}{16}\times\frac{W}{16}\times 4C\)。
  5. stage4:同stage2,整张图变为\(\frac{H}{32}\times\frac{W}{32}\times 8C\)。

Swin Trasformer Block

将Transformer中的多头注意力模块换成了窗口多头注意力(WIndow-MSA)和移动窗口多头注意力(Shifted Window-MSA)

Pasted image 20221107114051只在窗口中做自注意力能够减少计算复杂度,但是这将减少跨窗口的连接,减少模型建模能力,因此在两个利纳许的SwinTransformer Blocks中交替使用两种划分的移动窗口。

Pasted image 20221107145113

  • 第l层:使用规则的大小为\(M\times M\)的窗口,在每个窗口内做自注意力。
  • 第l+1层:将l层的规则窗口移位\((\frac{M}{2},\frac{M}{2})\)(每个窗口是被一个井字切割开的),在每个窗口内做自注意力,以达到穿越规则边界做注意力的目的。

相对位置编码

在每个窗口中使用相对位置编码\(B \in R^{M^2 \times M^2}\)计算每个head的注意力:
Pasted image 20221107153622其中\(M^2\)是每个窗口的token数量。由于一个窗口内在同一轴上的两个位置之间的距离介于\([-M+1,M-1]\)之间,因此设置一个偏执矩阵\(\hat{B}\in R^{(2M-1)\times (2M-1)}\),\(B\)的值从\(\hat{B}\)中选。

模型变种

Pasted image 20221107160449

输入输出

输入为一张图片,输出根据任务的不同而不同。

表现

在语义分割上 的表现:

Pasted image 20221107163811消融实验:Pasted image 20221107164240

启发

  1. 通过改变窗口的位置,将局部的注意力扩充到全局;
  2. 在局部块内使用了相对位置信息。

标签:Shifted,Transformer,Swin,窗口,times,frac,注意力
From: https://www.cnblogs.com/tifuhong/p/17909183.html

相关文章

  • Segmentation Transformer: Object-Contextual Representations for Semantic Segment
    SegmentationTransformer:Object-ContextualRepresentationsforSemanticSegmentation*Authors:[[YuhuiYuan]],[[XiaokangChen]],[[XilinChen]],[[JingdongWang]]Locallibrary初读印象comment::(OCRnet)聚焦于语义分割中的上下文聚合问题,利用物体类别的表......
  • 从滑动窗口到YOLO、Transformer:目标检测的技术革新
    本文全面回顾了目标检测技术的演进历程,从早期的滑动窗口和特征提取方法到深度学习的兴起,再到YOLO系列和Transformer的创新应用。通过对各阶段技术的深入分析,展现了计算机视觉领域的发展趋势和未来潜力。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研......
  • Instruction-Following Agents with Multimodal Transformer
    概述提出了InstructRL,包含一个multimodaltransformer用来将视觉obs和语言的instruction进行编码,以及一个transformer-basedpolicy,可以基于编码的表示来输出actions。前者在1M的image-text对和NL的text上进行训练,后者跟踪了整个obs和act的历史,自回归地输出动作。问题纯语言......
  • Transformers实战——文本相似度
    文章目录一、改写文本分类1.导入相关包2.加载数据集3.划分数据集4.数据集预处理5.创建模型6.创建评估函数7.创建TrainingArguments8.创建Trainer9.模型训练10.模型评估11.模型预测二、交互/单塔模式1.导入相关包2.加载数据集3.划分数据集4.数据集预处理5.创建模型(区别)6.创建评估......
  • 【学习笔记】transformer 简札
    高铁心血来潮逼着自己把这个模型的结构看了一遍,不写下来会忘掉的Encoder输入是词向量。wordvector->[(multihead)self-attention->forward]×n->layernormalizationselfattention就是qkv矩阵乘法得到z,multiheadselfattention就是进行多个矩阵乘法然后把\(z_......
  • Swin Transformer 马尔奖论文(ICCV 2021最佳论文)
    目录简介作者之一的微软亚研院的首席研究员胡瀚老师在bibili讲过该论文swintransformer比ViT做的更好的原因之一就是它将图片的一些特性嵌入到了网络模型之中,比如说平移不变性和尺寸不变性等,这样使得网络能够在cv领域做的更好。该文章提出的SwinTransformer可以被当做通用的......
  • javaSwing的日期组件
    先看效果:1JToolBarjToolBar=newJToolBar();23DptLocalDatePickersearchDate=newDptLocalDatePicker(null,DateTimeFormatter.ofPattern("yyyy-MM-dd")){4@Override5publicDimensiongetMaximumSize(){......
  • MIT斯坦福Transformer最新研究:过度训练让中度模型「涌现」结构泛化能力
    前言 过度训练让中度模型出现了结构泛化能力。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框架最全教程整理【CV技术指南】CV全栈指导班、基础......
  • Transformer架构在大型语言模型(LLM)中的应用与实践
     Transformer架构是当今最前沿的语言模型技术之一,它已经在谷歌的BERT、OpenAI的GPT系列中取得了显著的成就。这一架构之所以独特,是因为它打破了传统的序列处理模式,引入了创新的“自注意力”机制。 Transformer架构的核心是自注意力机制,它使模型能够识别和重视输入数据中不同......
  • [论文阅读] Replacing softmax with ReLU in Vision Transformers
    Pretitle:ReplacingsoftmaxwithReLUinVisionTransformersaccepted:Arxiv2023paper:https://export.arxiv.org/abs/2309.08586code:None关键词:attention,parallelization阅读理由:GoogleDeepmind,标题挺有意思Idea序列缩放能缓解ReLU等激活函数在attention中替......