您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
深度学习的未来:神经架构搜索
 
作者:CVer
  4560  次浏览      17
 2020-3-16
 
编辑推荐:
本文主要介绍了神经架构搜索它可以做什么并对它的三个主要组成部分进行阐述,希望对您的学习有所帮助。
本文来自于专知,由火龙果软件Alice编辑、推荐。

【导读】我们中的很多人知道ResNet的成功,当我们使用ResNet作为预训练网络时,有没有好奇过,怎么会有人能够想出这样的网络呢?这就是神经架构搜索做的事。

我们只需要将数据集输入神经架构搜索系统,它就能针对该数据集找到最适合的神经架构。神经架构搜索可以看出是一个AutoML的一个子领域,并与超参数优化有显著的替身。为了理解神经架构搜索,我们需要仔细思考它在做什么。它是在所有可能的结构中,以一定的搜索策略,找到最大化性能的结果。下图是对神经架构搜索的一个总结。

它有三个主要组成部分:搜索空间、搜索策略与性能评估。

搜索空间定义了神经架构搜索可能给出的模型。它可以是链式的结构,第n-1层的输出作为第n层的输入,或者也可以是现代化的复杂架构,包括skip connection等。

很多时候,人们都想手动设计外层的架构,在这种情况下,外层的架构是固定的,神经架构搜索只搜索一个网络单元的结构。这种类型的搜索被称为micro-search 或者单元搜素。

在许多神经架构搜索的方法中,细节与整体架构同时层次化地搜索。

第一层确定了一系列主要的操作,第二层确定了这些操作的链接方法,第三层确定了第二层中的一些模块是如何连接的,以此类推。

强化学习

强化学习通过一些策略来执行一些操作,然后智能体更加执行操作后得到的奖励更新策略的参数。在神经架构搜索的情况下,智能体产出一些模型架构,称为子网络,然后然后训练模型,并把在数据集上的性能表现作为奖励,以此完成对智能体的迭代更新。

经典的RNN神经网络作为一个控制器或者智能体,它生成一个字符串,然后从该字符串中构建模型。

例如,上图中RNN的输出构建了一个滤波器,包括滤波器的大学与补偿。输出锚点用于预测跳跃链接。在N层之后,锚点会包含N-1个基于内容的sigmiod函数,用于预测之前的层时候需要被连接。

渐进式神经架构搜索(PNAS)

PNAS是一种网络单元搜索方法,他们从网络块中构建单元然后使用一种预定义的方法逐步增加单元。

每个模型块有几个预定义的操作构成。

原始论文中使用了如上图所示的几个操作,但是这些操作是可以被扩展的。

上图是一个完整的例子,即使只是为了确定这个单元内的结构是否是最好的,也需要10^14 次验证。

因此,为了减少复杂度,第一个单元只有一个模型块。这很简单,因为前面提到过,我们只有256个模型块可以选择。然后前K个表现最好的单元被选中,然后开始构建第二个模型块,直到构建完第5个模型块。

但是对于一个合理的K,需要测试太多两个代码块的候选了。一个很简易的解决方案是使用surrogate模型。

举例而言,我们可以构建256个单个单元的模型,然后测试它们的性能。然后用这些数据训练surrogate模型。然后用这些模型来预测2个单元的性能,而并不实际训练这个模型。当然,surrogate模型需要对不同大小的输入数据鲁棒。在这之后,前K个两个单元的模型被选定了,当两个单元的模型用真实数据真正训练好之后,这个surrogate模型被微调,然后扩展到第三个单元。

可微架构搜索

神经架构的搜索空间是离散的,每一个神经架构与另外一个至少神经架构至少有一个层是不一样的。这种方法应用了一个连续的松弛方法,可以用梯度下降法来优化这个离散域的搜索。

单元可以看成是一个有向无环图,每个节点X可以看成是一个隐式的表示(如卷积神经网络中的特征图),每个有向边可以看成是一些操作(如卷积,最大池化等),这些操作可以将节点i储存的隐式表示转移到节点j储存的隐式表示。

每个节点的输出可以由左边的公式求出。

在连续松弛下,与连接两个节点的单个操作不同,使用每个操作的凸组合来刻画两个节点之间的多种可能的边,每个边对应了一个特定的操作。每条边上也有一个权重alpha

现在,O(i,j)是节点i,j 之间的边o(i,j)的线性组合, o(.)? S, S是所有可能的操作的集合。

输出O(i,j) 由上边的公式得到。

使用L_train和L_val作为训练与验证的误差,两个误差都由模型的参数alpha与网络的参数w决定。架构搜索的目标是找到最好的alpha,最小化验证误差L_val,而权值w则是最小化训练误差得到的。这是因为alpha是高层的变量而w是低层的变量。

随着训练的进行,一些边的权值会比另一些高很多,为了再将这个连续的模型变为离散的,每两个节点之间只保留最大的边。

当所有的节点都确定之后,就可以构建更大的网络了。

 

   
4560 次浏览       17
相关文章

基于图卷积网络的图深度学习
自动驾驶中的3D目标检测
工业机器人控制系统架构介绍
项目实战:如何构建知识图谱
 
相关文档

5G人工智能物联网的典型应用
深度学习在自动驾驶中的应用
图神经网络在交叉学科领域的应用研究
无人机系统原理
相关课程

人工智能、机器学习&TensorFlow
机器人软件开发技术
人工智能,机器学习和深度学习
图像处理算法方法与实践