写点什么

神经架构搜索研究指南,只看这一篇就够了

  • 2019-10-23
  • 本文字数:4832 字

    阅读完需:约 16 分钟

神经架构搜索研究指南,只看这一篇就够了

从训练到用不同的参数做实验,设计神经网络的过程是劳力密集型的,非常具有挑战性,而且常常很麻烦。但是想象一下,如果能够将这个过程实现自动化呢?将这种想象转变为现实,就是本指南的核心内容。

我们将探索一系列的研究论文,这些论文试图解决具有挑战性的自动化神经网络设计任务。在本指南中,我们假设读者尝试过使用 Keras 或 TensorFlow 等框架从头开始设计神经网络。

基于强化学习的神经结构搜索(2016:Neural Architecture Search with Reinforcement Learning

本文利用递归神经网络(RNN)生成神经网络的模型描述。为了提高 RNN 在验证集上的精度,作者对 RNN 进行了强化学习训练,该方法在 CIFAR-10 数据集上的错误率为 3.65。


本文提出的神经结构搜索是基于梯度的。本文提出的方法是基于以下考虑:神经网络的结构和连通性可以用变长串来描述。被称为控制器的神经网络用于生成这样的字符串。然后,字符串指定的子网络根据真实数据进行训练,并在验证集上得到初始的准确度度量。然后,使用这个准确度数据计算策略梯度,再用后者更新控制器。因此,具有较高准确度的结构可以得到较高的选中概率。


来源:https://arxiv.org/pdf/1611.01578.pdf


来源:https://arxiv.org/pdf/1611.01578.pdf


神经网络结构搜索中,该控制器用于生成神经网络的结构超参数。在下图中,控制器用于生成一个卷积神经网络。控制器预测滤波器高度、滤波器宽度和步长。预测由 softmax 分类器执行,然后作为输入,输入到下一个时间步。一旦控制器完成了生成结构的过程,带有这个结构的神经网络就会建立起来,并用它进行训练。


来源:https://arxiv.org/pdf/1611.01578.pdf


来源:https://arxiv.org/pdf/1611.01578.pdf


于子网络的训练需要花费数小时的时间,为了加快控制器的学习过程,作者采用了分布式训练和异步参数更新的方法。


来源:https://arxiv.org/pdf/1611.01578.pdf


来源:https://arxiv.org/pdf/1611.01578.pdf


该模型与其他模型的错误率对比如下:


来源:https://arxiv.org/pdf/1611.01578.pdf


来源:https://arxiv.org/pdf/1611.01578.pdf

可伸缩图像识别领域的可转移架构学习(2017:Learning Transferable Architectures for Scalable Image Recognition

在本文中,作者在一个小数据集上搜索结构上的一个组成模块,然后将该模块再转换到一个大数据集上。这是因为直接使用大型数据集将非常麻烦和耗时。


作者在 CIFAR-10 数据集上寻找最佳卷积层,并将其应用于 ImageNet 数据集。具体做法是将该层的更多副本堆叠在一起来实现的。每一层都有自己的参数,用于设计卷积架构。作者将这种体系结构称为 NASNet 架构。


他们还引入了正则化技术——ScheduledDropPath——来改进 NASNet 模型中的泛化性能。该方法的错误率为 2.4%。最大的 NASNet 模型平均精度达到 43.1%。


与前一篇文章一样,本文也使用了神经体系结构搜索(NAS)框架。本文的方案中,卷积网络的总体结构是人工预置好的。它们由重复几次的卷积单元组成。每个卷积层具有相同的结构,但权重不同。


该网络有两种类型的单元:返回相同维度特征图的卷积单元(Normal Cell),以及返回特征图的卷积单元(Reduction Cell)。后者特征图的高度和宽度在卷积输出时减少了一半。


来源:https://arxiv.org/pdf/1707.07012.pdf


来源:https://arxiv.org/pdf/1707.07012.pdf


在本文提出的搜索空间中,每个单元接收两个初始隐藏状态作为输入,这两个初始隐藏状态是前两层或输入图像中的两个单元的输出。在给定这两个初始隐藏状态的情况下,控制器 RNN 递归地预测卷积单元结构的其余部分。


来源:https://arxiv.org/pdf/1707.07012.pdf


来源:https://arxiv.org/pdf/1707.07012.pdf


下面是 CIFAR-10 数据集上神经结构搜索的性能:


来源:[https://arxiv.org/pdf/1707.07012.pdf]


来源:https://arxiv.org/pdf/1707.07012.pdf

参数共享的高效神经结构搜索(2018:Efficient Neural Architecture Search via Parameter Sharing

本文作者提出了一种称为高效神经结构搜索(ENAS)的方法。在这种方法中,控制器通过在大型计算图中搜索最优子图来发现神经网络结构。该控制器经过训练,可以选出在验证集上获得最佳准确度的子图。


然后训练所选子图对应的模型,使正则交叉熵损失最小化。参数通常在子模型之间共享,以便 ENAS 能够提供更好的性能。在 CIFAR-10 测试中,ENAS 的错误率为 2.89%,而神经结构搜索(NAS)的错误率为 2.65%。


本文强制所有子模型共享权值,以避免从零开始训练每个子模型达到收敛,从而提高了 NAS 的效率。


本文用单个有向无环图(DAG)表示 NAS 的搜索空间。通过引入一个具有 N 个节点的 DAG,设计出了递归单元,该单元表示局部计算,图中的边表示 N 个节点之间的信息流。


ENAS 的控制器是一个 RNN,它决定在 DAG 中的每个节点上执行哪些计算以及激活哪些边。控制器网络是一个包含 100 个隐藏单元的 LSTM。



来源:https://arxiv.org/pdf/1802.03268.pdf


来源:https://arxiv.org/pdf/1802.03268.pdf


在 ENAS 中,需要学习两组参数:控制器 LSTM 的参数和子模型的共享参数。在训练的第一阶段,对子模型的共享参数进行训练。在第二阶段,对控制器 LSTM 的参数进行训练。这两个阶段在 ENAS 的训练期间交替进行。


来源:https://arxiv.org/pdf/1802.03268.pdf


来源:https://arxiv.org/pdf/1802.03268.pdf


以下是 ENAS 在 CIFAR-10 数据集上的表现情况:


来源:https://arxiv.org/pdf/1802.03268.pdf


来源:https://arxiv.org/pdf/1802.03268.pdf

高效结构搜索的层次化表示(ICLR 2018:Hierarchical Representations for Efficient Architecture Search

该网络中提出的算法在 CIFAR-10 上实现了 3.6%的 top-1 误差,在 ImageNet 上实现了 20.3%的 top-1 误差。作者提出了一种描述神经网络结构的层次化表示方法,证明了用简单的随机搜索可以得到具有竞争力的图像分类网络结构,并提出了一种可扩展的进化搜索方法变体。


对于平面体系结构表示,他们研究了由单源、单汇聚(single-sink)计算图组成的神经网络体系结构家族,该计算图将源处的输入转换为汇聚处的输出。图中的每个节点都对应一个特征图,每个有向边都和某个操作关联,比如池化操作或者卷积操作。此操作转换输入节点中的特征图,并将其传递给输出节点。


来源:https://arxiv.org/abs/1711.00436


来源:https://arxiv.org/abs/1711.00436


对于层次化结构,将在不同层次上有若干个不同的 motifs。在较高层次的 motifs 构建过程中,较低层次的 motifs 被作为构建模组。


来源:https://arxiv.org/abs/1711.00436


来源:https://arxiv.org/abs/1711.00436


这是 CIFAR-10 测试集中不同模型的错误率:


渐进神经结构搜索(ECCV 2018:Progressive Neural Architecture Search

该方法采用基于序列模型的优化策略(SMBO)学习卷积神经网络(CNNs)的结构。本文基于神经结构搜索(NAS)方法。


本文中,搜索算法的任务是识别一个好的卷积单元,而不是一个完整的 CNN。每个单元格包含 B 个块,每个块是应用于两个输入数据的组合运算符。每个输入都可以在组合之前进行转换——例如,通过卷积进行转换。然后根据训练集的大小和最终 CNN 所要求的运行时间,决定叠加起来的单元的数量。


来源:https://arxiv.org/abs/1712.00559


来源:https://arxiv.org/abs/1712.00559


通过使用步长为 1 或步长为 2 的基本单元叠加预定数量的副本,可以将单元叠加转换为 CNN,如上图所示。然后,在步长为 2 的单元之间的步长为 1 的单元数量,调整为最多可以有 N 个。在网络的顶层引入了平均池化和 softmax 分类层。


下图显示了模型在 CIFAR 测试集上的性能:


Auto-Keras:高效的神经结构搜索系统(2018:Auto-Keras: An Efficient Neural Architecture Search System

本文提出了一个框架,使用贝叶斯优化引导网络形变,以提升 NAS 的效率。基于他们的方法,作者构建了一个名为 Auto-Keras 的开源 AutoML 系统。


该方法中,网络的主要组成模块,是在贝叶斯优化算法的指导下,通过神经结构的形变来寻找搜索空间。NAS 空间不是欧氏空间,因此作者设计了一个神经网络核函数来解决这一问题。核函数是将一个神经结构变形为另一个神经结构的编辑距离。


来源:https://arxiv.org/pdf/1806.10282.pdf


来源:https://arxiv.org/pdf/1806.10282.pdf


利用贝叶斯优化来指导网络形态的第二个挑战是获取函数的优化。这些方法不适用于网络形态的树结构的搜索。通过优化树结构空间的获取函数,解决了这一难题。置信度上界(UCB)被选择作为获取函数。


该体系结构的搜索模块是包含贝叶斯优化器和高斯过程的模块。搜索算法在 CPU 上运行,模型训练器模块在 GPU 上进行计算。


该模块在分离的进程中用训练数据训练神经网络,以实现并行化。图模块处理神经网络的计算图,并由搜索模块控制,进行网络形态学操作。模型存储是一个包含经过训练的模型的池子。由于这些模型很大,所以它们存储在存储设备上。



下面是该模型与其他模型在不同数据集上的性能比较:


基于贝叶斯优化和最优传输的神经结构搜索(2018:Neural Architecture Search with Bayesian Optimisation and Optimal Transport

这篇论文提出了一种基于高斯过程(贝叶斯优化,即 BO)的神经结构搜索框架 NASBOT。这是通过在神经网络体系结构的空间中开发一个距离度量来实现的,该距离度量可以通过最优传输程序来计算。


作者提出了一种神经网络结构的(伪)距离,称为 OTMANN(神经网络结构的最优传输度量),可以通过最优传输程序进行快速计算。他们还开发了一个 BO 框架来优化神经网络结构上的函数,称为 NASBOT(使用贝叶斯优化和最优传输的神经结构搜索)。


为了实现 BO 方案,本文提出了一种神经网络结构的核函数,并给出了一种优化神经网络结构获取函数的方法,它采用进化算法对获取函数进行优化。


这个方法有一个初始的网络池,并计算这些网络上的获取函数。然后该网络池的一组 Nmut 个突变被生成出来。首先要做的就是从被评估的网络集合中随机选择 Nmut 个候选对象,这样那些具有较高的函数值的网络更有可能被选中。然后对每个候选对象进行修改,以生成一个新的体系结构。


可以通过增加或减少一个层中的计算单元数量、添加或删除层,或更改现有层的连接结构来更改体系结构。


最后一步是评估这些 Nmut 突变的获取函数,将其添加到初始池中,并重复指定的次数。在实验中,作者使用 NASBOT 来优化获取。通过实验,他们得出结论,NASBOT 的性能优于用于优化采集的进化算法。


来源:https://arxiv.org/abs/1802.07191


来源:https://arxiv.org/abs/1802.07191


与其他模型相比,NASBOT 的性能如下图所示:


SNAS:随机神经结构搜索(ICLR 2019:SNAS: Stochastic Neural Architecture Search

这篇论文的作者提出了随机神经结构搜索(SNAS)。SNAS 是 NAS 的端到端解决方案,在同一轮的反向传播中同时训练神经算子参数和体系结构分布参数。在此过程中,它维护了 NAS 流程的完整性和可微性。


作者将 NAS 重新表述为单元中搜索空间的联合分布参数的优化问题。搜索梯度被用于,利用梯度信息进行泛化的可微损失的体系结构搜索。这种搜索梯度与基于增强学习的 NAS 优化了相同的目标,但为结构决策分配分数时效率更高。


如下所示,搜索空间使用一个有向无环图(DAG)表示,称为父图。在图中,节点 xi 代表隐式表示。边(i, j)表示要在节点之间选择的信息流和操作。


来源:https://arxiv.org/pdf/1812.09926.pdf


来源:https://arxiv.org/pdf/1812.09926.pdf


以下是 CIFAR-10 上 SNAS 和最先进的图像分类器的分类错误:


DARTS:可微结构搜索(ICLR 2019:DARTS: Differentiable Architecture Search

这篇论文以可微的方式构造任务,解决了结构搜索的可伸缩性问题。


本文没有在一组离散的候选结构上进行搜索,而是将搜索空间放宽为连续的。因此,可以通过梯度下降,对体系结构的验证集性能进行优化。基于梯度优化的数据效率提升,使得 DARTS 能够使用更少的计算资源获得出色的性能。该模型的性能也优于 ENAS。DARTS 既适用于卷积网络,也适用于递归网络。


作者寻找一种计算单元作为最终架构的构建模块。通过递归连接,学习单元可以被堆叠成卷积网络或递归网络。一个单元是由 N 个节点的有序序列组成的有向无环图。每个节点都是一个隐式的表示——例如一个特征图——并且每条有向边都与转换节点的一些操作相关联。一个单元格被假定为有两个输入节点和一个输出节点。卷积单元的输入节点定义为前两层的单元输出。最近文献里提到的卷积单元里,它们的输入节点被定义为当前步骤的输入和上一步所携带的状态。对所有中间节点应用缩减操作(例如 concatenation 操作)来生成输出单元。


来源:https://arxiv.org/pdf/1806.09055.pdf


来源:https://arxiv.org/pdf/1806.09055.pdf


该模型与 CIFAR-10 上最先进的图像分类器的比较如下:



原文链接:


https://heartbeat.fritz.ai/research-guide-for-neural-architecture-search-b250c5b1b2e5


2019-10-23 08:075563

评论

发布
暂无评论
发现更多内容

用开源github,还是咱中国自己的代码托管平台云效?

阿里云云效

GitHub 云计算 阿里云 代码管理 代码托管

uniapp 和 HTML5 区别

CRMEB

LinkedHashMap 源码分析-访问最少删除策略

zarmnosaj

5月月更

PolarDB-X迎来开源后首个重大版本升级,2.1版本新增5大特色功能

阿里云数据库开源

数据库 阿里云 开源 国产数据库 PolarDB-X

网络空间测绘国内外发展及现状

郑州埃文科技

网络安全 IP地址 网络空间测绘技术

月薪 30K 以上的程序员都在学啥?附书单合集

C++后台开发

后端开发 Linux服务器开发 C++后台开发 Linux后台开发 后端开发书籍

你会用Apifox写断言吗?

Liam

测试 Postman 自动化测试 测试工具 测试自动化

深度解析:DAO的7种常见投票机制

TinTinLand

阿里云云原生一体化数仓入选 2022数博会“十佳大数据案例”

阿里云大数据AI技术

数据挖掘 大数据 分布式计算 数据处理 MaxCompute

在RPA立项阶段,银行需要做哪三件事?

易观分析

银行

EAM与ERP有什么区别?

低代码小观

资产管理 企业管理系统 ERP CRM系统 ERP系统

Apipost 6.0.4版本 支持离线使用

Xd

后端 接口测试 API

linux之xargs使用技巧

入门小站

Linux

未来3年,远程办公或成普遍现象,如何提高远程办公效率?

WorkPlus

NVIDIA安培架构下MIG技术分析

天翼云开发者社区

直播预告 | PolarDB-X 动手实践系列——基于 Prometheus + Grafana 的 PolarDB-X 监控体系

阿里云数据库开源

数据库 阿里云 开源 PolarDB-X 教学

Apipost 多人多角色实时协作 爆赞!!!

Xd

数据库 后端 接口测试 API

在线二进制转文本字符工具

入门小站

工具

乌卡时代来临,企业供应链管理体系的应对策略

数商云

数字化转型 供应链

10分钟弄懂云原生网络功能,快来瞧瞧!

VoltDB

云原生 云原生网络 网络功能

一个轻量的数据库数据告警器

山河已无恙

Java 数据监控

leetcode 34. Find First and Last Position of Element in Sorted Array 在排序数组中查找元素的第一个和最后一个位置(中等)

okokabcd

LeetCode 查找

喜讯|旺链科技成为TBI数字藏品项目组首批成员

旺链科技

区块链 产业区块链 数字藏品

一个关于SDWAN单臂部署方案验证的实验

天翼云开发者社区

网络

照亮旷野的,是少年开发者眼中的炬火

脑极体

Neo生态| Polaris Launchpad 黑客松评审现已启动

TinTinLand

他做了跟世界首富同样的选择|ONES 人物

万事ONES

如何挑选文档管理软件?

小炮

文档管理

分享ApiPost的个人体验感受

Xd

后端 API

两分钟带你体验ApiPost的魅力!

Xd

自动化 接口测试 API

在线HTML转PHP工具

入门小站

工具

神经架构搜索研究指南,只看这一篇就够了_AI&大模型_Derrick Mwiti_InfoQ精选文章