Skip to content Skip to footer

神经架构搜索:基础和策略(第 1 部分)

1. 引言

神经架构搜索是自动化机器学习的下一个级别。事实证明,它比手动设计的架构更有效,尤其是在图像分类和对象检测等任务中,如(Zoph 等人,2018 年)所示。NAS 属于 AutoML,与超参数优化和元学习有共同之处。

NAS的方法可以分为三个维度:

  • 搜索空间:\它定义了原则上可以表示的体系结构。这构成了体系结构的典型属性。
  • 检索策略:\ 它详细介绍了通过探索-利用权衡来探索搜索空间的方法。
  • 性能估算:\ 它不仅侧重于估计整体性能,而且还提供了降低这些估计成本的见解。

让我们更深入地了解维度。

2. 搜索空间

如果我们知道所使用的神经架构的典型属性,那么我们可以减少搜索空间,但它会带来引入人为偏见的风险。让我们看一些基本的搜索空间:

  • 简单链结构神经架构 (SCNA): 基本上,序列中有“n”层,其中层 L-1 的输出是层 L 的输入。虽然搜索空间由“n”层、卷积或池化等操作类型以及其他超参数(如内核大小、滤波器数量和卷积层的步幅)进行参数化。

image-20240125221603811

SCNA示意图。

  • 复杂链结构神经架构 (CCNA): 由于对深度学习输出的高要求,神经网络的现代设计和演变产生了更复杂的“神经块”结构。基础 CCNA 将包括“n”个跳过连接、分支和附加层类型,而参数与 SCNA 相同。CCNA的主要优点是它在基本结构和功能块方面提供的模块化。它通常由 2 个单元组成:一个用于保持维度的普通单元和一个用于降低空间维度的还原单元。您现在可以尝试考虑使用 CCNA 的更多优势吗?

image-20240125221619371

左上角:一个普通单元格,左下角:一个还原单元格,右上角:多个此类单元格的组合

  • 更多优点包括:减少搜索空间,轻松适应不同的问题陈述以及架构设计的整体改进。
  • 现在问题来了,如何选择足够的单元数量来为最常见的复杂问题开发最佳架构?一个很好的例子是 DenseNet(由 Cai 等人开发,2018b)。原则上,细胞可以任意组合,例如,在上述多分支空间内,只需用细胞替换层即可。宏观(整体结构)和微观结构(单个细胞)的联合优化非常重要。另一种方法是使用由多个层次的主题组成的层次搜索空间。

第3章 检索策略

许多不同的搜索策略可用于探索搜索空间,例如贝叶斯优化、强化学习、Q-Learning 或基于梯度的方法。

贝叶斯优化在视觉架构问题上表现良好,之后对NAS的研究成为主流。然而,大多数BO工具箱都基于高斯过程,并专注于低维优化问题。同样,强化学习可以应用于将神经架构的生成视为智能体的动作,动作空间与搜索空间相同。代理的奖励基于对训练架构在看不见的数据上的性能的估计。

image-20240125221646137

贝叶斯优化流程图

  • 近三十年来,进化算法一直被用于提出和优化神经网络架构。
  • 最近的神经进化方法侧重于使用进化算法优化架构,而基于梯度的方法在权重优化方面占主导地位。
  • 对亲本进行抽样、更新种群和产生后代的差异是不同的神经进化方法的特征。

基于树的模型,如树 Parzen 估计器和随机森林,已被证明在 NAS 的高维条件空间中是有效的。

一个互补的途径涉及神经进化方法,其中进化算法优化了神经结构。这些方法最初由Miller等人(1989)在几十年前提出,现在已经发展到适应当代神经结构。

强化学习 (RL) 在 NAS 中也起着至关重要的作用,其神经架构的生成被框定为 RL 问题。代理的操作(代表体系结构)源自搜索空间,奖励基于对看不见的数据的估计性能。Zoph 和 Le (2017) 最初采用 REINFORCE 策略梯度算法,后来过渡到近端策略优化 (PPO),举例说明了 NAS 研究的动态性质。

强化学习起着举足轻重的作用,神经架构的生成被框定为RL问题。NAS研究的动态性质体现在从REINFORCEFORCE策略梯度算法到近端策略优化(PPO)的演变上。

image-20240125221714989

为 NAS 实现的典型 RL 图

作为最后一种搜索技术,基于梯度的优化的连续松弛引入了范式转换,允许通过考虑操作的凸组合来直接优化。Liu等人(2019b)等技术提出了持续松弛来优化网络权重和架构,为在搜索过程中实现效率提供了一条有前途的途径。

image-20240125221741613

基于梯度的优化方法流程图

注意:这些搜索技术中的大多数都是针对 CIFAR-10 实施和测试的

4. 性能评估

在搜索过程中评估候选架构具有挑战性。从头开始训练每个架构来衡量其性能将非常昂贵。因此,估计架构的潜在性能对于使 NAS 易于处理至关重要。

在我们了解估算技术之前,让我们了解一些术语:

  • 偏差-方差权衡:在性能估计值中,偏差和方差之间存在权衡。学习曲线外推等更简单的模型往往具有较高的偏差,但方差较低。更复杂的模型(如权重分配)具有较低的偏差,但具有较高的方差。理想的方法取决于搜索空间的复杂性。
  • 可转移性:不同架构之间功能的可转移性会影响权重共享等技术。更高的可转移性减少了权重分配的偏差。但截然不同的架构可能具有较低的可迁移性。
  • 元学习:性能预测器可以通过架构评估生成训练数据并学习预测其性能来进行元学习。预测变量是在元数据上训练的元模型。
  • 多保真度方法:结合低保真度和高保真度估计可以提高准确性。例如,对代理任务进行外推,对目标任务进行最终评估。或通过定期全面评估校准的快速预测器。

现在我们了解了本节的方向

迄今为止,有许多技术使用,其中一些是:

  • 权重共享:训练一个包含搜索空间中所有可能架构的“超级网络”。权重在架构之间共享,因此评估新架构只需继承权重,而无需从头开始重新训练。这大大降低了计算成本。但是,它在准确评估截然不同的架构方面存在局限性。
  • 学习曲线外推:不是完全训练每个架构,而是在短时间内对它们进行部分训练。然后外推部分训练的学习曲线,以估计最终的收敛性能。这需要拟合适当的学习曲线模型并设置部分训练持续时间。
  • 代理任务:候选架构首先在较小的代理数据集(如 CIFAR-10)上进行训练和评估。然后,在代理任务上表现良好的架构将在实际目标数据集上进行传输和微调。使用代理数据集可以更快地提高架构性能。
  • 集成模型:通过嵌入低保真教师模型的预测来估计性能。教师模型的训练速度更快,因此合奏可以廉价地估计潜在的架构性能。

估算性能就像神经网络的速配一样——在完全投入之前快速评估兼容性。只是不要依赖星座运势来预测理想的伙伴关系!