【论文地址】Auto-Keras: An Efficient Neural Architecture Search System
一、背景知识
1、NASNet
NASNet学习的是完整网络中被堆叠、被重复使用的网络单元。为了便于将网络迁移到不同的数据集上,我们需要学习两种类型的网络块:
(1)Normal Cell:输出Feature Map和输入Feature Map的尺寸相同;
(2)Reduction Cell:输出Feature Map对输入Feature Map进行了一次降采样,在Reduction Cell中,对使用Input Feature作为输入的操作(卷积或者池化)会默认步长为2。
NASNet网络单元的计算分为5步:
- 从第h(i-1)个Feature Map或者第h(i)个Feature Map或者之前已经生成的网络块中选择一个Feature Map作为hidden layer A的输入,是学习到的网络单元,从中可以看到三种不同输入Feature Map的情况;
- 采用和1类似的方法为Hidden Layer B选择一个输入;
- 为1的Feature Map选择一个运算;
- 为2的Feature Map选择一个元素;
- 选择一个合并3,4得到的Feature Map的运算。
NASNet最大的贡献是解决了NAS无法应用到大数据集上的问题,它使用的策略是先在小数据集上学一个网络单元,然后在大数据集上堆叠更多的单元的形式来完成模型迁移的。
NASNet已经不再是一个dataset interest的网络了,因为其中大量的参数都是人为设定的,网络的搜索空间更倾向于密集连接的方式。这种人为设定参数的一个正面影响就是减小了强化学习的搜索空间,从而提高运算速度,在相同的硬件环境下,NASNet的速度要比NAS快7倍。
2、Network Morphism(网络态射)
我们提出了一种新颖的学习策略,称为网络态射, 它将父网络转变为子网络,从而实现快速的知识转移。 子网络能够立即获得父网络的性能,并且随着训练过程的进行,其性能将继续提高,这种策略允许针对任意非线性神经元以扩展模式的任何网络形态,包括深度,宽度,核大小和子网变形操作。
3、skip-connection(残差连接)
主要思想是将输出表述为输入和输入的一个非线性变换的线性叠加,使用一个非线性变化函数来描述一个网络的输入输出,即输入为x,输出为F(x),F通常包括了卷积,激活等操作。当我们强行将一个输入添加到函数的输出的时候,虽然我们仍然可以用G(x)来描述输入输出的关系,但是这个G(x)却可以明确的拆分为F(x)和x的线性叠加。所谓残差连接skip connection即G = F(x,WH) + X。
4、Gaussian process (GP)高斯过程
指随机变量的一个集合,其中任意有限个样本的线性组合都有一个联合高斯分布。一个高斯过程是由均值函数和协方差函数确定的。而高斯分布均值和协方差是向量和矩阵(即多维高斯分布的均值和方差是确定值)。
5、Euclidean space(欧氏空间)
在数学中欧几里德所研究的2维和3维空间的一般化。这个一般化把欧几里德对于距离、以及相关的概念长度和角度,转换成任意数维的坐标系。这是有限维、实和内积空间的“标准”例子。
欧氏空间是一个的特别的度量空间,它使得我们能够对其的拓扑性质,例如紧性加以调查。内积空间是对欧氏空间的一般化。内积空间和度量空间都在泛函分析中得到了探讨。设n是正整数,由n个实数构成的有序数组的全体组成的集合,称为n维点集或n维欧几里得空间,记作Rⁿ,即
6、Hungarian algorithm (Kuhn-Munkres algorithm) 匈牙利算法
是一种组合优化算法(combinatorial optimization algorithm),用于求解指派问题(assignment problem),算法时间复杂度为O(n3)。
匈牙利算法解决的问题一般有这样通俗的描述:有n个工作,需要指派给n个工人,每个工人完成每个工作的时间可能都不一样,给出一个算法,使得得到的指派结果总的时间最少。
7、Upper-confidence bound (UCB)上置信界
置信区间是指由样本统计量所构造的总体参数的估计区间,就是分别以统计量的置信上限和置信下限为上下界构成的区间。在统计学中,一个概率样本的置信区间(Confidence interval)是对这个样本的某个总体参数的区间估计,置信区间展现的是这个参数的真实值有一定概率落在测量结果的周围的程度,其给出的是被测量参数的测量值的可信程度,即前面所要求的“一个概率”。
8、 simulated annealing(SA)模拟退火
模拟退火算法是一种通用概率演化算法,用来在一个大的搜索空间内找出最优解。相比于二分、三分等算法,模拟退火更加注意整体的情况。
拿爬山做例子:我们要找到山脉的最高峰,但是我们只知道眼前的点,哪边是下降的,看不到远处的点是否上升,所以每次移动,我们随机选择一个方向。如果这个方向是上升的的(更优),那么就决定往那个方向走;如果这个方向是下降的(更差),那么“随机地接受”这个方向,接受就走,不接受就再随机一次。
二、全文翻译
摘要
神经架构搜索(NAS)在被提出时已经应用于自动调整深度神经网络,但是现在的搜索算法通常会受到十分昂贵的计算成本的影响,例如NASNet [41], PNAS [22] 。当改变神经架构时网络态射可以保持神经网络的功能,在搜索期间通过更有效地训练可以有助于神经架构搜索。在这篇论文中我们提出了一种新的框架能够使得贝叶斯优化指导网络态射进行高效的神经网络搜索。这个框架开发了一种神经网络内核和一种树型结构获取函数优化算法从而高效探索搜索空间。在现实世界参照数据集上进行了密集实验,用于证明开发框架在超越SOAT方法上性能更佳。此外,我们构建了一种基于该方法的名为Auto-Keras1的开源自动机器学习系统。该系统可以在CPU和GPU上并行运行,对不同GPU内存限制采用自适应的搜索策略。
关键词
Automated Machine Learning(自动机器学习),AutoML, Neural Architecture Search(神经架构搜索), Bayesian Optimization(贝叶斯优化), Network Morphism(网络态射)
1、介绍
自动机器学习(AutoML)成为一种非常重要的研究话题,在机器学习技术方面有着广泛的应用。AutoML的目标是使得拥有有限机器学习背景知识的人容易地使用机器学习模型,这些工作已经被用于自动化模型选择、自动化超参数调整等方面。在深度学习的背景下,神经架构搜索NAS的目标是为给定的学习任务和数据集寻找最佳的神经网络架构,它已成为AutoML中的一种高效的计算工具。不幸的是,现在的NAS算法在计算上通常是昂贵的。 NAS的时间复杂度是O(nt¯),n指的是在搜索过程中评估的神经架构的数量,t¯是用于评估n个神经网络中每个神经网络的平均时间代价。许多NAS方法例如深度强化学习[2, 30, 40, 41], 基于梯度的方法[26]和进化算法[10, 23, 31, 32, 34]都需要一个大的n值来达到良好的性能,此外,n个神经网络中每个神经网络的训练都是从0开始的,这是非常缓慢的。
在NAS中,网络态射的应用已经成为一项基础研究[6, 11]。这是一种改变神经网络体系但不破坏它本身功能特性的技术 [8, 36]。因此,我们能够使用网络态射操作将被训练的神经网络修正成一种的新架构,例如,插入一个层或者添加一个残差连接。 只有其中几次迭代需要进一步训练新的架构以期更好的效果。使用网络态射将减少NAS中平均训练时间t¯。基于网络态射的NAS方法最重要的问题是操作的选择,即从网络态射操作集中选择一个操作来将现有的体系结构转换为新的体系结构。但是基于网络态射的NAS方法并不是足够高效,它们要么需要大量的训练案例,要么在查找大型搜索空间中效率低下[11]。如何用态射进行高效的神经架构搜索N