[NAS+Transformer]GLiT: Neural Architecture Search for Global and Local Image Transformer

Abstract

本文是第一批将NAS用于Transformer结构搜索的工作。近期人们发现不基于CNN的Transformer模型也取得了惊人的性能,但是最开始提出用于NLP的Transforemr直接用来处理图像任务并不是最优的。
为了提高Transformer处理视觉任务的能力,本文提出一种新的搜索空间和搜索算法。具体来说就是本文引入一个局部模块可以以更少的计算成本建模局部相关性。利用这一局部模块来定义搜空间,让算法可以自由的在全局和局部信息之间权衡,并却优化每一个模块的设计。
此外为了解决搜索空间较大的问题,本文还提出一种层次化的NAS算法,利用进化算法分别从两个层次来搜索最优的ViT架构。在ImageNet数据集上的实验结果表明,本文的搜索结果比ResNet系列和ViT系列基准模型性能都要好。

Section I Introduction

卷积神经网络在计算机视觉任务中取得了优异的性能,通过堆叠CNN层,可以扩大感受野有效在更大范围内处理上下文信息;由于Transformer在NLP领域取得的巨大成功,目前也有许多研究致力于将Transformer用于CV任务,比如ViT。但是却需要额外的训练数据,不然性能就会比不过CNN模型,比如ResNet-101.


为了进一步发挥Transforemr的潜力,DeiT中采用知识蒸馏借助教师网络提取信息到token,上述两种方法依赖的都是原始的Transformer结构,忽略了NLP与CV任务的差距。
本文认为不同类型的数据存在着不可忽视的差距,因此也导致了在NLP和CV任务上的性能差异。


因此需要设计适合图像任务的Transformer结构,但手工设计又十分费时,因为由太多因素需要考虑;而考虑到NAS在计算机视觉任务中得到的进展,可以用来自动寻找最优的网路架构,目前学术界也没有太多关于Transformer的NAS研究。
基于上述现状本文拟使用NAS更好的搜索Transformer结构应用到图像分类任务。在进行NAS搜索时有两大关键任务:一是搜索空间的设计,二是高效的搜索算法。
原始的Transformer搜索空间应该只包含Transformer的结构参数,比如q,v的维度、head number,block的数目。但是这样的搜索空间忽略了两个因素:
(1)SA的计算复杂度

(2)人类视觉系统中的局部性
局部性

这也是CNN和局部连接层成功的原因,虽然理论上可行但是在时间中很难通过原始的SA机制建模局部关联。


考虑上述因素,本文在MHA模块中引入一个局部性模块,从而扩展了Transformer的搜索空间。局部模块只计算token附近的信息,因此也减轻了计算复杂度。因此NAS搜索会决定使用全局还是局部模块,本文将扩展后的MHA模块重命名为global-local模块,因为它既可以建模局部也可以建模全局。
在这里插入图片描述

从Table 1的实验结果可以看出,Transformer灵活捕获局部和全局的特征时影响最终性能的一个重要因素。
引入全局-局部模块是有效的但是却对搜索算法提出了挑战。要求NAS算法能够发现每个block中局部和全局的最佳分布;其次还要确定每一个模块的具体参数设置,这会使得搜索空间十分巨大,可能是SPOA的10^ 18或者DARTS的10^12倍。
因此本文提出一种层次化的搜索方法。会首先训练一个超网,并利用进化算法来确定全局和局部模块的最优分布;然后再用类似的方式确定每个模块内的详细参数。
与传统的搜索算法相比这种分层搜索的策略可以提升搜索性能。

Fig 1展示了本文的GLiT与其他架构的性能对比,可以看到性能提升了4%。


本文的贡献总结如下:



(1)本文是第一批将NAS用于Transformer的工作,搜索结果优于ResNet101系列



(2)本文在搜索空间中引入局部模块一方面增加了局部性另一方面降低了计算复杂度



(3)本文在搜索算法上提出一种分层的搜索算法可以有效在巨大的搜索空间中实现高效搜索。

Section II Related work

Transformer in Vision



 

目前一股热潮是将Transformer与CNN结合,比如ViT,DeiT,DETR等。但本文与他们的区别在于本文不使用CNN进行特征提取,整个模型还是基于Transformer架构的,只是在SA中引入了局部机制,类似Deformable DETR,通过只关注token附近来减少计算复杂度,并且本文还进一步降低了对内存的要求。
Global and Local Attention in NLP



 


本文的灵感来自于NLP中使用全局和局部注意力。



 

Longformer将袁术的全局注意力分成了mask gloabl attention和masked local attention,本文的局部注意力来自于COnformer,很稳将卷积作为局部注意力引入到Transformer中。此外NAS搜索局部-全局注意力这方面还没有人研究。



 

Global and Local Attention in Vision



 

与NLP类似,局部-全局注意力被证明对CV任务也是有效的。SAN提出pairwise attention和patchwise attention,SENet则是通道注意力,Non-local Net则是使用non-local来捕获非局部的依赖关系。最近BoTNet在ResNet中将最后一个残差块中替换为MHSA来提取全局信息,上述方法均向ViT中引入了局部注意力。




 

NAS



 

早期NAS主要使用RL,EA来训练模型,为了降低搜索成本逐渐使用权重共享的方法,就是会训练超网然后继承超网的权重。DARTS提出了基于梯度可将离散的搜索空间连续化,SPOS则提出单路径采样的方法。但是都存在一些问题,比如内存限制、排序相关性低等问题,并不适合本文这种有太多候选结构的搜索空间问题。



 

因此本文提出层次化的NAS方法。
NAS已经有用于NLP中模型的搜搜,比如AutoTrans,NAS-BERT等,而他们关注的是NLP任务,本文则是关注视觉任务。此外与本文工作同期的还有AutoFormer,核心是权重纠缠思想,但本文与之不同之处在于使用层次化的搜索算法来处理这一庞大的搜索空间。



 

在这里插入图片描述

Section III Method

GLiT由多个Global-Local模块组成,具体结构见Fig2。然后本文又定义了搜索空间,搜索方法分两阶段进行,先搜索global-local的分布再搜索整体结构。
在这里插入图片描述

Part 1 Global-Local block

GLBlock中包含2种模块,G和L分别代表SA的头数和conv的头数,然后GLiT中包含M个这样的GL Block,每一个GL Block中保安不同数目的G和L。



一共(m^2+1)个 token,然后线性映射获得Q,K,V,按照常规进行SA的计算:




在这里插入图片描述
除了MHSA还增加了卷积模块,主要受Conformer启发,本文也使用1D卷积来建立局部关系,参见Fig 3,Conv layer包含2个pointwise conv+1个depthwise conv,每一次卷积后边跟着BN和非线性激活函数。最后一个pointwise conv负责将特征维度映射回输入维度。本文使用1D卷积是因为比2D更适合token。
Multi-Head Global-Local Module


定义好了global和local自模块,下一个问题就是如何将二者结合,本文通过将MHSA中一部分head替换为local module来完成结合,比如head number N=3,那么可以保持其中第0个头不变,用local sub-module替换剩下的两个头,如果MHA中所有的头都是SA那么就退化为原始的transformer 模块。在GL Module中glocal只对global对应的head计算SA,local sub-module的会直接送到卷积层。
在这里插入图片描述

Table 1展示了在GL Module中使用不同比例的全局和局部子模块的实验结果,可以看到简单的将所有SA模块替换为卷积模块会因为缺乏局部信息导致性能的巨大下降,而每一个block中选用1和SA head和2和convhead性能是最好的,这样可以同时引入局部和全局信息。
FFN Module
每个GL Block中还包含一个FFN模块,主要由LN+2层全连接组成。激活函数用的Swish.

Part 2 Search Space of the global-local block

搜索空间包含高层次的global-local模块的分布以及低层次的每一个子模块的内部结构。


high-level关注的是在所有GL Block中local和global的分布,

low-level关注的是每一个子模块的具体结构,详情参见Table 2.
在这里插入图片描述

High-level global-local distribution


考虑一共M个模块,每一个模块包含N个头,G代表attention head的头数,L代表conv head的头数,因此组合方式有:

在这里插入图片描述

Low-level Detailed architecture



low-level方便关注以下4项:K,V的dimension,FFN的expansion ratio,diyige point-wise conv的expansionratio,以及1D depth-wise的卷积核大小,也可以从Table 2看到详细的配置。




每一个block中convhead的数目是一样的,对于M个block,内部对conv,SA,ffn的搜索复杂度为:
在这里插入图片描述

最终low-level的搜索空间大小为:
在这里插入图片描述
在这里插入图片描述

Search Space Size



搜索空间的额分析 考虑不同的block有不同的结构,如果一共M个block那么最终的搜索空间包含((N+1)V1V2V3V4)M个候选网络,这是一个超大的搜索空间,本文设置M=12.目前主流的DARTS不能很好的进行搜索,但one-shot NAS每次只选择一个网络进行迭代训练,只不过会存在性能相关性较低的问题。因此本文提出了层次化的搜索方法,,从而在满足内存需求的前提下搜索到最优结构。




在这里插入图片描述

Part 3 Hierarchical Neural Architecture Search

Fig 4展示了这种层次化搜索方法的两阶段示意图,首先会搜索global-local的最佳分布,然后固定这一分布对block的具体结构进行搜索。

**Stage 1:**在第一阶段,所有子结构的参数dk,dz,E,K会被固定,然后使用SPOS来搜索最佳的分布N。SPOS分三步进行:
超网训练、子网搜索、子网重训练。

在超网训练时每次会从产生一个随机抽样指数ji,然后用这个指数去从超网汇总抽样一个子网络,M个模块中子模块分别是:

在这里插入图片描述

然后在训练这一子网。
超网训练好后会用进化算法来找到最优的top-5个子网,评价指标是validation accuracy;
最后在对着5个子网重训练,选择validation loss最优的作为输出。
在这里插入图片描述

**Stage 2:**
stage 1得到最优的global-local分布后再搜索每个模块的详细结构。继续使用SPOS的方法,只不过搜索空间变成了4元组,不再是上文的采样指数ji了,而是(j1,j2,j3,j4)分别对应[Dkm,Dzm,Em,Km].。

这种两阶段的方法比目前已有的NAS方法有以下2大优势:


(1)将巨大的搜索空间分成两个更小的,原始搜索空间大小为 ((N+1)V1V2V3V4)M


本文的搜索空间是:
(N+1)M+(V1V2V3V4)M,可以看到减小了10^7倍。

从Fig 5可以看出,在stage 1之后搜索到的结构大部分都只有local或global模块,只有两个block同时具有global-local,因此对于大多数子模块的搜索空间搜比较小,是V1V2或V3V4。

Section IV Experiments

本文在分类任务上测试了GLiT的效果,下面是实验细节。

Implementations Details:

数据集ImageNet

Part 1 Results on ImageNet

Table 3展示了在不同FLOPs下的对比结果,对比的网路有ResNet18,50以及一些Transformer网络(DeiT,ViT).

在这里插入图片描述
可以看到在1.3GFlops下班照顾选准确率达到了76.3%,比DeiT和ResNet18分别高出了4个点和6个点。
在这里插入图片描述
在这里插入图片描述

Part 2 Ablation Study

消融实验主要证明搜索空间和搜索方法的有效性.
可以从Table 4看到性能大概比基线提升了1.5%,此外本文还与NLP-NAS的搜索空间进行了比较,可以看到本文比NLP-NAS性能高2.9%.


Table 5展示的则是不同搜索方法与本文两阶段的对比。



在这里插入图片描述

Methods to introduce locality
本文使用1D Conv来引入局部性,当然也有其他方法,比如限制SA的范围或者使用Conv2D,Table 6展示了对比结果,可以看到使用局部SA的性能只有72.4%,远远低于本文的76.3%,主要是因为不同的局部区域缺乏交流,而本文的conv1D可以解决这一问题。

Part 3 Dicussion

Searched Architecture

Fig 5展示了GLiT搜索到的结果,可以看到只有25%的模块同时包含global和local模块,大多数还是只有global或者只有local的模块;但是local和global之间的连接顺序可能比并行连接更重要;



此外卷积核方面实验结果表示太小的核尺寸不适合local模块;





在整个网络结构中大概的顺序是:local,local-global mix,local的顺序,泪滴一系列local-globalCNN的堆叠。



在这里插入图片描述

Visualization


本文还可视化了DeiT和GLiT学习到的特征,通过将输出的token reshape到输入图像相同的大小,计算通道平均后的结果作为热土,可视化结果表明通过local和global的良好组合,本文的GLiT会比DeiT更关注于有目标的区域。

Section V Conclusion

本文通过设计具有局部和全局模块的搜索空间,结合分层搜索方法更好的设计了ViT结构,GLiT提供了一种更可行的自动化搜索方法。除了比目前其他NAS方法取得了更好的性能,GLiT还将激发更多关于寻找最优的Transformer结构的研究。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值