📜  神经架构和搜索方法

📅  最后修改于: 2022-05-13 01:56:12.723000             🧑  作者: Mango

神经架构和搜索方法

神经架构和搜索方法

为给定数据集生成具有良好结果(低损失)的模型的神经网络自动选择一个或多个设计的工作称为神经架构搜索。神经架构搜索领域仍在发展中。正在进行大量研究,有许多替代方法可以完成这项工作,但对于一般任务,甚至对于像照片中的物体识别这样的特定问题,没有一种最佳方法。

AutoML 包括特征工程、迁移学习和超参数优化以及神经架构搜索等功能。这无疑是目前正在研究的最困难的机器学习主题;甚至评估神经架构搜索方法也很困难。

搜索神经架构可能既昂贵又耗时。 GPU 天数,有时是数千个 GPU 天数,通常用作搜索和训练时间的统计数据。改进神经架构搜索的必要性是不言而喻的。

大多数神经网络模型的改进,例如图像分类和语言翻译,都需要对神经网络架构进行广泛的手动调整,这既费时又容易出错。数据科学家的成本很高,即使与公共云上的高端 GPU 的成本相比也是如此,而且它们的可用性是有限的。

神经架构搜索 (NAS) 的维度

搜索空间搜索策略性能估计是 NAS 的三个维度。

NAS 技术将创建一种称为搜索空间的架构模式。无论是顺序“n”层传播还是多集群复杂分支,可能性是无穷无尽的。搜索策略考虑了创建模型所花费的时间,并由用于定义 NAS 方法的搜索方法确定——它可以是贝叶斯优化或强化学习。

我们期望从 NAS 生成的神经架构模型中获得的一些性能指标的收敛称为性能估计。在某些情况下,它有助于将结果级联到下一次迭代以生成更好的模型,而在其他情况下,它只是从一开始就即兴发挥。但是,在本教程中,我们将专注于搜索策略及其各种形式。

简而言之,用于在搜索空间中找到最佳架构的过程称为“搜索策略”。

大多数关于神经架构搜索的研究都致力于找出哪些优化方法最有效,以及如何调整或调整它们以帮助搜索过程更快、更一致地提供更好的结果。我们可以根据其搜索策略将 NAS 算法分为五类:

  1. 随机搜索
  2. 强化学习
  3. 进化算法
  4. 基于序列模型的优化
  5. 梯度优化

在这一部分中,我们将专注于前三个类别。他们是:

  • 随机搜索:随机搜索当然是最简单的策略,它经常被用作基线。在不涉及任何学习的情况下,随机选择一个有效的架构。
  • 强化学习:强化学习已被用于推动对更好架构的搜索,并取得了巨大成功。 NAS 算法有效导航搜索区域以保留宝贵的计算和内存资源的能力通常是关键约束。以实现高验证准确性为主要目标而创建的模型最终可能会变得复杂,需要更多参数、更多内存和更长的推理时间。
  • 进化算法:除了选择适当的遗传进化参数(例如增长率和死亡率)外,还需要评估神经网络拓扑在我们用于数字进化的基因型中的表现程度。另一方面,组合模式生成网络 (CPPN) 提供了一种强大的间接编码,可以通过 NEAT 进行改进。
    HyperNEAT 是 NEAT 的一种变体,它使用 CPPN 进行编码,并随着 NEAT 算法的发展而演变。也是一种用于进化的间接编码方法:算法采用有向无环图来编码各种神经网络设计。

结论:

评估神经网络性能最直接的方法是使用数据训练和评估网络。不幸的是,这可能导致神经架构搜索的计算需求达到数千 GPU 天的数量级。较低的保真度估计(更少的训练时期、更少的数据和缩小的模型);学习曲线外推(基于几个时期);热启动训练(通过从父模型复制权重来初始化权重);具有权重共享的 one-shot 模型(子图使用 one-shot 模型的权重)都是减少计算的方法的示例。

所有这些策略都可以将训练时间减半,从几千到几百个 GPU 天。然而,这些估计带来的偏差仍然未知。