resnet 50 网络结构 resnet50网络结构如何设计_搜索空间


论文地址:http://xxx.itp.ac.cn/pdf/2002.12580v1

引子

上一个阶段的网络结构搜索(NAS)研究,主要在两个方面。1)各类搜索方法,从强化学习、进化算法等到梯度下降;2)各类网络结构或者配置,从各种算子到通道数,“万物皆可搜”。近期的NAS研究热点主要在探究高效、快速的NAS。

搜索方法方面,现在比较时髦的是one-shot方法,处在发展阶段,也存在一些问题。one-shot方法将多个subnet并联在一个supernet里面,大概而论,并联在supernet中的subnet越多,one-shot方法将会更慢,对于搜索结构也会有随机性。 很多人质疑,各种搜索方法都是在一个人为事先优选的「子搜索空间」基础上进行的。在这种人为优选子搜索空间中,所包含的各结构之间效果分布较为集中,上下限差距不大或者极端的结构分布很少,也就是说,这是一个效果接近于最优的「次优子结构空间」。那问题在于,NAS作为AutoML的一个重要部分,是要对之前一些需要人的经验或试错的工作进行自动化处理的,自动寻找这个「次优子结构空间」也是NAS的应有之义。 我们进行NAS,首要的是承认了各种结构是不平等的。不平等自然是最直白的一种关系。上一阶段的NAS工作大多在搜索方法和不同任务空间上钻研,现在,是时候注意一下,在一个任务上,整个结构搜索空间中各个结构之间是否具有一定的关系呢?我们知道这个世界是普遍联系的,同理,网络搜索空间,也是由结构以及结构之间的关系构成的。如果我们掌握了结构之间关系,就可以有先见之明,从而达到NAS加速效果。这是一个问题。 各种网络结构或者配置方面,在之前的工作中,有算子选择、通道数搜索,然而对层数搜索的NAS工作是不够完善的。我们知道,one-shot方法中supernet是并联的,但是层是串联的,现在如何得到一个one-shot的层数搜索框架呢?这也是一个问题。 这篇文章中,我们可以找到以上两个问题,即网络结构关系和卷积神经网络层数搜索的答案。

工作

首先问题的定义,layer assignment search,可以泛泛理解成层数搜索。详细来说,这里的层指的是一个单元,比如resnett的bottleneck,plane net的conv-bn-relu等;还有,CNN中,一般用下采样(stride conv/pooling)划分阶段,每一个阶段会堆叠若干层,比如resnet,四个阶段,各阶段层数为3,4,6,3,每一个层就是一定的算力。


resnet 50 网络结构 resnet50网络结构如何设计_搜索_02

不同layer assignment的ResNet-50

值得说明的一点,以上不同layer assignment的ResNet50是具有相同FLOPs的。可以计算验证。 实际项目中,尤其在边缘设备算力限制情况下,如果不能用ResNet50,就需要确定一个阶段里分配几层算力,这就是layer assignment search 问题。这里面包含了两个意思,第一,就是总层数,第二,就是给定层数下各层的分配。 然后回答到一个问题:整个结构搜索空间中各个结构之间是否具有一定的关系呢?答案是有的,就是,后面一层的最好层分配结构继承自前一层的最好层分配结构。由浅至深。层层下去,去除了网络空间的冗余。示意图如下:

resnet 50 网络结构 resnet50网络结构如何设计_resnet50网络结构_03

将这种关系命名为Neural Inheritance Relation(NIR)。将这个关系作为先验,构建一个one-shot搜索框架,当然是针对层数搜索的,即是Neural Inheritance Relation Guided One-Shot Layer Assignment Search 。


resnet 50 网络结构 resnet50网络结构如何设计_搜索_04

如上图所示,层数搜索的one-shot框架。一个包含了诸多层的supernet首先被构建出来,每次采样,在每个阶段要从浅到深的进行,将采样得到的各阶段layer连接起来,就是一个 candidate subnet。

采样从浅层开始,举个例子,图中有两个下采样,划分起三个阶段。那么第0次采样是1-1-1的层分配,第一次采样全部的candidate只要三个:1-1-2,1-2-1,2-1-1。每个采样得到的subnet将会被公平的进行若干次训练,评估出最好结构,标记为optimal-1。 这个时候运用NIR,第2次只采样与optimal-1有继承关系的下一层subnet,依然只有三个。事实上每一次采样数等于阶段数。算法步骤如下:

resnet 50 网络结构 resnet50网络结构如何设计_resnet 50 网络结构_05

算法的加速效果,首先从理论上来讲,一个阶段(group)数为n,层(layer)数为m的CNN,穷尽所有,层数搜索的搜索空间具体大小如下


层数搜索的搜索空间复杂度为 


 ,我们这种NIR神经网络结构关系引导的搜索,实际搜索空间复杂度为 


 ,为搜索踩了一脚油门。

本文在CIFAR-100上搭建了层数搜索数据集,在Tiny-ImageNet, ImageNet上进行了实验。

resnet 50 网络结构 resnet50网络结构如何设计_复杂度_06

具体的详情请见paper:

https://arxiv.org/abs/2002.12580 我们将层数搜索单独摘出来,更加存粹的探究神经网络结构之间的关系,并希望网络结构关系的思路,可以给NAS社区带来一些insight,进一步得到更加通用的高效NAS方案。 作者:知乎-孟让