IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Swin Transformer:层次化视觉Transformer -> 正文阅读

[人工智能]Swin Transformer:层次化视觉Transformer

摘要

Swin Transformer是一种新型transformer,通过引入CNN中常用的层次化构建方式构建层次化Transformer以及引入locality思想解决transformer迁移至CV上的scale和分辨率的问题。
论文:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

问题的提出

Transformer从NLP迁移到CV上没有大放异彩主要有两点原因:

  1. 两个领域涉及的scale不同,NLP的scale是标准固定的,而CV的scale变化范围非常大。
  2. CV比起NLP需要更大的分辨率,而且CV中使用Transformer的计算复杂度是图像尺度的平方,这会导致计算量过于庞大。
    为了解决这两个问题,Swin Transformer相比之前的ViT做了两个改进:
    1.引入CNN中常用的层次化构建方式构建层次化Transformer 。
    2.引入locality思想,对无重合的window区域内进行self-attention计算。

相比于ViT,Swin Transfomer计算复杂度大幅度降低,具有输入图像大小线性计算复杂度。Swin Transformer随着深度加深,逐渐合并图像块来构建层次化Transformer,可以作为通用的视觉骨干网络,应用于图像分类、目标检测和语义分割等任务。

方法

Swin Transformer

Swin Transformer架构,和CNN架构非常相似,构建了4个stage,每个stage中都是类似的重复单元,如图1(。
和ViT类似,通过patch partition将输入图片HxWx3划分为不重合的patch集合,其中每个patch尺寸为4x4,那么每个patch的特征维度为4x4x3=48,patch块的数量为H/4 x W/4;stage1部分,先通过一个linear embedding将输划分后的patch特征维度变成C,然后送入Swin Transformer Block;
stage2-stage4操作相同,先通过一个patch merging,将输入按照2x2的相邻patches合并,这样子patch块的数量就变成了H/8 x W/8,特征维度就变成了4C,是跟stage1一样使用linear embedding将4C压缩成2C,然后送入Swin Transformer Block。
Swin Transformer和ViT划分patch的方式略有不同,ViT是先确定patch的数量,然后计算确定每个patch的尺寸,而Swin Transformer是先确定每个patch的大小,然后计算确定patch数量。这个设计是为了方便Swin Transformer的层级构建。
Alt

图1

图1(b)是两个连续的Swin Transformer Block。一个Swin Transformer Block由一个带两层MLP的shifted window based MSA组成。在每个MSA模块和每个MLP之前使用LayerNorm(LN)层,并在每个MSA和MLP之后使用残差连接。

Shifted Window based MSA

Alt

图2

图2中红色区域是window,灰色区域是patch。W-MSA将输入图片划分成不重合的windows,然后在不同的window内进行self-attention计算。假设一个图片有hxw的patches,每个window包含MxM个patches,那么MSA和W-MSA的计算复杂度分别为:

Alt
由于window的patch数量远小于图片patch数量,W-MSA的计算复杂度和图像尺寸呈线性关系。W-MSA虽然降低了计算复杂度,但是不重合的window之间缺乏信息交流,于是进一步引入shifted window partition来解决不同window的信息交流问题,在两个连续的Swin Transformer Block中交替使用W-MSA和SW-MSA。以图2为例,将前一层Swin Transformer Block的8x8尺寸feature map划分成2x2个patch,每个patch尺寸为4x4,然后将下一层Swin Transformer Block的window位置进行移动,得到3x3个不重合的patch。移动window的划分方式使上一层相邻的不重合window之间引入连接,大大的增加了感受野。

实验

Swin Transformer的这些品质使其可与多种视觉任务兼容,包括图像分类(ImageNet-1K的准确度为86.4最高-1)和密集的预测任务。
Alt

图3 ImageNet-1K 分类上不同主干的比较。

目标检测(COCO测试中为58.7 box AP和51.1 mask AP)和语义分割(ADE20K val上为53.5 mIoU)。其性能在COCO上为+2.7 box AP和+2.6 mask AP。
Alt

图4 COCO 对象检测和实例分割的结果。 ? 表示额外的解卷积层用于生成分层特征图。 * 表示多尺度测试.

在ADE20K上为+3.2 mIoU,远远超过了现有技术,证明了基于Transformer的模型作为视觉骨干的潜力。
Alt

图5 ADE20K val 和测试集上的语义分割结果。 ? 表示额外的反卷积层用于生成分层特征图。 ? 表示该模型在 ImageNet-22K 上进行了预训练。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:23:47  更:2021-08-11 12:27:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 21:04:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码