问题定义
现代的深度神经网络有时会包含多种类型的层,而且这些层不止一个。Skip connections和子模块方法也被用来促进模型的收敛,它们对可能形成的模型体系结构的空间没有限制。目前大多数的深度神经网络结构都是根据人类经验建立起来的,这种方式需要一个漫长而繁琐的试错过程。NAS试图在不需要人工干预的情况下能够针对特定深度学习问题检测出有效架构。
网络架构和超参数优化的问题,有以下的特点:
-
评价函数未知,是一个黑箱优化问题,因为评价往往是在 unseen dataset 上进行评价;
-
非线性;
-
非凸;
-
混合优化,既有离散空间,又有连续空间;
-
一次优化结果的评价非常耗时,大型的深度学习模型参数数以亿计,运行一次结果需要几周时间;
-
在某些应用场景中,存在多个目标。比如:移动端的模型结构优化,既希望得到尽量高的准确率,又希望有非常好的模型计算效率。
搜索空间
搜索空间定义了优化问题的变量,网络结构和超参数的变量定义有所不同,不同的变量规模对于算法的难度来说也不尽相同。
早期很多工作都是用以遗传算法为代表的进化算法对神经网络的超参数和权重进行优化,因为当时的神经网络只有几层,每层十几个神经元,也不存在复杂的网络架构,参数很有限,可直接进行优化。而深度学习模型一方面有着复杂的网络结构,另一方面权重参数通常都以百万