Press "Enter" to skip to content

AutoFormer:Vision Transformer + NAS 一个较为Solid的工作

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

Vision Transformer + 网络结构搜索,面向参数高效的Vit设计——Autoformer(ICCV2021)

 

AutoFormer: Searching Transformers for Visual Recognition

 

arxiv: https://arxiv.org/abs/2107.00651

 

repo: https://github.com/microsoft/Cream/tree/main/AutoFormer

论文描述

解决什幺问题?

 

autformer使用NAS的方法自动去选择transformer设计中的关键参数,比如,网络深度,embedding的维度,MHSA(Multi Head Self Attention)中head的数目

 

针对不同的场景需求可以直接得到相应的ViT,也就是once-for-all

 

解决这个问题里面什幺关键点,idea是什幺

 

解决上述两个问题,第一个问题的就是设置对应超参搜索空间,第二个问题也是这篇文章的核心贡献,once-for-all的特点则是通过weight entanglement。

 

文章整体的流程与SPOS[1]类似,不同点在于SPOS采用的weight sharing与Autoformer的weight entanglement之间。对比图见下:

前者同一操作不同超参对应不同分支。而后者同一操作,不同超参对应的参数从子集里拿,不同超参对应的参数训练相互纠缠。

 

为什幺不用weight sharing而去使用weight entanglement

 

在上面我们讲了不同,但没有讲为什幺要用,在这里给出对比图:

总结下来就是:

 

训练收敛慢

 

精度差

 

weight sharing需要保留所有候选操作的参数,而weight entanglement只需要保留最大超参设置对应的参数

 

具体实现流程

 

搜索空间的设计:

(最小值,最大值,步长) ,主要针对 DeiT-tiny , DeiT-smallDeiT-base 三个 参数 量级。

 

整体的示意图见下:

整体的操作流程:

 

 

基于weight entanglement训练supernet,在预设置好的搜索空间采样到子网,更新子网的参数,冻结其余的参数不使其更新。

 

采用进化算法得到参数量最小精度最高的模型。

 

 

效果

 

once-for-all的效果:

可以看到采样出来的子网直接继承超网的参数就可以有很好的效果

 

NAS搜索的效果对比:

可以看到在参数量和acc的trade-off上有很好的表现

 

笔者谈

 

该文章与2020年的HAT[2]比较相像,都是基于weight entanglement,只不过HAT聚焦于NLP领域,HAT的示意图见下:

Autoformer claim:

但是该关键性的不同可能来源于Deit较强的训练策略,以及imagenet较大的数据量,至于另外一个不同也只是因为面向不同任务模型结构的不同,不涉及到具体实现以及关键性技术不同。总而言之,autoformer与HAT的不同主要来源于面向任务和数据集不同,关键性技术与思想是一致的。

 

但不管怎样,Autoformer是ViT+NAS踏出去的一个很solid的工作。

 

参考文献

 

[1] Zichao Guo, Xiangyu Zhang, Haoyuan Mu, Wen Heng, Zechun Liu, Yichen Wei, and Jian Sun. Single path one-shot neural architecture search with uniform sampling. ECCV,

 

[2] Hanrui Wang, Zhanghao Wu, Zhijian Liu, Han Cai, Ligeng Zhu, Chuang Gan, and Song Han. Hat: Hardware-aware transformers for efficient natural language processing. arXiv preprint arXiv:2005.14187, 2020.

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注