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

栏目: 数据库 · 发布时间: 5年前

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

本文转载自:专知

【导读】我们中的很多人知道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_va l(w ∗ (α), α)

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

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

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

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

原文链接:

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Art of Computer Programming, Volumes 1-3 Boxed Set

The Art of Computer Programming, Volumes 1-3 Boxed Set

Donald E. Knuth / Addison-Wesley Professional / 1998-10-15 / USD 199.99

This multivolume work is widely recognized as the definitive description of classical computer science. The first three volumes have for decades been an invaluable resource in programming theory and p......一起来看看 《The Art of Computer Programming, Volumes 1-3 Boxed Set》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换