NAS搜索之ENAS

NAS搜索之ENAS

论文地址

代码地址

主要工作

  1. Designing Recurrent Cells
  2. Designing Convolutional Networks
  3. Designing Convolutional Cells

操作方式

  • 先初始化一个big网络,包括所有连接,
  • 通过rnn控制器来预测生成一连串的op连接和op操作,构建子网络
  • 训练子网络一段时间
  • 据子网络的结果去训练rnn控制器,使得rnn的输出结果能构建更好的子网络
  • 不断重复2,3,4

Designing Recurrent Cells 设计思路

图1
将节点之间的连接看成是一个有向无环图,如图共四个节点,其中红线代表数据流动。
图2
如上图2,和上面节点图1相互对应,有两个输入x[t],h[t-1],进入节点1做计算,激活函数为tanh。由节点图1红线可知,节点1的结果流入节点2和节点4,节点2的结果流入节点3,最后节点3和4的结果做一个avg得到最后的结果h[t]输出。

计算方式如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
于是设计使用RNN来控制生成这样的连接方式。
图3
如上图所示,使用rnn方式来生成连接方式和op操作(这里指激活函数)。

  • 上图node1,2,3,4对应节点图中的1,2,3,4节点,由上图可知,因为节点1的输入已经固定,就是0也就是前图的x[t]和h[t-1],rnn部分只需要预测激活函数即可,由图知预测节点1激活函数为tanh。
  • 除了节点1,其他节点都需要rnn预测两个,一个连接过来的前置节点和一个op操作,例如node 2,左半部分预测连入节点2的是节点1。右半部分预测在节点2 的op操作是ReLU。其余节点类似。

使用上文操作方式中说的,训练最后得到网络:
在这里插入图片描述

Designing Convolutional Networks 设计思路

在这里插入图片描述
同样这里也是,四个节点,红色代表数据输入
在这里插入图片描述

同样这里也是使用rnn来控制预测当前节点的前置节点和op操作,这里op操作是conv,pooling等。

  • 同样,节点1只需预测op操作,节点2预测连入的节点是1,op操作是sep5X5,节点3预测的连入节点是1,2,op操作是max3X3.这里的连入节点或者说前置节点个数可自行设置,这里设置为2,也就是说每个节点的输入最多是两个。

最终的搜索结果:
在这里插入图片描述

Designing Convolutional Cells 设计思路

在这里插入图片描述
这里也是一样,有四个节点,红线代表数据流向。

在这里插入图片描述
这里预测也是使用rnn,唯一就是预测输出不同,这里每个node会预测四个输出,2个前置节点和两个op操作,而且互相对应,如上图节点3,A前置节点和A op操作对应,B前置节点和B op操作对应。

在这里插入图片描述
如上图所示,和前面的rnn控制器联系起来。

  • 在node3部分,A和B预测的结果都是2,而op操作是sep5X5和id,也就是说node2节点的输出分别经过一个op操作sep5X5和一个op操作id(这里就是指本身),把两个结果再进行add后作为node3的输出。
  • 在node4部分,A和B的预测结果为3,1,op操作为avg3X3 和sep 3X3,也就是node3的结果进行avg3X3操作和node1的结果进行sep3X3操作,把这两个结果进行add作为node4的输出。
  • 最后会将这些未连入op操作的节点进行concat。

这里搜索两个cell,每个cell里面有5个节点,最终的搜索结果:

在这里插入图片描述
在这里插入图片描述
最后将这些cell如下方式组合起来形成一个网络
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值