在阅读本论文前,先了解遗传算法的基本操作:遗传算法详解(GA)(个人觉得很形象,很适合初学者)
通过设计一种算法,自动在神经网路架构搜索空间中搜索神经网络,该算法搜索的神经网络需具有较好的准确率,并且运行速度要较快。
论文通过对遗传算法中的锦标赛选择法(相应方法请查看:遗传算法-锦标赛选择法)进行改进,将其变为基于年龄的选择法,即aging evolution算法,使得遗传算法更加偏爱年轻个体。实验显示,在相同硬件条件上,该算法相比于强化学习与随机搜索,具有更快的搜索速度。
首先,我们必须得定义一个搜索空间,这个搜索空间含有所有可能搜索到的神经网络结构,由于搜索到的每个神经网络结构都需要通过训练确认准确率,太大的搜索空间会导致算法的运行时间很长,论文选择的搜索空间为NASNet Search space。
NASNet Search Space的网络结构如左边图的显示,该搜索空间固定了神经网络的总体结构,通过超参数N控制网络的深度,如中间的图所示,每个cell之间的连接采用残差结构,该搜索空间只搜索对应的Normal Cell与Reduction Cell的结构,企图找到最适合本任务的Normal Cell与Reduction Cell结构
每个Cell其实由多组操作(op)组成,例如池化、卷积操作等,关于cell的例子可以查看右图,紫色方块表示隐藏状态,其实就是特征图。一个cell的构造过程如下:
pairwise combination的操作如下
pairwise combination的例子可以查看右图中的虚线框部分,最后,所有未使用过的隐藏状态将concat在一起,例如图中的隐藏状态5和6
在NASNet Search Space中,所有的Normal Cell具有相同的结构,Normal Cell不会降低特征图的大小
在NASNet Search Space中,所有的Reduction Cell具有相同的结构,Reduction Cell的过后会使用步伐数为2的卷积,会降低特征图的大小
为什么要选择两个特征图(隐藏状态),对其进行op操作后相加呢?在某些情况下,这其实是一个残差结构,意味着在NASNet Search Space中进行搜索时,算法会自动探索如何添加残差结构,但是这种残差结构不一定就是何凯明大佬论文中所说的直接映射后相加,而是更加的灵活,可以是直接映射相加,也可以是施加了op操作相加,例如右图所示的0、1、3节点,就是经典的残差结构(0号节点比1号节点浅,1号节点通过avg操作得到一个新的特征图,设为temp,temp与比自己要浅的0号节点相加,就是一个经典的残差结构)
该神经网络结构含有两个超参数
该算法中的P、C、S的值自行指定
Aging evolution算法模拟了自然界中的物种繁衍的操作
演化操作具体步骤如下:
该演化过程的步骤如下:
具体的例子例子如下:
隐藏节点3与avg操作构成一个element,经过hidden state mutation操作后,avg操作的对象变为了隐藏节点4
该演化过程的步骤如下:
这两个演化操作其实可以探索定义的NASNet Search space,我们的目的是为了搜索Normal Cell与Reduction Cell的结构,一个Cell的结构由五对pairwise combination组成,一个pairwise combination需要解决下面两个问题:
而hidden state mutation解决了第一个问题,Op mutation解决了第二个问题,通过交替使用这两个演化操作,即可探索NASNet Search space中可能的神经网络结构
Op mutation需要随机选定一个用于替换原op操作的op操作,具体如下:
比对不同算法运行速度的指标:在相同硬件上生成20k个模型所需要的运行时间
结果:可以看到aging evolution的速度比RL和RS要快,并且探索到的模型准确率较高
这幅对比图没有将模型的计算成本显示出来
论文将FLOPS定义为前向传播中所需的总操作数,操作数越少越好(论文并未具体解释这里的操作数是指什么,应该是计算成本吧),与RL和RS训练好的模型的对比如下:
由此可以见,相比于RS,Aging Evolution具有更好的测试准确率,且两者模型的FLOPS近似,相比于RL,Aging Evolution具有更低的FLOPS,两者模型具有相似的测试准确率
值得注意的是,在ImageNet上训练的网络AmoebaNet-A的细胞结构是基于CIFAR-10上发现的,而不是在ImageNet上运行Aging Evolution算法,根据下表,可知AmoebaNet-A具有最高的准确率。
论文作者认为Aging Evolution有利于抵抗训练噪声,训练噪声是指某些模型由于运气好,达到了较高的准确率,这种准确率并不是由于网络架构好引起的,在锦标赛算法中,此类模型可能存在于整个算法运行过程中,留下大量后代,由于后代更多,算法会更加偏好于此类架构,从而减少对于搜索空间的充分探索,而在Aging Evolution中,模型不断更新换代,即使某一类架构由于运气好达到了较好的准确率,最终也会被淘汰,并且采样数S的存在意味着运气好的架构不一定就能留下后代。
由于种群更新换代的速度很快,只有让自己的后代不断保持较好的准确率,该类网络架构才能长期存在于种群之中,一定程度上抵抗训练噪声,即正则化。因此,Aging Evolution更加关注模型的架构,而不是模型本身,因为再高准确率的模型最终也会被淘汰
论文构造了一个Toy Search space,在该搜索空间上使用了Aging Evolution,最终取得了较好的结果,由此证明了上述猜测
论文没解释该算法为什么要在NASNet Search Space上进行搜索,关于NASNet Search Space需要自行阅读另一篇文献《 Learning transferable architectures for scalable image recognition》
另外自己对于该算法的收敛速度不是很自信,论文中并没有对该算法的实现公开具体的代码,公开的代码是Toy Search Space上的操作