这是一篇由何凯明团队提出的AutoML论文,之前其他的NAS论文大部分将重点放在搜索算法上,而Randomly Wired则通过分析告诉大家,在当前的NAS研究上,人工设计的搜索空间的先验知识很重要,一个好的网络生成器就算使用随机算法最后也能得到与其他NAS算法相媲美的训练结果。
网络生成器
论文中将网络生成器(Network Generator)定义为是从参数空间 θ \theta θ到网络架构 N N N的一个映射关系,以ResNet为例,这个 θ \theta θ参数可以是stage、block的个数,或者是深度、宽度和卷积核大小等。在NAS研究中,网络生成器通常不是参数到架构一对一的映射,还会有一个随机性的参数( s s s)在里面,所以又叫做随机网络生成器 g ( θ , s ) g(\theta, s) g(θ,s)。
论文接下来提到了NASNet中的LSTM其实就是随机生成器的一种方法,通过LSTM去预测网络架构参数的分布,再通过随机种子去采样出一个样本。当然LSTM只是生成器的一部分,还要加上额外的手工设计规则最后才能形成一个有向无环图(DAG)的网络架构。在NASNet里面依赖的手工设计规则有:
- 只搜索叫做Cell的子图,Cell的输入是前两个Cell的输出
- 每个Cell有5个node,每个node与前面的某两个node相连
- Cell里面没有输出特征的node最后会衔接在一起,形成Cell的输出
从可能性角度来看,Cell空间的可能性被手工设计规则严格限制了,远远未遍历到所有的网络情况。所以,当前的NAS方法其实是有很强的先验依赖,可以认为是搜索算法的元优化。
随机连接网络
作者将随机连接网络定义为通过不同人工经验随机图生成的网络模型。通用图的定义上仍需要手工设计,而且在设计上参考了NasNet和FBNet的方法,在每一个stage阶段(以分辨率为准)会定义一个随机图,这个随机图是由多个node和之间的连接(edge)构成的。整体的网络设计如表1所示。
表1. Random Wired的整体网络结构设计
表中的整体结构与ResNet相似,不同的是每个stage使用随机连接图(random wiring)代替了BottleNeck模块。表中N表示随机连接图中Node的个数(ImageNet实验中为32),C表示这个stage的基础通道数(小模型为78,普通模型为109或者154)。
随机连接图里面最重要的两个概念分别是Edge operation(边)和Node operation(节点)。边表示的是不同Node之间的连接,也就是特征信息的传递关系;节点表示的输入特征和输出特征之间的运算操作方式,节点的具体操作如图1所示。
图1中的淡蓝色圆圈内表示的就是节点。这个节点有三条输入边(具体情况不一定是三条,这里是示例),这三个输入边先做加权和后,送入conv的操作,这里的conv表示的是ReLU+卷积+BN(文中的卷积是 3 × 3 3\times 3 3×3可分离卷积),在完成conv操作后,复制多份特征作为输出,连接到不同的其他节点。
图1. Node的结构设计
此外,每个stage的随机图还增加了一个额外的输入节点和输出节点。额外输入节点负责将输入特征拷贝送到每个原本的输入节点,额外输出节点将原本的输出节点特征取平均值(不是加权平均)。在每个stage开始阶段,如果分辨率减半或通道数翻倍,则需要在每个原本的输入节点上将卷积操作的stride设成2,输出channel乘以2。
随机图这样设计有三个好处:
- 节点的输入为加权和,目的是为了防止在过多连接的情况下、特征衔接导致计算量过大;
- 除了每个stage转变的开始阶段,节点的输入和输出的channel保持不变,这样可以让每个stage阶段的节点自由连接组合的同时,保证计算量几乎不变;
- 网络每个stage的计算量与Node的个数几乎成正比例,与边的连接无关。
随机图模型
文中简单介绍了三种随机图生成模型,分别是ER、BA和WS。
- ER:有N个节点,任意两个节点之间都有一定的概率P连接,每条边的连接概率都是独立的(有可能会无法形成完整的有向无环图图)。
- BA:先初始化M个节点,后面每增加一个节点,都会选取前面的M个节点进行连接,最后总共会有 M ( N ? M ) M(N-M) M(N?M)条边。
- WS:N个节点形成一个环,每个节点和两边附近的 K / 2 K/2 K/2个节点连接,然后按顺时针方向,每个节点和接下来的 K / 2 K/2 K/2个节点按照一定概率P决定是否要重新连接。
实验结果
作者通过三种随机图生成模型在不同参数下各自产生多个随机网络(文中取5个),计算精度时采用的是取平均的方法来表示这个随机图模型的好坏,而不是挑选最好的模型。以ImageNet数据集为实验对象,统计三种不同图模型在不同参数条件下的准确率,如图2所示。
图2. 三种随机图生成的网络在ImageNet上的实验结果
从图中可以看出,ER、BA和WS的最好平均模型的准确率都超过了73%,其中WS在 K = 4 K=4 K=4、 P = 0.75 P=0.75 P=0.75的参数下达到了最好水平73.8%。
作者又对这个WS(4, 0.75)模型生成的网络进行了更多epoch(250)的训练,训练条件参考了其他的NAS论文,得到了不同计算量等级下(小、中、大)的实验结果以及和其他方法的对比,分别如表2、表3和表4所示。从这些表中可以看出,在小模型和常规模型上,RandWire网络相比其他手工设计网络和大部分NAS算法,达到了相当或者更好的结果,但是在大模型上或者与最好的NAS方法相比,精度还有明显的差距。
表2. 小计算量的ImageNet实验结果和对比
表3. 常规计算量的ImageNet实验结果和对比
表4. 大计算量(C=154,输入分辨率为320)的ImageNet实验结果和对比
在分类模型预训练的基础上,RandWire模型还用COCO检测数据集进行fine-tune,相比ResNet和ResNeXt的backbone,检测精度具有明显的优势,如表5所示。
表5. RandWire网络在COCO数据集上的实验结果