首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

神经网络架构搜索

架构搜索根据一个已有的效果比较好的神经网络结构,找到更好的结构,例如将其中的某一层进行替换,增添一层或者减少一层,改变网络的拓扑结构。为什么要基于已有的网络?因为在已有的神经网络上更改拓扑结构可以利用已经训练好的权重,在巨人的肩膀上进步,为了更快的得到更好的结果。什么是Path-Level?链式结构如上图,我们称之为Layer-LevelPath-Level如下图:

Layer-Level的架构搜索给定一个层的候选集(例如:卷积层3*3,卷积层1*1,池化层,identity),从候选集中选择一个层进行替换。identity指的是x->x,什么都不做。如何选择?1.暴力搜索:遍历每一种可能的选择通过训练后测试结果反馈来选择结果最好的网络结构。2.随机搜索:随机选择一种层通过训练后测试结果反馈来选择结果最好的网络结构。

我们定义两种操作,Replication-Add和Split-Concat:1.Replication-Add是指将x复制成2份,分别操作后把结果除以2再相加,保证输入和输出和之前的维度相同。2.Split-Concat是指将x按照维度切成两份,分别操作后再把结果相接,保证输入和输出和之前的维度相同。

如图,a过程是Net2Wider的过程,b过程是Net2Deep后再Net2Wider的过程,c过程是对其中的层替换的过程,d过程是把c过程定义成了我们的树结构,我们定义我们的树结构中,节点:分配和合并策略,边:层由此,我们可以把整个过程看做是一个在树上搜索的过程。定义Path-Level的搜索策略

在搜索过程当中一共有三种情况:1.当前节点没有叶子节点时,我们考虑是否要把它利用Net2Deeper加深有一个叶子节点。2.当前节点只有一个叶子节点,我们考虑是否要把它扩宽并考虑扩多宽。3.考虑当前边应该是什么边(层)。

于是,利用如上操作,我们理论上可以生成任何网络结构。例子下面这个结构是论文的作者在实验cifar10时找到的一个结构

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180706A0SM5F00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券