我报名参与金石计划1期挑战——瓜分10万奖池,这是我的第25篇文章,点击查看活动概况
导读
将Transformer应用到CV使命中现在越来越多了,这里整理了一些相关的发展给我们。
Transformer结构已经在许多自然语言处理使命中取得了最先进的效果。Transformer 模型的一个主要的打破可能是本年年中发布的GPT-3,被授予NeurIPS2020“最佳论文“。
在核算机视觉范畴,CNN自2012年以来已经成为视觉使命的主导模型。跟着呈现了越来越高效的结构,核算机视觉和自然语言处理越来越收敛到一起,运用Transformer来完结视觉使命成为了一个新的研讨方向,以下降结构的复杂性,探究可扩展性和练习功率。
以下是几个在相关工作中比较闻名的项目:
- DETR(End-to-End Object Detection with Transformers),运用Transformers进行物体检测和切割。
- Vision Transformer(AN IMAGE IS WORTH 16X16 WORDS: Transformer FOR IMAGE RECOGNITION AT SCALE),运用Transformer 进行图画分类。
- Image GPT(Generative Pretraining from Pixels),运用Transformer进行像素级图画补全,就像其他GPT文本补全相同。
- End-to-end Lane Shape Prediction with Transformers,在自动驾驶中运用Transformer进行车道符号检测
结构
总的来说,在CV中采用Transformer的相关工作中主要有两种模型架构。一种是纯Transformer结构,另一种是将CNNs/主干网与Transformer相结合的混合结构。
- 纯Transformer
- 混合型:(CNNs+ Transformer)
Vision Transformer是基于完整的自注意力的Transformer结构没有运用CNN,而DETR是运用混合模型结构的一个比如,它结合了卷积神经网络(CNNs)和Transformer。
一些问题
- 为什么要在CV中运用Transformer?怎么运用
- benchmark上的成果是什么样的?
- What are the constraints and challenges of using Transformer in CV?
- 哪种结构更高效和灵敏?为什么?
你会在ViT、DETR和Image GPT的下面的深入研讨中找到答案。
Vision Transformer
Vision Transformer(ViT)将纯Transformer架构直接应用到一系列图画块上进行分类使命,能够取得优异的成果。它在许多图画分类使命上也优于最先进的卷积网络,一起所需的预练习核算资源大大削减(至少削减了4倍)。
Vision Transformer模型结构
图画序列patches
它们是怎么将图画切割成固定巨细的小块,然后将这些小块的线性投影连同它们的图画方位一起输入变压器的。然后剩余的过程就是一个干净的和标准的Transformer编码器和解码器。
在图画patch的嵌入中参加方位嵌入,经过不同的战略在大局范围内保留空间/方位信息。在本文中,他们尝试了不同的空间信息编码办法,包括无方位信息编码、1D/2D方位嵌入编码和相对方位嵌入编码。
不同方位编码战略的比照
一个有趣的发现是,与一维方位嵌入比较,二维方位嵌入并没有带来明显的功能提高。
数据集
该模型是从多个大型数据集上删除了重复数据预练习得到的,以支撑微调(较小数据集)下游使命。
- ILSVRC-2012 ImageNet数据集有1k类和130万图画
- ImageNet-21k具有21k类和1400万图画
- JFT具有18k类和3.03亿高分辨率图画
模型的变体
像其他盛行的Transformer 模型(GPT、BERT、RoBERTa)相同,ViT(vision transformer)也有不同的模型尺度(根底型、大型和巨大型)和不同数量的transformer层和heads。例如,ViT-L/16能够被解释为一个大的(24层)ViT模型,具有1616的输入图画patch巨细。
注意,输入的patch尺度越小,核算模型就越大,这是因为输入的patch数目N = HW/P*P,其中(H,W)为原始图画的分辨率,P为patch图画的分辨率。这意味着14 x 14的patch比16 x 16的图画patch在核算上更贵重。
Benchmark成果
图画分类的Benchmark
以上成果标明,该模型在多个盛行的基准数据集上优于已有的SOTA模型。
在JFT-300M数据集上预练习的vision transformer(ViT-H/14, ViT-L/16)优于一切测试数据集上的ResNet模型(ResNet152x4,在相同的JFT-300M数据集上预练习),一起在预练习期间占用的核算资源(TPUv3 core days)大大削减。即使是在ImageNet-21K上预练习的ViT也比基线体现更好。
模型功能 vs 数据集巨细
预练习数据集巨细VS模型功能
上图显现了数据集巨细对模型功能的影响。当预练习数据集的巨细较小时,ViT的体现并不好,当练习数据充足时,它的体现优于以前的SOTA。
哪种结构更高效?
如一开端所提到的,运用transformer进行核算机视觉的架构规划也有不同,有的用Transformer完全替代CNNs (ViT),有的部分替代,有的将CNNs与transformer结合(DETR)。下面的成果显现了在相同的核算预算下各个模型结构的功能。
不同模型架构的功能与核算成本
以上试验标明:
- 纯Transformer架构(ViT)在巨细和核算规模上都比传统的CNNs (ResNet BiT)更具功率和可扩展性
- 混合架构(CNNs + Transformer)在较小的模型尺度下功能优于纯Transformer,当模型尺度较大时功能十分挨近
ViT (vision transformer)的关键
- 运用Transformer架构(纯或混合)
- 输入图画由多个patch平铺开来
- 在多个图画识别基准上击败了SOTA
- 在大数据集上预练习更便宜
- 更具可扩展性和核算功率
DETR
DETR是第一个成功地将Transformer作为pipeline中的主要构建块的方针检测结构。它与以前的SOTA办法(高度优化的Faster R-CNN)的功能匹配,具有更简略和更灵敏的pipeline。
DETR结合CNN和Transformer的pipeline的方针检测
上图为DETR,一种以CNN和Transformer为主要构建块的混合pipeline。以下是流程:
- CNN被用来学习图画的二维表明并提取特征
- CNN的输出是扁平化的,并辅以方位编码,以馈入标准Transformer的编码器
- Transformer的解码器经过输出嵌入到前馈网络(FNN)来猜测类别和围住框
更简略的Pipeline
传统方针检测pipeline和DETR的比照
传统的方针检测办法,如Faster R-CNN,有多个过程进行锚的生成和NMS。DETR放弃了这些手工规划的组件,明显地简化了物体检测pipeline。
当扩展到全景切割时,惊人的成果
在这篇论文中,他们进一步扩展了DETR的pipeline用于全景切割使命,这是一个最近盛行和具有挑战性的像素级识别使命。为了简略解释全景切割的使命,它一致了2个不同的使命,一个是传统的语义切割(为每个像素分配类标签),另一个是实例切割(检测并切割每个方针的实例)。运用一个模型架构来处理两个使命(分类和切割)是十分聪明的想法。
像素等级的全景切割
上图显现了全景切割的一个比如。经过DETR的一致pipeline,它超越了十分有竞争力的基线。
注意力可视化
下图显现了Transformer解码器对猜测的注意力。不同物体的注意力分数用不同的色彩表明。
经过观察色彩/注意力,你会惊奇于模型的能力,经过自注意在大局范围内了解图画,处理堆叠的围住框的问题。尤其是斑马腿上的橙色,尽管它们与蓝色和绿色局部堆叠,但还是能够很好的分类。
猜测物体的解码器注意力可视化
DETR的关键
- 运用Transformer得到更简略和灵敏的pipeline
- 在方针检测使命上能够匹配SOTA
- 并行的更有效的直接输出最终的猜测集
- 一致的方针检测和切割架构
- 大方针的检测功能明显提高,但小方针检测功能下降
Image GPT
Image GPT是一个在像素序列上用图画补全练习的GPT-2 transformer 模型。就像一般的预练习的语言模型,它被规划用来学习高质量的无监督图画表明。它能够在不知道输入图画二维结构的状况下自回归猜测下一个像素。
来自预练习的图画GPT的特征在一些分类基准上取得了最先进的功能,并在ImageNet上挨近最先进的无监督精度。
下图显现了由人工供给的半张图画作为输入生成的补全模型,随后是来自模型的创造性补全。
来自Image GPT的图画补全
Image GPT的关键:
- 运用与NLP中的GPT-2相同的transformer架构
- 无监督学习,无需人工符号
- 需要更多的核算来生成有竞争力的表明
- 学习到的特征在低分辨率数据集的分类基准上实现了SOTA功能
总结
Transformer在自然语言处理中的巨大成功已经在核算机视觉范畴得到了探究,并成为一个新的研讨方向。
- Transformer被证明是一个简略和可扩展的结构,用于核算机视觉使命,如图画识别、分类和切割,或只是学习大局图画表明。
- 与传统办法比较,在练习功率上具有明显优势。
- 在架构上,能够采用纯Transformer的方法运用,也能够与cnn结合运用混合的方法运用。
- 它也面临着挑战,比如在DETR中检测小方针的功能较低,在Vision Transformer (ViT)中,当预练习数据集较小时,功能也不是很好。
- Transformer正在成为学习序列数据(包括文本、图画和时刻序列数据)的更通用的结构。
英文原文:towardsdatascience.com/transformer…