深度学习在很多领域都取得了巨大的成功,比如图像分类、目标检测、自然语言处理等。自从2012年AlexNet在ImageNet比赛中超越了所有传统的机器学习方法夺得了冠军,CNN在图像分类中就占据了统治地位,随后越来越多的深度神经网络被提出,比如VGG、GoogLeNet等。直到2015,何凯明提出ResNet网络,超过了人类的识别精度(人类top-5错误率大约为5.1%[1]),将top-5错误率降到了3.57%[2]。2017年DenseNet[3]在精度上有了进一步的提升。不管是AlexNet还是DenseNet,都是有着丰富神经网络和图像处理知识的专家们针对特定的数据集,在反反复复的试错中设计出的网络结构。随着数据集的改变,有时网络结构还需要作出相应的修改。这需要大量的时间、精力和丰富的计算资源的和专业知识,不是任何一个普通的用户能够满足并做到的。为了解决这个问题,AutoML浮出了水面。AutoML能够将自动化和机器学习结合在一起,通过网络结构搜索(NAS)得到最优的网络结构,然后通过基于梯度下降的训练过程,学习得到网络最优的权重。NAS简化了神经网络的设计过程,降低了使用门槛,由此得到的网络,有的可以媲美人类专家,甚至得到一些新型的网络结构。
1、什么是神经结构搜索
NAS是指在一个预先定义好的搜索空间里,按照指定的策略搜索一个网络结构A。把该网络A用指定的性能评估策略进行评估,然后返回这个网络的评估性能给搜索策略,如此往复,最终找到一个性能优异的网络。NAS的过程如下图所示[4]。
从数学的角度,NAS可以建模为公式(1)表示的优化问题[6]。Α表示神经网络的搜索空间,Λ表示在训练数据dtrain上的使得损失函数最小的模型(包括模型结构和参数)。NAS就是要找到一个结构Α*,在校验数据集