为给定任务自动生成神经网络:MIT提出RNN架构生成新方法

由 MIT 研究人员最近提出的 RNN 架构自动生成方法使用了灵活的 DSL 搜索和强化学习,在语言建模和机器翻译等任务上表现良好。新方法可以让我们摆脱依靠直觉的费力模型设计方式,同时也大大扩展了循环神经网络的可能性空间。

开发全新的神经网络架构是很多人工智能创新的核心所在。然而,搜索架构和工程定制的速度缓慢、耗费资源,同时也需要开发者投入大量劳动。人类专家通常以直觉为指导来探索架构的潜在发展空间,即使是微小的修改也可能产生意想不到的结果。理想状况下,自动架构搜索算法可以帮助我们找到给定任务的最佳模型架构。

对机器学习自动化的探索已有很多,比如超参数优化(Bergstra et al., 2011;Snoek et al., 2012),以及生成全新模型架构的不同方法(Stanley et al., 2009; Baker et al., 2016; Zoph and Le, 2017)。对于架构搜索,确保这些自动化方法产生相似于人的结果通常需要不切实际地遍历大型搜索空间——假设高质量架构存在于搜索空间之中。尽管最近工作已经在非标准算子使用中发现了有希望的结果(Vaswani et al., 2017),选择组成框架的底层算子通常仍进一步受限于跨架构的标准集。

MIT 的研究人员提出了一种用于循环神经网络灵活自动化架构搜索的元学习策略,明确涵盖搜索中的全新算子。它包含三个阶段,如图 1 所示,该论文给出了两个例化版本。

1. 借助高度灵活的 DSL,候选架构生成函数带来了潜在的 RNN 架构。DSL 不会对所生成树的大小或复杂度施加限制,并可通过随机策略或 RL 智能体累加建构。

2. 排序函数通过递归神经网络处理每个候选架构的 DSL,预测架构的性能。通过展示 RNN 表征,排序函数也可以逐渐建模候选架构隐藏层的交互。


图 1. 生成器通过迭代采样下一节点产生候选架构(随机地或者使用由 REINFORCE 训练的 RL 智能体)。排序函数处理完整架构并评估最有希望的候选架构。在基线实验上运行模型的结果接着用于提升生成器和排序函数。

3. 评估器评定最有希望的候选架构,把其 DSL 编译为可执行的代码,并训练每个模型用于特定任务。这些评估结果构成了架构性能组合,接着可用于训练排序函数和 RL 生成器。

虽然特定域的语言并非完全通用,但它足够灵活以捕捉到最为标准的 RNN 架构,这包含但不限于 GRU、LSTM、MGU(最小门控单元/Zhou et al., 2016)、QRNN(Bradbury et al., 2017)、NASCell(神经架构搜索单元/Zoph and Le, 2017)和简单的 RNN。

对于给定的架构定义,我们可以通过遍历来自源节点到最后节点 h_t 的树而把 DSL 编译为代码。研究人员获得了两组源代码,一组用于节点需要的初始化,比如定义矩阵乘法的一组权重;一组用于运行时的前向调用。

通过强化学习构建累加架构

在一个从输出 h_t 开始的时间,DSL 中的架构一个累加地构建的节点。最简单的智能体是随机的,它选择来自算子集的下一节点,而不在搜索空间中内化关于架构或最优化的任何知识。优先允许智能体构建架构,因为智能体在可能的构架空间中可以学习聚焦在有希望的方向上。

对于做出选择下一节点决策的智能体,它必须有一个架构当前状态的表征,以及一个指导性的工作存储器。我们提出借助以下两个组件来实现它:

1. 表征(局部)架构当前状态的树编码器

2. 馈送当前树状态并采样下一节点的 RNN

树编码器是递归地应用于节点 token 的 LSTM,并且所有子节点共享权重,但是状态在节点之间重新设置。RNN 是应用在已编码局部架构之上,并且每个算子预测动作分值。我们通过多项式采样,并鼓励用 epsilon-greedy 策略探索。通过 REINFORCE 算法联合训练模型的两个组件(Williams, 1992)。


图 3. 语言建模架构搜索随时间推移的可视化。越低的 log 困惑度(y 轴)越好。


表 1. Penn Treebank 语言建模任务上验证集/测试集的模型困惑度;表 2.WikiText-2 语言建模任务上验证集/测试集的模型困惑度。


图 4. 算子随时间推移的分布。在开始阶段,生成器使用核心 DSL(渐灰色),随着架构表征的稳定,开始使用扩展 DSL。

论文:A Flexible Approach to Automated RNN Architecture Generation


论文链接:https://arxiv.org/abs/1712.07316

摘要:设计神经架构的过程需要专业知识和大量的试错过程。尽管自动架构搜索方法或许可以简化这些需求,但使用目前的方法生成循环神经网络(RNN)会受到灵活性与组件数量的限制。我们提出了一个域定义语言(DSL)用于自动架构搜索,可以产生任意深度和宽度的新 RNN 模型。DSL 的灵活性足以定义标准架构如门控循环单元(GRU)和长短期记忆网络(LSTM),并允许引入非常规的 RNN 组件如三角曲线和层归一化。使用两种不同的候选生成技术——带有排序函数的随机搜索和强化学习,我们探索了由 RNN、DSL 为语言建模和机器翻译等任务生成新架构的方式。这些生成的架构不遵循人类直觉,同时在目标任务上表现良好,这表明可用 RNN 架构的空间要比之前我们认为的要大上很多。

理论
暂无评论
暂无评论~
返回顶部