美团提出基于隐式条件位置编码,性能优于ViT和DeiT
机器之心发布
【美团提出基于隐式条件位置编码,性能优于ViT和DeiT】机器之心编辑部
Transformer跨界计算机视觉的热潮之下 , 有一个问题需要解决:如何像CNN一样直接处理不同尺寸的输入?对此 , 美团提出了一种新型隐式条件位置编码方法 , 基于该方法的CPVT模型性能优于ViT和DeiT 。
随着Facebook的DETR(ECCV2020)[2]和谷歌的ViT(ICLR2021)[3]的提出 , Transformer在视觉领域的应用开始迅速升温 , 成为当下视觉研究的第一热点 。 但视觉Transformer受限于固定长度的位置编码 , 不能像CNN一样直接处理不同的输入尺寸 , 这在很大程度上限制了视觉Transformer的应用 , 因为很多视觉任务 , 如检测 , 需要在测试时动态改变输入大小 。
一种解决方案是对ViT中位置编码进行插值 , 使其适应不同的图片大小 , 但这种方案需要重新fine-tune模型 , 否则结果会变差 。
最近 , 美团提出了一种用于视觉Transformer的隐式条件位置编码CPE[1] , 放宽了显式位置编码给输入尺寸带来的限制 , 使得Transformer便于处理不同尺寸的输入 。 实验表明 , 应用了CPE的Transformer性能优于ViT和DeiT 。
论文地址:https://arxiv.org/pdf/2102.10882.pdf
项目地址:https://github.com/Meituan-AutoML/CPVT(即将开源)
背景
谷歌的ViT方法通常将一幅224×224的图片打散成196个16×16的图片块(patch) , 依次对其做线性编码 , 从而得到一个输入序列(inputsequence) , 使Transformer可以像处理字符序列一样处理图片 。 同时 , 为了保留各个图片块之间的位置信息 , 加入了和输入序列编码维度等长的位置编码 。 DeiT[4]提高了ViT的训练效率 , 不再需要把大数据集(如JFT-300M)作为预训练的限制 , Transformer可以直接在ImageNet上训练 。
对于视觉Transformer , 位置编码不可或缺
在ViT和CPVT的实验中 , 我们可以发现没有位置编码的Transformer性能会出现明显下降 。 除此之外 , 在Table1中 , 可学习(learnable)的位置编码和正余弦(sin-cos)编码效果接近 , 2D的相对编码(2DRPE)性能较差 , 但仍然优于去掉位置编码的情形 。
文章图片
美团、阿德莱德大学提出新型位置编码方法
位置编码的设计要求
显式的位置编码限制了输入尺寸 , 因此美团这项研究考虑使用隐式的根据输入而变化的变长编码方法 。 此外 , 它还需要满足以下要求:
保持很好的性能;
避免排列不变性(permutationequivariance);
易于实现 。
基于上述要求 , 该研究提出了条件编码生成器PEG(PositionalEncodingGenerator) , 来生成隐式的位置编码 。
生成隐式的条件位置编码
在PEG中 , 将上一层Encoder的1D输出变形成2D , 再使用变换模块学习其位置信息 , 最后重新变形到1D空间 , 与之前的1D输出相加之后作为下一个Encoder的输入 , 如Figure2所示 。 这里的变换单元(Transoformationunit)可以是Depthwise卷积、DepthwiseSeparable卷积或其他更为复杂的模块 。
文章图片
将PEG插入到模型中(如Figure1中添加在第一个Encoder后) , 即可对各个Encoder添加位置编码信息 。 这种编码好处在于不需要显式指定 , 长度可以依输入变化而变化 , 因此被称为隐式的条件位置编码 。
文章图片
实验
ImageNet数据集
该研究将添加了PEG的VisionTransformer模型命名为CPVT(ConditionalPositionencodingsVisualTransformer) 。 在ImageNet数据集上 , 相同量级的CPVT模型性能优于ViT和DeiT 。 得益于隐式条件编码可以根据输入动态调整的特性 , 基于224×224输入训练好的模型可以直接处理384×384输入(Table3最后一列) , 无需fine-tune就能直接获得性能提升 。 相比之下 , 其他显式编码没有fine-tune则会出现性能损失 。
文章图片
与其他编码方式的对比
Table5给出了CPVT-Ti模型在不同编码策略下的表现 。 其中在从第0个到第5个Encoder各插入一个PEG的性能最优 , Top-1准确率达到73.4% 。 CPVT单独使用PEG或与可学习编码相结合也优于DeiT-tiny在各种编码策略下的表现 。
文章图片
PEG在不同位置的作用
ViT主干由12个Encoder组成 , CPVT对比了PEG位于-1、0、3、6、10等处的结果 。 实验表明 , PEG用于第一个Encoder之后表现最好(idx0) 。 该研究认为 , 放在第一个encoder之后不仅可以提供全局的接受域 , 也能够保证模型尽早地利用到位置信息 。
- 基于串联充放电的锂动力电池单体一致性筛选方法
- 英语|每年都有代表提出取消英语主科地位,你赞同吗
- 美团荣获“全国脱贫攻坚先进集体”表彰
- 思皓X4基于嘉悦X4打造,却更换新车标,这波操作让人匪夷所思
- 西大街改造的6个方案,期待你提出意见!
- 提出“赊账”无理要求,还想让中国优先供货,真把自己当回事了?
- “美国可以,中国不可以”,布林肯将矛头指向中俄,提出霸道要求
- 加拿大法律专家:加方逮捕孟晚舟违反国际法 整个案件都基于政治考量
- 基本养老保险|2021农村养老“升级”?专家提出“新改革”,一类人被照顾
- 青白蛇优化调研开启,可任意提出意见,但玩家不满,认为必须重做