神经架构搜索

Neural Architecture Search

神经架构搜索

简介

ResNet、Inception、DenseNet 自动设计神经网络的技术,通过算法根据样本集自动设计出高性能的网络结构 有效降低神经网络的使用和实现成本

原理

搜索空间、搜索策略、性能评估策略
给定一个称为搜索空间的候选神经网络结构集合。
搜索空间,搜索策略,性能评估策略是NAS算法的核心要素。

搜索空间

可以搜索的神经网络结构的集合,即解的空间

搜索策略

如何在搜索空间中寻找最优网络结构

性能评估策略

如何评估搜索出的网络结构的性能

搜索空间

搜索空间定义了NAS算法可以搜索的神经网络的类型,及如何描述神经网络结构。

  • 网络的拓扑结构
  • 每个层类型 · 每个层内部的超参数:卷积核数量、通道数、高度、宽度、水平方向步长、垂直方向步长
层/运算超参数
卷积卷积核数量
卷积核通道数
卷积核宽度
卷积核高度
水平方向步长
垂直方向步长
池化池化核高度
池化核宽度
水平方向步长
垂直方向步长
全连接神经元数量
激活激活
相加
拼接

搜索空间进行限定或简化:

  • 在某些NAS实现中会把网络切分成基本单元(cell,或block),通过这些单元的堆叠形成更复杂的网络
  • 基本单元由多个节点(神经网络的层)组成,在整个网络中重复出现多次

网络结构搜索是一个离散优化问题,定义结构的参数数量一般比较大,因此属于高维优化问题。

搜索策略

如何找到最优的网络结构,是一个迭代优化过程,本质是超参数优化问题
随机搜索、贝叶斯优化、遗传算法、强化学习、基于梯度的算法

强化学习

称为控制器的循环神经网络生成描述子网络结构的串,确定子网络;训练集上训练子网络,验证集计算其精度值。以精度值作为反馈信号,采用策略梯度算法更新控制器网络的参数。迭代时,控制器会以给予更高精度值的神经网络以更高的概率值,确保策略函数能够输出最优网络结构。
控制器每一时刻输出包括:卷积核数量、卷积核高度、卷积核宽度、卷积操作水平方向步长、垂直方向步长。
卷积核数量:[24, 36, 48, 64]
卷积核高度核宽度:[1, 3, 5, 7]
卷积步长:可以固定为1,或按照[1, 2, 3]取值

NASNet:预测出基本块(building block);控制器预测的是基本两种网络单元,为普通单元(Normal Cell)和简约单元(Reduction Cell)。前者不改变输入图像的尺寸,后者将图像的高度和宽度减半。搜索整个神经网络的任务被简化为搜索最优基本块结构。
ENAS(Efficient Neural Architecture Search)的算法,通过各个网络之间共享权重来减少计算量。由于各个子网络共享权重,因此每个子网络不需要从头开始训练,极大提高搜索速度。
ENAS将NAS看做是寻找最优子图的问题。

遗传算法

初始化、选择、变异

过程

AutoML

基于强化学习的方法(比如NAS)和基于可微分神经网络结构搜索的方法(如DARTS),前者效果更好,但需要更大的规模的计算资源。

NAS结构

RNN控制器,控制器采样得到某一个神经网络结构A,在该神经网络结构下训练数据并得到相应的验证集上的准确率R,使用该准确率表征本次搜索得到的神经网络结构的好坏,进而将此作为信号来训练RNN控制器。

生成深度卷积神经网络结构

RNN控制器每五步输出对应一层卷积神经网络;当生成神经网络的深度超过预先设置的值之后就停止输出。接下来用生成的神经网络结构训练神经网络,记录该神经网络在验证集上的误差。利用误差更新RNN控制器的权重。

用强化学习来训练控制器

权重更新方法:RNN控制器每一步吐出的结果看作是强化学习的行动,对应的状态就是控制器到第t步为止生成的网络结构。在一个轨迹结束之后会给出一个sparse reward/cost,即神经网络结果对应的验证集上损失,这样就可以使用强化学习更新RNN控制器权重。

异步并行训练

策略梯度方法可以并行和异步更新网络权重从而加速训练(如A3C)

生成带有skip connection的卷积神经网络

把RNN的输出结构做了相应的规定,可以扩展生成learning rate、batchnorm、pooling等结构。

ENAS

efficiency neural architecture search
把整个网络用固定个节点(包含神经网络参数)和相应的连边(包含相应的非线性函数种类)表示,RNN控制器输出一个DAG(有向无环图)和相应的连边性质,从而构成相应的神经网络结构。
同时学习子模型权重,不需要每次产生一个新的神经网络权重之后去重新训练一下整体的神经网络权重。
每轮迭代分为两个步骤:训练各个子模型权重、训练控制器
子模型权重的训练是根据当前控制器,采样得到一个网络结构,利用该网络结构在数据集上的梯度,更新自己的权重。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 基于遗传算法的神经架构搜索(Genetic Algorithm for Neural Architecture Search,简称GANAS)是一种通过遗传算法来优化神经网络结构的方法。GANAS 的主要思想是将神经网络的结构表示成一个染色体,然后通过基因的交叉和变异来产生新的神经网络结构,最终选择最优的神经网络结构作为最终结果。 GANAS 的具体实现方法包括以下几个步骤: 1. 确定神经网络结构的搜索空间,包括网络层数、每层的神经元数、激活函数等。 2. 将神经网络结构表示成一个染色体,染色体的每个基因表示神经网络中的一个结构参数。 3. 通过基因交叉和变异来产生新的神经网络结构,交叉和变异的过程中需要保证新的结构能够满足预定义的约束条件。 4. 使用遗传算法来评估每个新的神经网络结构的性能,并选择性能最好的结构作为最终结果。 GANAS 的优点是可以自动搜索最优的神经网络结构,不需要手动设计网络结构,可以节省大量的时间和人力。但是,GANAS 的计算复杂度很高,需要大量的计算资源和时间来搜索最优的神经网络结构。 ### 回答2: 基于遗传算法的神经架构搜索是一种通过遗传算法来搜索最优神经网络结构的方法。神经架构搜索是深度学习中的一个重要研究方向,它旨在自动发现适合特定任务的最优神经网络结构,从而提高模型的准确性和性能。传统的神经网络结构往往需要大量的人工设计和调整,而基于遗传算法的神经架构搜索则可以通过进化算法自动地搜索和优化神经网络结构。 遗传算法是一种模拟自然进化过程的算法,它模拟了基因的遗传、变异和适应度选择过程。在基于遗传算法的神经架构搜索中,首先通过一定的编码方式将神经网络结构表示为染色体,然后使用遗传算法来搜索最优的染色体。每个染色体代表一个神经网络结构,包括网络层数、节点连接方式、激活函数等信息。 在搜索过程中,通过计算神经网络结构的性能指标(如准确率、损失函数等),评估每个染色体的适应度。然后,根据适应度对染色体进行选择、交叉和变异操作,生成下一代染色体。通过多次迭代,不断优化染色体的适应度,最终得到最优的神经网络结构。 基于遗传算法的神经架构搜索具有一定的优势。首先,它能够自动化地搜索神经网络结构,减轻了人工设计的负担。其次,遗传算法能够全局搜索,有助于发现更加优秀的神经网络结构。另外,该方法还具有一定的鲁棒性,能够应对数据和任务的变化。 然而,基于遗传算法的神经架构搜索也存在一些挑战。首先,搜索空间庞大,需要大量的计算资源和时间。其次,搜索结果不一定能够取得最好的性能,往往需要人工进行后续的调整和优化。此外,神经网络结构的解释性较差,不易理解其中的内在机制。因此,在实际应用中,需要综合考虑时间、计算资源和性能等因素,选择适合的搜索方法和策略。 ### 回答3: 基于遗传算法的神经架构搜索是指利用遗传算法来搜索最优的神经网络架构或设计。神经网络是一种模仿人脑神经元连接方式的复杂数学模型,它在许多机器学习和人工智能应用中具有重要作用。 在神经架构搜索中,遗传算法被用来生成、变异和选择神经网络的不同架构。首先,通过随机生成一组初始神经网络架构,每个架构都有不同的层数、神经元数量和连接方式。然后,用一种适应度函数评估每个神经网络的性能。适应度函数可以根据具体问题来设计,常用的评估标准有准确率、损失函数、计算效率等。 接下来,根据适应度评估结果,采用遗传算法的操作来改进神经网络架构。首先,选择适应度高的神经网络作为优秀个体,将其保留在下一代中,以确保优秀基因的传递。然后,进行交叉操作,将不同神经网络架构的部分特征进行混合,生成新的神经网络架构。最后,通过变异操作,在新一代中引入一些随机性,以保持探索性。 这个搜索过程会不断进行多代,直到达到停止条件。一般来说,停止条件可以是达到预设的最大迭代次数,或者当神经网络的性能已经达到可接受的阈值时。 基于遗传算法的神经架构搜索具有以下优点:可以自动搜索到最优的神经网络架构,无需人工设计;具备较强的探索性,可以在大量可能的神经网络结构中进行搜索,提高了搜索空间的覆盖率;适用于各种复杂的机器学习和人工智能问题。 总之,基于遗传算法的神经架构搜索是一种有效的方法,可以自动找到最佳的神经网络架构,提高模型的性能和泛化能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值