DARTS学习笔记
作者:互联网
传统的NAS是一种基于离散空间上的黑盒优化过程:
- NAS:只靠神经网络搜索出来的网络,不训练,不调参,就能直接完成任务,这样的网络叫做WANN,权重不可知神经网络。
通俗来讲:NAS就是用神经网络设计神经网络,通常使用强化学习或者进化算法来设计新的神经网络。
- NAS方法的维度一般有三个
- 搜索空间:定义了NAS算法可以搜索的神经网络类型,同时也定义了如何描述神经网络结构。
- 神经网络类型:
- 感知器:单层神经网络,只包含输入层和输出层,没有隐藏层,接受每个结点的加权 使用激活函数进行分类。
- 前馈神经网络:这一层的感知器与下一层的每个节点相连。
应用:数据压缩,模式识别,计算机视觉,语音识别,手写字符识别。 - 循环神经网络(Recurrent Neural Network (RNN)):是前馈神经网络的一种改进形式,隐藏层中的每个神经元接受特定时间延迟的输入,
使用这种神经网络,我们需要在当前的迭代中访问之前的信息。
例如,当我们要预测下一个单词的时候,需要知道上一个单词。循环神经网络可以处理输入并跨时区共享任意长度和权重。
这种神经网络的问题是速度慢,不能考虑未来的输入,无法记住很久之前的信息。
应用:机器翻译,时间序列预测,语音识别合成,节奏学习,音乐创作。 - 卷积神经网络(Convolutional Neural Network (CNN)):卷积神经网络包含了一个由卷积层和子采样层构成的特征提取器。
同一个特征平面的神经元共享权值,这里的共享权值就是卷积核,卷积核一般是随机小数矩阵形式,在网络训练的过程中取得合适的权值。
- 神经网络类型:
- 搜索策略:搜索算法通常是一个迭代过程,定义了使用怎样的算法可以快速、准确找到最优的网络结构参数配置。常见的搜索方法包括:随机搜索、贝叶斯优化、进化算法、强化学习、基于梯度的算法。其中强化学习和进化学习是主流算法,也是本章节重点介绍对象。
基于强化学习(reinforcement learning ,RL)的方法已经成为 NAS 的主流方法[4]。RL 有四个基元:agent, action,environment 和 reward. 强化学习是通过奖励或惩罚(reward)来学习怎样选择能产生最大积累奖励的行动(action)的算法。
NAS 的核心思想是通过一个 controller RNN 在搜索空间(search space)中得到一个子网络结构(child network),然后用这个子网络结构在数据集上训练,在验证集上测试得到准确率,再将这个准确率回传给 controller,controller 继续优化得到另一个网络结构,如此反复进行直到得到最佳结果,整个过程称为 Neural Architecture Search。
基于进化学习的搜索方法
进化学习(Evolutionary algorithms ,EA)为了达到自动寻找高性能的神经网络结构,需要进化一个模型簇(population)。每一个模型,也就是个体(individual),都是一个训练过的结构。模型在单个校验数据集(validation dataset)上的准确度就是度量个体质量或适应性的指标。
在一个进化过程中[7],工作者(worker)随机从模型簇中选出两个个体模型;根据优胜劣汰对模型进行识别,不合适的模型会立刻从模型簇中被剔除,即代表该模型在此次进化中的消亡;而更优的模型则成为母体(parent model),进行繁殖;通过这一过程,工作者实际上是创造了一个母体的副本,并让该副本随机发生变异。研究人员把这一修改过的副本称为子代(child);子代创造出来后,经过训练并在校验集上对它进行评估之后,把子代放回到模型簇中。此时,该子代则成为母体继续进行上述几个步骤的进化。
简言之,该进化算法就是在随机选出的个体中择其优,因此该方法也属于联赛选择算法(tournament selection)的一种。
- 性能评估:
- 搜索空间:定义了NAS算法可以搜索的神经网络类型,同时也定义了如何描述神经网络结构。
- NAS方法的维度一般有三个
- 离散空间:
- 传统的NAS在搜索空间上,也就是神经网络的类型上各不相同,所以模型的训练就是离散的。
- 黑盒优化过程:
- 参数不能通过反向传播算法优化的,我们称为超参数。
- 非形式化的来说,一个黑盒函数 可以理解为从 到 的一个映射.但是映射关系 的解析表达式及工作方式未知,我们只能通过不断地将数据输入到黑盒函数中然后通过得到的输出值来猜测黑盒函数的结构信息.下图表示一个黑盒问题的映射关系.
传统的NAS无法使用梯度下降法来优化模型。
DARTS可以将搜索空间弱化为一个连续的空间结构,把网络模型以可微分,参数化的形式实现,因此可以使用梯度下降法进行性能优化。
搜索一个计算单元CELL,作为最终体系的构建块,一个计算单元是由N个节点的有序序列组成的有向无环图。得到的CELL既可以通过堆叠构成CNN,也可以循环连接形成RNN。
标签:进化,模型,算法,笔记,学习,NAS,神经网络,搜索,DARTS 来源: https://www.cnblogs.com/yogurt-lly/p/15314712.html