带你读Paper丨分析ViT尚存问题和相对应的解决方案
摘要:针对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、模型本身无法编码位置:那就需要各种各样的位置编码,以下列出了一些位置编码,有固定的与可学习的,有绝对的和相对的,还有利用卷积的特性使用卷积去作为位置编码的。
具体可见下表
上述改进点相关论文大家可以查下表:
相关文章
- Session跨域共享及SSO解决方案实战
- win10 更新出现0x80244022解决方案
- 推荐系统[八]:推荐系统常遇到问题和解决方案[物品冷启动问题、多目标平衡问题、数据实时性问题等]
- NEC推出面向5G时代采用AI分析技术的无线传输解决方案
- Connection reset原因分析和解决方案
- Linux转发性能评估与优化(转发瓶颈分析与解决方案)
- 数商云汽车经销商管理系统解决方案:构建消费者、经销商企业功能体系
- 照明行业S2B2B解决方案:高效赋能产业供应链,提升企业经济效益
- 化妆品电商供应链系统解决方案:美妆化妆品品牌供应链质量管理、产品定位
- JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一)
- Dynamics CRM2013 导入解决方案(快速视图窗体)SystemForm With Id Does Not Exist的解决方法
- NetApp同阿里云合作 推混合云解决方案
- Vue项目开发中,遇到的各种痛点问题和解决方案
- CMMI5级——原因分析及解决方案(Causal Analysis and Resolution)
- 安卓通过Parcelable传值失败解决方案及原理分析
- 大数据的最终解决方案
- 谈谈Mysql主从同步延迟分析及解决方案
- 瑞蓝RL-NDVM-A16网络视频解码器 视频上墙解决方案专家--数字视频解码矩阵
- 【Android 性能优化】应用启动优化 ( 阶段总结 | Trace 文件分析及解决方案 | 源码分析梳理 | 设置主题的方案总结 ) ★
- 【从源码分析】可能是全网最实用的React Native异常解决方案