热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

对SwinTransformer的总结

SwinTransformer感觉是基于ViT提出的,ViT打破了CV和NLP之间的壁垒,但是由于Transformer与CNN相比,少了一些归纳偏置,使得其在数据集较小的时候

  Swin Transformer感觉是基于ViT提出的,ViT打破了CV和NLP之间的壁垒,但是由于Transformer与CNN相比,少了一些归纳偏置,使得其在数据集较小的时候性能较差,另外由于其使用低分辨率特征映射且计算复杂度是图像大小的二次方,其体系结构不适合用于密集视觉任务的通用主干网络或输入图像分辨率较高时,Swin Transformer就是在ViT的基础上将层次性、局部性和平移不变性等先验引入Transformer网络结构设计从而能在视觉任务中取得更好的性能,能适用于多种CV任务,且其复杂度相对图片大小为线性相关,计算效率也十分不错。

  主要特点 将层次性、局部性和平移不变性等先验引入Transformer网络结构设计。

  核心创新:移位窗口(shifted window)设计: 1)自注意的计算在局部的非重叠窗口内进行。这一设计有两方面的好处,一是复杂度从此前的和图像大小的平方关系变成了线性关系,也使得层次化的整体结构设计、局部先验的引入成为可能,二是因为采用非重叠窗口,自注意计算时不同query会共享同样的key集合,从而对硬件友好,更实用。 2)在前后两层的Transformer模块中,非重叠窗口的配置相比前一层做了半个窗口的移位,这样使得上一层中不同窗口的信息进行了交换。 相比于卷积网络以及先驱的自注意骨干网络(Local Relation Net和SASA)中常见的滑动窗(Sliding window)设计,这一新的设计牺牲了部分平移不变性,但是实验发现平移不变性的部分丢失不会降低准确率,甚至以为正则效应效果更好。同时,这一设计对硬件更友好,从而更实用而有希望成为主流。(摘自胡瀚老师在ReadPaper网站的回答)

  Swin Transformer采用了分层结构,通过从小尺寸的patchs(以灰色勾勒)开始,并逐渐将相邻patchs合并到更深的Transformer层中来构建层次表示。有了这些分层特征映射,Swin Transformer模型可以方便地利用先进技术进行密集预测,如特征金字塔网络(FPN)或U-Net。线性计算复杂度是通过在分割图像的非重叠窗口内局部计算自注意力来实现的(a)所提出的Swin Transformer通过在更深的层中合并图像块(以灰色显示)来构建分层特征图,并且由于仅在每个局部窗口(以红色显示)内计算自注意力,因此对于输入图像大小具有线性计算复杂度。因此,它可以作为图像分类和密集识别任务的通用主干。(b)相比之下,以前的vision Transformer产生单一低分辨率的特征图,并且由于全局计算自注意力,输入图像大小具有二次计算复杂性。

  在所提出的Swin Transformer架构中,用于计算自注意力的移位窗口方法的示例。在层l(左),采用规则的窗口划分方案,并在每个窗口内计算自注意力。在下一层l+1(右)中,窗口分区被移动,从而产生新窗口。新窗口中的自注意力计算跨越层中以前窗口的边界,提供它们之间的连接。

  总体结构如下:

(a) Swin Transformer(Swin-T)的结构;(b)两个连续的Swin Transformer块。W-MSA和SW-MSA分别是具有规则和移位窗口配置的多头自注意力模块。

  论文中提出了一种向左上方向循环移位的高效批处理计算移位配置方法,在该移位之后,批处理窗口可能由多个子窗口组成,这些子窗口在特征图中不相邻,因此采用mask机制将自注意力计算限制在每个子窗口内。使用循环移位,批处理窗口的数量与常规窗口分区的数量相同,因此也是有效的。

 



推荐阅读
  • 京东AI创新之路:周伯文解析京东AI战略的独特之处
    2018年4月15日,京东在北京举办了人工智能创新峰会,会上首次公开了京东AI的整体布局和发展方向。此次峰会不仅展示了京东在AI领域的最新成果,还标志着京东AI团队的首次集体亮相。本文将深入探讨京东AI的发展策略及其与BAT等公司的不同之处。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • HTML5实现逼真树叶飘落动画详解
    本文详细介绍了如何利用HTML5技术创建一个逼真的树叶飘落动画,包括HTML、CSS和JavaScript的代码实现及优化技巧。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 开发笔记:精通 CSS 第 10 章 变换过渡与动画 学习笔记
    开发笔记:精通 CSS 第 10 章 变换过渡与动画 学习笔记 ... [详细]
  • 在一个大型的应用系统中,往往需要多个进程相互协作,进程间通信(IPC,InterProcessCommunication)就显得比较重要了。在Linux系统中,有很多种IPC机制, ... [详细]
  • 本文讨论了在处理分页数据时常见的低级错误,并提供了优化后的代码示例,以减少重复代码并提高可读性和维护性。 ... [详细]
  • 本文由技术爱好者痞子衡撰写,详细介绍了一款名为pzh-speech的语音处理工具的开发背景与核心技术。该工具旨在简化语音处理流程,为开发者提供一个强大的开源解决方案。 ... [详细]
author-avatar
顾久君_152_599
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有