摘要:针对ViT现状,分析ViT尚存问题和相对应的解决方案,和相关论文idea汇总。

本文分享自华为云社区《【ViT】目前Vision Transformer遇到的问题和克服方法的相关论文汇总》,作者:苏道 。

首先来看ViT始祖级论文

An image is worth 16x16 words: Transformers for image recognition at scale

论文地址:https://arxiv.org/abs/2010.11929

他使用全Transformer结构,将图像区域划分为一个个小方块作为Patch作为输入。左图是ViT的总体架构,右边是Transformer Encoder中每个Block的外形。我们可以看到,他基本就是原始Transformer的结构,除了他把norm放在前面,有文章表明norm放在前面更加容易训练一点。

使用Transformer可以在每一层都得到图片的全局信息,但是他也不是十全十美的,他有以下的这些缺点:

1、数据需求量大: Self-Attention归纳偏置能力较CNN弱。归纳偏置怎么说呢,就是模型对没遇到的数据做的一些假设,CNN具有空间不变性的假设,所以他可以用一个权重去滑窗处理整个特征图,而RNN具有时间不变性的假设。但是Self-Attetnion没有这些假设,所以他需要更多的数据去自动学习到这些假设,但是这样有一个好处就是可能学到的假设会更灵活一些。

那针对这个问题,我们可以使用一个CNN网络作为Teacher网络,添加蒸馏损失去帮助他学习。

Patch Embedding本质是一个卷积核与滑动步长都为Patch size的大卷积和,想Vit为16的卷积核,那肯定是不够稳定的,所以后来的一些研究会使用几个卷积与池化相结合或者干脆前几个block是残差块的方式来代替。

2、计算量大:计算复杂度与token的平方相关,如果输入特征图为56*56的特征图,那么会涉及3000+长宽的矩阵运算,计算量很大,同时在原始Transformer计算过程中token数以及hidden size保持不变,所以后来的研究者采用了几个方法是解决计算量大的问题。参考resnet结构使用金字塔的结构,越高层的token数量越少;使用局部窗口sa,分别考虑特征图的一部分做sa,再想办法把这些局部信息进行交互;使用卷积来代替fc,以减少参数;在生成Q,K,V过程中,对K,V的特征图或者是token做池化,减少计算复杂度。

3、堆叠层数数量受限:存在过度平滑问题,不同的Block之间的相似性随着模型的加深而增加;不同token之间的相似性随着随着模型的加深而增加。解决方法主要是增大hidden size,不过这个方法参数增加量也会很大;在注意力图softmex前后,在head维度进行线性变换以增加信息交互,增加注意力图的多样性;在深层dropout增大以增加特征的多样性;或者增加相似度惩罚损失项。

4、模型本身无法编码位置:那就需要各种各样的位置编码,以下列出了一些位置编码,有固定的与可学习的,有绝对的和相对的,还有利用卷积的特性使用卷积去作为位置编码的。

具体可见下表

上述改进点相关论文大家可以查下表:

点击关注,第一时间了解华为云新鲜技术~

带你读Paper丨分析ViT尚存问题和相对应的解决方案相关推荐

  1. 带你读论文丨基于视觉匹配的自适应文本识别

    摘要:ECCV2020 通过视觉匹配的方法来做文本识别,解决文档识别中的文本识别多样性和泛化性问题 本文分享自华为云社区<论文解读二十三:基于视觉匹配的自适应文本识别>,作者: woohe ...

  2. 带你读论文丨异常检测算法及发展趋势分析

    摘要:本文根据对现有基于深度学习的异常检测算法的调研,介绍现有的深度异常检测算法,并对深度异常检测算法的未来发展趋势进行大致的预测. 本文分享自华为云社区<[论文阅读]异常检测算法及发展趋势分析 ...

  3. 5分钟带你读「大清」微积分!160多年前清朝数学家撰写文言文版高等数学

     视学算法报道   编辑:小咸鱼 好困 [新智元导读]你有见过160多年前清朝数学家写的微积分书吗?这可能是最难懂的高数教材了,堪称天书!近日,网上流传着一本清朝的微积分课本,其中的所有数学表达式都是 ...

  4. 带你读懂Spring Bean 的生命周期,嘿,就是玩儿~

    带你读懂Spring Bean 的生命周期,嘿,就是玩儿~ 一.前言 今天我们来说一说 Spring Bean 的生命周期,小伙伴们应该在面试中经常遇到,这是正常现象.因为 Spring Bean 的 ...

  5. 搞科研,从好好读论文开始:沈向洋带你读论文了

    「或许你永远不知道你以前读过的书能在什么时候派上用场,但请保持阅读,因为阅读的过程也是在你大脑中建立认知的过程.」 对于科研人员来说,读论文是一种必修技能.去年,沈向洋博士曾在线上公开课<You ...

  6. 2020年国家电网计算机类考纲,终于发布!详解2020届国家电网考试大纲,带你读懂考纲变化!...

    原标题:终于发布!详解2020届国家电网考试大纲,带你读懂考纲变化! 终于发布!今晚21点,详解2020届国网考试大纲,带你读懂考纲变化! 原创: 小奕 奕诚总部 今天 说来就来!"国网考试 ...

  7. 带你读懂Spring 事务——事务的隔离级别(超详细,快藏)

    不了解事务的铁汁可以先看前两篇,讲的超详细,有问题还请您指点一二 带你读懂Spring 事务--认识事务 带你读懂Spring 事务--事务的传播机制(藏) 特别提示:本文所进行的实验都是在MySQL ...

  8. 带大家读python数据分析一书(三)

    带大家读python数据分析一书(三) 写在开头   今天写博客的时候才发现CSDN里面的博客模板改版了更新了一些,好像更亲和html多一些了?连换行都要用上br了,不过无所谓这不是重点,对于我开说只 ...

  9. rock带你读CornerNet-lite系列源码(二)

    文章目录 前言 CorNerNet 结构 CornerNet_saccade结构 attention机制 CornerNet_Squeeze结构 构建Groundtruth 热图 focal loss ...

最新文章

  1. python使用教程pandas-python之pandas简单介绍及使用(一)
  2. jetson nano 人脸识别
  3. 反编译之将脱壳后的dex文件重新打包成apk
  4. 微信小程序云开发校园社交二手物品跳蚤平台表白动态求助寻物组队,完整免费,配置即用
  5. 计算机安全的加密技术,计算机安全加密技术研究(4篇)(共14695字).doc
  6. 【机器学习实验】scikit-learn的主要模块和基本使用
  7. 教你用Python轻松批量获取快手无水印视频以及详细信息!(侵权删)
  8. Spring动态代理的两种方式
  9. Python爬取必应搜索首页图片
  10. ResponseEntity总结
  11. 几何分布的期望和方差公式推导_算法数学基础-统计学最基础之均值、方差、协方差、矩...
  12. Azure NSG Flow Log 引发的自嗨 -- 日志 ETL 流式处理
  13. 爬虫实战:链家租房数据爬取,实习僧网站数据爬取
  14. linux-使用screen后台运行命令,防止断网导致异常退出,命令没运行完成
  15. ubuntu中pycharm没有启动图标
  16. 编译filament
  17. CSS3解析抖音 LOGO制作
  18. ubuntu系统下破解Clion
  19. @Transactional注解什么情况会失效?
  20. git: patch 是什么/ 如何用

热门文章

  1. ES6/05/正则表达式简介,正则表达式如何使用,正则表达式中的特殊字符(边界符,量词符),预定义类,正则表达式中的替换
  2. js 数据结构中邻接矩阵的图的直观表示
  3. Bootstrap3 按钮状态提示
  4. Bootstrap3 面板的情景类
  5. 定制Bootstrap3
  6. Bootstrap CSS 编码规范之Less 和 Sass 中的操作符
  7. es6 async函数的语法
  8. oracle 磁盘响应慢,磁盘故障引起的系统变慢定位
  9. mysql+安全性语言实验,实验四--数据库的安全性、完整性控制
  10. kafka查看broker上主副本_kafka分区及副本在broker的分配