AUTOML之ENAS

论文:Efficient Neural Architecture Search via Parameter Sharing

Github:https://github.com/melodyguan/enas

谷歌提出的Efficient Neural Architecture Search(ENAS),是对NAS的改进版。使用生成的网络结构NASNet,在PTB数据集取得了55.8%的测试错误率,在cifar10上取得了2.89%的测试错误率。同时训练速度相比NAS提升了1000倍,只使用一个1080Ti,小于16小时训练成功。

ENAS包括一个基于RNN的控制端网络结构和一个由控制端的组合方式生成的真实网络结构。通过真实网络结构得到RNN控制端的反馈。训练中固定RNN控制端,多次迭代真实子网络,待收敛后,再固定子网络,迭代RNN控制端。

 

论文中交代了3种DAG图的训练方式。

(1)整个网络训练,网络结构类似VGG性质的直型的网络

整个处理流程如上公式所示,

RNN包含N个节点,4个激活函数(tanh, ReLU,identity, sigmoid),最终一共可以生成4N × N! 种网络结构。每一个节点有4种激活方式,N个节点相互独立,生成4N种激活方式,第一个节点只能和输入进行连接,第二个节点可以和输入和第一个节点2个里面选一个连接,第三个节点可以和输入和第1,2共3个节点里面选一个连接,依次类推,最终产生N!种连接方式。所以最终生成4N × N!种有向图DAG。

在实验中节点数N=12。

(2)整个网络训练,网络结构类似resnet类型的带shortcut连接的网络

该结构只有1个输入,一共包含6种操作(3 × 3 卷积,5 × 5卷积,3 × 3 depthwise-separable卷积,5 × 5depthwise-separable卷积,max pooling,3 × 3 average pooling)。

假设一共L个层,也就是L个节点,最终将产生6L × 2 L(L-1)/2种网络结构。

每个节点相互对立,每一个节点都有6种操作可能,L个节点就会有6L种操作可能。

有L个节点的有向图一共有L(L-1)/2条连接线,每个连接线有连接,不连接,2种可能,整个图就会产生2 L(L-1)/2种连接结构。最终就会产生6L × 2 L(L-1)/2种网络结构。

在实验中节点数L=12。

(3)只有BLOCK模块的训练,网络结构包括2个输入端,带shortcut连接

处理流程如下,h1,h2是两个输入,

假设有B个节点,有2个节点是输入节点,剩下B-2个节点。对于任意一个节点i (3 ≤ i ≤ B),将会产生(5 × (B - 2)!)2种网络结构。

其中,5表示5中操作(identity,3 × 3 depthwise-separable卷积,5 × 5depthwise-separable卷积,3 × 3 max pooling,average pooling)。类似前面的思路,2个输入节点确定,B-2个节点有(B - 2)!种连接方式,这样就会产生5 × (B - 2)!种网络,而该BLOCK的每个节点都包含2个输入,每个输入相互独立,就会产生(5 × (B - 2)!)2种网络结构。也就是说,普通卷积就会产生(5 × (B - 2)!)2种网络结构,而该模块BLOCK还使用了stride=2的卷积,该卷积也会产生(5 × (B - 2)!)2种网络结构。最终就会产生(5 × (B - 2)!)4种网络结构。

实验中节点数B=7。

训练完该BLOCK模块就会基于此生成最终网络结构,

如上图所示,包含了3个BLOCK模块,每个模块包含N个正常卷积和1个stride=2的卷积。

 

最终产生基于PTB生成的网络:

基于CIFAR-10生成的网络:

总结:

论文通过参数共享,基于BLOCK的训练,大大的加快了搜索模型结构的速度。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值