深度学习的未来:神经架构搜索

本文转载自:专知

【导读】我们中的很多人知道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) 由上边的公式得到。

w∗ = argmin L_train(w, α∗ ).

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

α * = argmin L_val(w ∗ (α), α)

s.t. w ∗ (α) = argmin L_train(w, α)

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

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

原文链接:

https://medium.com/@ashiqbuet14/neural-architecture-search-nas-the-future-of-deep-learning-c99356351136

-END-

原文发布于微信公众号 - CVer(CVerNews)

原文发表时间:2019-06-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券