使用来自google Research的NASBench进行神经架构搜索 - 我们是否可以自动设计网络架构,而不是依赖专家经验和知识?
动机
神经结构架构搜索(NAS)的最新进展需要巨大的计算资源,这使得难以重现实验并对无法进行大规模计算的研究人员施加限制。神经架构搜索(NAS)被引入用于自动化人工神经网络(ANN)的设计。
Jeff Dean的幻灯片显示神经架构搜索可以尝试20种不同的模型来找到最准确的
此文的结构如下:
神经架构搜索(NAS)应用程序
NASBench-101的演变
在图像分类领域,研究已经产生了许多将神经网络层组合成独特架构的方法,例如初始模块、残差连接或密集连接。这使得研究更多地研究神经架构搜索(NAS),并发现新架构作为一个优化问题,不仅是图像分类领域,还有其他领域,如序列建模。
由于大量的训练时间和不同的搜索空间的不同训练程序,NASBench-101,谷歌研究引入了第一个NAS架构数据集,以满足上述目的
NASBench通常由一个表格数据集组成,该数据集将卷积神经网络架构映射到他们在CIFAR-10上经过训练和评估的性能。所有网络共享相同的网络“骨架”,神经网络操作的唯一变化以任意图形结构连接。下面的3个数字从左到右表示如下:
体系架构
NAS旨在使用HPO(超参数优化)找到最佳神经网络架构,该架构涉及通过执行粗网格搜索来找到最佳的鲁棒训练超参数集。 HPO通过调整各种数值神经网络训练参数(例如,学习速率)以及分类选择(例如,优化器类型)来操作以优化训练过程。
NASBench使用元架构作为其设计的一部分,以评估应使用多少个单元以及如何连接它们以构建实际模型。下图是NAS内置手工制作架构的示例,例如跳过连接,允许构建复杂的多分支网络。该图由以下组成:左 - >两个不同的单元,例如,正常单元(顶部)和缩小单元(底部),右 - >通过顺序堆叠单元而构建的架构。细胞也可以以更复杂的方式组合,例如在多分支空间中,只需要通过简单地用单元格替换层即可。
局部性
NASBench展示了局部性,通过局部性,、“接近”的体系架构往往具有类似性能指标的属性。 “接近度”是根据编辑距离来定义的:将一个体系结构转换为另一个体系结构所需的最小更改次数;其中一个更改需要在顶点或边的存在/不存在处翻转操作。局部性也通过随机游走自相关(RWA)来测量,RWA定义为当我们在空间中进行长距离随机变化时所访问的点的精度的自相关。 RWA在较低的距离上显示出较高的相关性高,表明了局部性。当距离超过6时,这种相关性与噪声就无法区分了。
评估指标
神经网络的结构和连通性通常可以由可变长度字符串指定,其中可以使用递归神经网络(RNN)控制器来生成这样的字符串。在实际数据上训练由字符串指定的网络 - “子网络” - 将导致验证集的准确性。
使用此准确度作为奖励信号,我们可以计算策略梯度以更新控制器。因此,在下一次迭代中,控制器将为具有高精度的架构提供更高的概率。这有助于控制器随着时间的推移学习和改进其搜索,从而使架构尽可能快地运行。
可以通过训练准确度、验证准确度、测试准确度,以秒为单位的训练时间和可训练模型参数的数量来测量改进。
实施
NASBench - Google Research
Sample Response:
使用Pytorch进行高效的神经网络搜索
结论
麻省理工学院的研究人员开发了NAS算法,目的是直接学习目标硬件平台的专用神经网络,在大型数据集上运行仅需200个小时。 NAS使用网络嵌入将现有网络编码为可训练的嵌入向量。
嵌入有助于控制器网络生成目标网络的变换。多目标奖励功能考虑通过策略梯度与控制器网络预先训练或共同训练的网络准确性、计算资源和训练时间。由精确网络和训练时间网络评估所得到的网络。结果由奖励引擎组合,将其输出传递回控制器网络。
由Google研究开发的NAS-Bench-101代表了神经架构搜索的基准,具有以下特征: