第三章:NAS 的核心要素:搜索策略 (Search Strategy)
第三章:NAS 的核心要素:搜索策略 (Search Strategy)
神经网络架构搜索 (Neural Architecture Search, NAS) 的核心目标是自动化地设计高性能的神经网络架构,以取代繁琐且耗时的手工设计过程。要实现这一目标,NAS 框架通常包含三个关键要素:搜索空间 (Search Space)、评估策略 (Evaluation Strategy) 和 搜索策略 (Search Strategy)。 前两章我们已经探讨了搜索空间和评估策略的重要性,本章我们将聚焦于 NAS 的灵魂——搜索策略。
搜索策略是 NAS 的核心驱动力,它决定了如何在预定义的搜索空间中高效地探索,并找到最优或接近最优的神经网络架构。 不同的搜索策略直接影响着 NAS 的搜索效率、最终性能以及计算成本。 选择合适的搜索策略是成功应用 NAS 的关键一步。
3.1 搜索策略的分类与概述
搜索策略的核心任务是在巨大的架构搜索空间中,有效地寻找到高性能的神经网络架构。 由于搜索空间通常是离散且非凸的,传统的梯度优化方法难以直接应用。 因此,NAS 领域发展出了多种多样的搜索策略,大致可以根据其核心思想和方法论进行分类。
从宏观角度来看,我们可以将 NAS 的搜索策略主要分为以下几大类:
- 基于进化算法的搜索策略 (Evolutionary Algorithm based Search Strategy): 借鉴生物进化中的自然选择和遗传机制,通过模拟种群的进化过程来搜索最优架构。这类方法强调种群的多样性和迭代优化,能够有效地探索复杂的搜索空间。
- 基于强化学习的搜索策略 (Reinforcement Learning based Search Strategy): 将架构搜索过程建模为强化学习问题,利用智能体 (Agent) 与环境 (搜索空间) 的交互,通过奖励信号 (例如验证集精度) 来学习最优的架构生成策略。这类方法能够学习复杂的架构生成模式,并进行序列化的架构决策。
- 基于梯度优化的搜索策略 (Gradient-based Search Strategy): 将离散的架构搜索空间转化为连续可微的空间,从而可以使用梯度下降等优化方法直接优化架构参数。这类方法通常具有较高的搜索效率,但可能牺牲一定的搜索灵活性。
- 基于贝叶斯优化的搜索策略 (Bayesian Optimization based Search Strategy): 利用贝叶斯优化方法,构建代理模型来预测架构的性能,并指导搜索过程。这类方法能够有效地处理昂贵的评估成本,并在有限的评估次数内找到高性能架构。
- 基于随机搜索的策略 (Random Search Strategy): 作为一种简单而有效的基线方法,随机搜索策略在搜索空间中随机采样架构,并评估其性能。尽管看似简单,随机搜索在某些情况下也能取得令人惊讶的效果,并为更复杂的搜索策略提供性能对比的基准。
下图使用图表展示了上述搜索策略的分类:
3.1.1 搜索策略概述
不同的搜索策略在探索方式、优化目标和计算成本等方面存在显著差异。 选择合适的搜索策略需要综合考虑搜索空间的特性、评估策略的效率、计算资源的限制以及期望达到的性能目标。
- 探索与利用 (Exploration vs. Exploitation): 所有搜索策略都需要在探索未知区域 (探索) 和利用已知优秀区域 (利用) 之间进行权衡。 进化算法和强化学习策略通常更侧重于探索,能够发现更广泛的架构空间,但也可能需要更多的计算资源。 梯度优化和贝叶斯优化策略则更侧重于利用,能够更快速地收敛到局部最优解,但可能错过全局最优解。
- 搜索效率与性能 (Search Efficiency vs. Performance): 搜索效率指的是在有限的计算资源下,搜索策略找到高性能架构的能力。 性能指的是搜索到的架构在目标任务上的表现。 一些高效的搜索策略 (例如梯度优化) 可能牺牲一定的搜索灵活性,导致最终性能受限。 而一些性能更优的搜索策略 (例如进化算法) 则可能需要更高的计算成本。
- 计算成本 (Computational Cost): 不同的搜索策略在计算成本上差异巨大。 例如,随机搜索的计算成本最低,而基于进化算法或强化学习的搜索策略则可能需要大量的计算资源,尤其是在评估策略较为耗时的情况下。 梯度优化策略通常具有较高的计算效率,但其有效性依赖于搜索空间的连续可微性。
在接下来的章节中,我们将深入探讨每种搜索策略的原理、优势、劣势以及代表性方法,并最终对比分析不同策略的适用场景和选择建议。
3.2 基于进化算法的搜索策略 (Evolutionary Algorithm based Search Strategy)
进化算法 (Evolutionary Algorithm, EA) 是一类模拟生物进化过程的优化算法。 在 NAS 领域,基于进化算法的搜索策略将神经网络架构视为种群中的个体,通过模拟自然选择、交叉 (Crossover) 和变异 (Mutation) 等进化操作,迭代地优化种群的质量,从而搜索到高性能的架构。
3.2.1 进化算法的核心思想
进化算法的核心思想可以概括为以下几个步骤:
- 初始化种群 (Initialization): 随机生成一组初始的神经网络架构,作为初始种群。
- 评估适应度 (Fitness Evaluation): 评估种群中每个个体的适应度,即神经网络架构的性能 (例如在验证集上的精度)。 适应度越高,表示架构越优秀。
- 选择 (Selection): 根据个体的适应度,选择优秀的个体进入下一代种群。 常用的选择方法包括轮盘赌选择、锦标赛选择等。 适应度高的个体更有可能被选中,从而模拟自然选择的优胜劣汰机制。
- 交叉 (Crossover): 将选中的个体进行交叉操作,生成新的个体。 交叉操作旨在将优秀个体的基因 (架构特征) 组合起来,产生更优秀的后代。 在 NAS 中,交叉操作可以是对网络结构、连接方式、超参数等进行组合。
- 变异 (Mutation): 对新生成的个体进行变异操作,引入随机性,增加种群的多样性,避免陷入局部最优解。 变异操作可以是随机改变网络结构、连接方式、超参数等。
- 迭代 (Iteration): 重复步骤 2-5,直到达到预设的迭代次数或满足收敛条件。 随着迭代的进行,种群的平均适应度不断提高,最终种群中将包含高性能的神经网络架构。
下图使用图表展示了进化算法的基本流程:
3.2.2 基于进化算法的 NAS 方法
早期的 NAS 研究中,进化算法占据了重要的地位。 一些经典的方法包括:
- NASNet: NASNet 使用进化算法搜索卷积单元 (Convolutional Cell) 和循环单元 (Recurrent Cell) 的结构。 它使用一个控制器 RNN 来生成网络架构的描述,然后使用进化算法来优化控制器 RNN 的参数,使其生成性能更优的架构。 NASNet 在 ImageNet 和 CIFAR-10 等数据集上取得了当时的 state-of-the-art 结果。
- AmoebaNet: AmoebaNet 采用了一种简化的进化算法——规则化锦标赛选择 (Regularized Tournament Selection)。 它维护一个由架构组成的种群,每次迭代随机选择两个架构进行锦标赛选择,适应度更高的架构会被复制并进行变异,然后加入到种群中。 AmoebaNet 相比 NASNet 更加高效,并且在 ImageNet 上取得了可比的性能。
- ENAS (Efficient Neural Architecture Search): ENAS 结合了进化算法和参数共享的思想,大大提高了搜索效率。 ENAS 维护一个由所有可能的网络结构组成的有向无环图 (DAG),然后使用进化算法搜索 DAG 中的最优子图作为最终的神经网络架构。 参数共享使得 ENAS 可以在不同的架构之间共享参数,从而避免了从头开始训练每个架构,显著降低了计算成本。
3.2.3 进化算法的优势与劣势
优势:
- 全局搜索能力强: 进化算法具有良好的全局搜索能力,能够探索复杂的搜索空间,并有可能找到全局最优解或接近全局最优解。
- 灵活性高: 进化算法对搜索空间的结构和评估策略的要求较低,可以应用于各种类型的神经网络架构搜索问题。
- 并行性好: 进化算法天然具有并行性,可以并行评估种群中的多个个体,加速搜索过程。
劣势:
- 计算成本高: 进化算法通常需要评估大量的神经网络架构,尤其是在种群规模较大、迭代次数较多的情况下,计算成本较高。
- 收敛速度慢: 进化算法的收敛速度相对较慢,需要较长的搜索时间才能找到高性能的架构。
- 超参数敏感: 进化算法的性能受到超参数 (例如种群规模、交叉概率、变异概率等) 的影响,需要仔细调参。
3.2.4 总结
基于进化算法的搜索策略是 NAS 领域的重要分支,它借鉴生物进化的思想,通过模拟种群的进化过程来搜索最优架构。 进化算法具有全局搜索能力强、灵活性高等优点,但也存在计算成本高、收敛速度慢等缺点。 在计算资源允许的情况下,进化算法仍然是一种有效的 NAS 方法,尤其适用于探索复杂的搜索空间和寻找全局最优解。
3.3 基于强化学习的搜索策略 (Reinforcement Learning based Search Strategy)
强化学习 (Reinforcement Learning, RL) 是一种通过智能体 (Agent) 与环境 (Environment) 交互学习最优策略的学习范式。 在 NAS 领域,基于强化学习的搜索策略将架构搜索过程建模为强化学习问题,利用智能体 (例如 RNN 控制器) 生成神经网络架构,并在环境中 (例如验证集) 评估其性能,然后根据性能反馈 (奖励信号) 调整智能体的策略,使其能够生成更优秀的架构。
3.3.1 强化学习的核心思想
强化学习的核心思想可以概括为以下几个要素:
- 智能体 (Agent): 在 NAS 中,智能体通常是一个 RNN 控制器或其他类型的模型,负责生成神经网络架构的描述。
- 环境 (Environment): 环境是智能体与之交互的外部世界。 在 NAS 中,环境通常是搜索空间和评估策略的结合。 环境接收智能体生成的架构描述,并评估其性能,然后将性能反馈给智能体。
- 动作 (Action): 智能体在每个时间步可以执行的动作。 在 NAS 中,动作通常是生成神经网络架构的组件或参数,例如卷积层类型、滤波器数量、连接方式等。
- 状态 (State): 环境的当前状态,用于描述环境的信息。 在 NAS 中,状态可以包括已经生成的架构组件、当前的搜索进度等。
- 奖励 (Reward): 环境根据智能体的动作给出的反馈信号,用于评价动作的好坏。 在 NAS 中,奖励通常是评估策略返回的架构性能指标,例如验证集精度。
- 策略 (Policy): 智能体根据当前状态选择动作的策略。 策略定义了智能体在给定状态下采取不同动作的概率分布。
- 价值函数 (Value Function): 用于评估在给定状态下,遵循某个策略所能获得的期望累积奖励。
强化学习的目标是学习一个最优的策略,使得智能体能够最大化其获得的累积奖励。 在 NAS 中,这意味着学习一个能够生成高性能神经网络架构的策略。
下图使用图表展示了强化学习的基本流程:
3.3.2 基于强化学习的 NAS 方法
基于强化学习的 NAS 方法通常使用 RNN 控制器来生成神经网络架构的描述,并使用策略梯度方法 (例如 REINFORCE) 来优化控制器。 一些经典的方法包括:
- NASNet (Reinforcement Learning Version): 与基于进化算法的 NASNet 类似,基于强化学习的 NASNet 也使用一个控制器 RNN 来生成卷积单元和循环单元的结构。 不同之处在于,它使用强化学习来优化控制器 RNN 的参数,而不是进化算法。 控制器 RNN 的目标是最大化其生成的架构在验证集上的精度。
- MetaQNN: MetaQNN 使用强化学习来学习神经网络的层配置 (例如卷积层、池化层等) 和超参数 (例如滤波器数量、步长等)。 它使用一个 Q-learning 算法来学习一个 Q 函数,用于评估不同架构的价值。 MetaQNN 通过最大化 Q 函数来选择最优的架构。
- NASCell: NASCell 将神经网络的架构搜索问题分解为多个小的搜索问题,每个搜索问题对应一个 Cell 的设计。它使用强化学习来搜索每个 Cell 的结构,然后将这些 Cell 堆叠起来构成完整的神经网络。这种方法可以有效地减少搜索空间的大小,提高搜索效率。
3.3.3 强化学习的优势与劣势
优势:
- 能够学习复杂的架构生成模式: 强化学习能够学习复杂的架构生成模式,并进行序列化的架构决策。 这使得强化学习能够发现一些手工设计难以发现的创新架构。
- 灵活性高: 强化学习对搜索空间的结构和评估策略的要求较低,可以应用于各种类型的神经网络架构搜索问题。
- 可以处理非平稳环境: 强化学习可以处理非平稳环境,例如训练数据分布发生变化的情况。 这使得强化学习能够适应不同的任务和数据集。
劣势:
- 计算成本高: 强化学习通常需要大量的训练样本才能学习到有效的策略。 在 NAS 中,这意味着需要评估大量的神经网络架构,计算成本较高。
- 对奖励信号敏感: 强化学习的性能受到奖励信号的影响。 如果奖励信号设计不合理,可能会导致智能体学习到错误的策略。
- 探索与利用的平衡问题: 强化学习需要在探索未知区域和利用已知优秀区域之间进行平衡。 如果探索不足,可能会陷入局部最优解。 如果探索过度,可能会浪费大量的计算资源。
3.3.4 总结
基于强化学习的搜索策略是 NAS 领域的重要分支,它将架构搜索过程建模为强化学习问题,利用智能体与环境的交互来学习最优的架构生成策略。 强化学习具有能够学习复杂的架构生成模式、灵活性高等优点,但也存在计算成本高、对奖励信号敏感等缺点。 在计算资源允许的情况下,强化学习仍然是一种有效的 NAS 方法,尤其适用于需要学习复杂架构生成模式的场景。
3.4 基于梯度优化的搜索策略 (Gradient-based Search Strategy)
基于梯度优化的搜索策略是 NAS 领域近年来发展迅速的一类方法。 这类方法的核心思想是将离散的架构搜索空间转化为连续可微的空间,从而可以使用梯度下降等优化方法直接优化架构参数。 通过优化架构参数,可以搜索到高性能的神经网络架构。
3.4.1 梯度优化的核心思想
梯度优化的核心思想可以概括为以下几个步骤:
- 连续松弛 (Continuous Relaxation): 将离散的架构搜索空间转化为连续可微的空间。 例如,可以将离散的选择操作 (例如选择卷积层或池化层) 转化为连续的权重值,表示选择不同操作的概率。
- 架构编码 (Architecture Encoding): 将神经网络架构编码为一组可学习的参数,例如连接权重、操作选择概率等。
- 梯度优化 (Gradient Optimization): 使用梯度下降等优化方法,优化架构参数。 优化的目标通常是最小化验证集上的损失函数。
- 离散化 (Discretization): 将优化后的连续架构参数离散化,得到最终的神经网络架构。 例如,可以选择概率最高的的操作作为最终的选择。
3.4.2 基于梯度优化的 NAS 方法
- DARTS (Differentiable Architecture Search): DARTS 是基于梯度优化的 NAS 方法的代表作。 DARTS 将搜索空间定义为一个有向无环图 (DAG),每个节点表示一个特征图,每条边表示一个操作 (例如卷积、池化等)。 DARTS 使用 softmax 函数将离散的选择操作转化为连续的权重值,表示选择不同操作的概率。 然后,DARTS 使用梯度下降方法同时优化架构参数 (操作选择概率) 和网络权重。 DARTS 在 CIFAR-10 和 ImageNet 等数据集上取得了良好的性能。
- SNAS (Stochastic Neural Architecture Search): SNAS 也是一种基于梯度优化的 NAS 方法。 SNAS 使用 Gumbel-Softmax 技巧将离散的选择操作转化为连续的概率分布。 SNAS 通过最大化期望奖励来优化架构参数。 与 DARTS 相比,SNAS 引入了随机性,能够更好地探索搜索空间。
- ProxylessNAS: ProxylessNAS 针对移动设备等资源受限的平台,直接搜索适合部署的架构。 它通过二值化架构参数,使得在训练过程中只需要评估选定的路径,大大降低了计算成本。
3.4.3 梯度优化的优势与劣势
优势:
- 搜索效率高: 梯度优化方法通常具有较高的搜索效率,能够快速地收敛到局部最优解。
- 计算成本低: 梯度优化方法通常只需要进行一次或几次训练,计算成本较低。
- 易于实现: 梯度优化方法可以使用现有的深度学习框架实现,易于上手。
劣势:
- 可能陷入局部最优解: 梯度优化方法容易陷入局部最优解,难以找到全局最优解。
- 搜索空间受限: 为了保证搜索空间的连续可微性,梯度优化方法通常需要对搜索空间进行限制,例如限制网络结构、连接方式等。
- 离散化引入误差: 将连续的架构参数离散化时,可能会引入误差,导致最终的架构性能下降。
3.4.4 总结
基于梯度优化的搜索策略是 NAS 领域近年来发展迅速的一类方法。 这类方法将离散的架构搜索空间转化为连续可微的空间,从而可以使用梯度下降等优化方法直接优化架构参数。 梯度优化方法具有搜索效率高、计算成本低等优点,但也存在可能陷入局部最优解、搜索空间受限等缺点。 梯度优化方法适用于对搜索效率要求较高,但对全局最优解要求不高的场景。
3.5 基于贝叶斯优化的搜索策略 (Bayesian Optimization based Search Strategy)
贝叶斯优化 (Bayesian Optimization, BO) 是一种用于优化黑盒函数的全局优化方法。 在 NAS 领域,基于贝叶斯优化的搜索策略利用贝叶斯优化方法,构建代理模型来预测架构的性能,并指导搜索过程。 这类方法能够有效地处理昂贵的评估成本,并在有限的评估次数内找到高性能架构。
3.5.1 贝叶斯优化的核心思想
贝叶斯优化的核心思想可以概括为以下几个步骤:
- 构建代理模型 (Surrogate Model): 使用已知的架构性能数据,构建一个代理模型来预测未知架构的性能。 常用的代理模型包括高斯过程 (Gaussian Process, GP) 和树 Parzen 估计器 (Tree-structured Parzen Estimator, TPE)。
- 定义采集函数 (Acquisition Function): 定义一个采集函数,用于评估不同架构的价值。 采集函数综合考虑了代理模型的预测值和不确定性,用于指导搜索过程。 常用的采集函数包括期望提升 (Expected Improvement, EI) 和置信区间上界 (Upper Confidence Bound, UCB)。
- 选择下一个架构 (Select Next Architecture): 使用采集函数选择下一个要评估的架构。 选择的原则是最大化采集函数的值。
- 评估架构性能 (Evaluate Architecture Performance): 评估选定的架构在目标任务上的性能。
- 更新代理模型 (Update Surrogate Model): 将新评估的架构性能数据加入到已知数据中,更新代理模型。
- 迭代 (Iteration): 重复步骤 3-5,直到达到预设的评估次数或满足收敛条件。
3.5.2 基于贝叶斯优化的 NAS 方法
- NASBOT: NASBOT 将贝叶斯优化应用于 NAS 问题,使用高斯过程作为代理模型,并使用期望提升作为采集函数。 NASBOT 通过迭代地选择、评估和更新架构,最终找到高性能的神经网络。
- Auto-Keras: Auto-Keras 是一个自动化的机器学习框架,它使用贝叶斯优化来搜索神经网络的架构和超参数。 Auto-Keras 使用一个结构化的搜索空间,并使用 TPE 作为代理模型。
- BOHB (Bayesian Optimization with HyperBand): BOHB 结合了贝叶斯优化和 HyperBand 算法,能够有效地处理高维超参数优化问题。 BOHB 使用 TPE 作为代理模型,并使用 HyperBand 算法来加速搜索过程。
3.5.3 贝叶斯优化的优势与劣势
优势:
- 能够处理昂贵的评估成本: 贝叶斯优化方法能够有效地处理昂贵的评估成本,并在有限的评估次数内找到高性能架构。
- 全局优化能力强: 贝叶斯优化方法具有良好的全局优化能力,能够探索复杂的搜索空间,并有可能找到全局最优解或接近全局最优解。
- 能够处理高维搜索空间: 贝叶斯优化方法可以处理高维搜索空间,适用于同时优化多个超参数的情况。
劣势:
- 代理模型构建复杂: 构建合适的代理模型需要一定的专业知识和经验。
- 采集函数选择困难: 不同的采集函数适用于不同的场景,选择合适的采集函数需要一定的实验和分析。
- 计算成本较高: 虽然贝叶斯优化方法能够减少评估次数,但代理模型的构建和采集函数的计算也需要一定的计算成本。
3.5.4 总结
基于贝叶斯优化的搜索策略是 NAS 领域的重要分支,它利用贝叶斯优化方法,构建代理模型来预测架构的性能,并指导搜索过程。 贝叶斯优化方法具有能够处理昂贵的评估成本、全局优化能力强等优点,但也存在代理模型构建复杂、采集函数选择困难等缺点。 贝叶斯优化方法适用于评估成本较高,且需要全局优化的场景。
3.6 基于随机搜索的策略 (Random Search Strategy)
随机搜索 (Random Search, RS) 是一种简单而有效的全局优化方法。 在 NAS 领域,基于随机搜索的策略在搜索空间中随机采样架构,并评估其性能。 尽管看似简单,随机搜索在某些情况下也能取得令人惊讶的效果,并为更复杂的搜索策略提供性能对比的基准。
3.6.1 随机搜索的核心思想
随机搜索的核心思想非常简单:
- 随机采样 (Random Sampling): 在预定义的搜索空间中随机采样神经网络架构。
- 评估性能 (Evaluate Performance): 评估采样到的架构在目标任务上的性能。
- 选择最优 (Select Best): 选择性能最好的架构作为最终的搜索结果。
3.6.2 随机搜索的变体
尽管随机搜索本身非常简单,但可以通过一些变体来提高其搜索效率:
- 均匀随机采样 (Uniform Random Sampling): 在搜索空间中均匀地随机采样架构。 这是最简单的随机搜索方法。
- 重要性采样 (Importance Sampling): 根据一定的概率分布,对搜索空间中的不同区域进行采样。 例如,可以对已知性能较好的区域进行更高的采样概率。
- 网格搜索 (Grid Search): 将搜索空间离散化为网格,然后在网格中随机采样。 网格搜索可以保证对搜索空间的覆盖更全面。
3.6.3 随机搜索的优势与劣势
优势:
- 实现简单: 随机搜索的实现非常简单,不需要复杂的算法和模型。
- 易于并行化: 随机搜索可以并行评估多个架构,加速搜索过程。
- 避免陷入局部最优解: 随机搜索具有良好的全局搜索能力,能够避免陷入局部最优解。
- 提供性能基准: 随机搜索可以作为性能基准,用于评估更复杂的搜索策略的有效性。
劣势:
- 搜索效率低: 随机搜索的搜索效率较低,需要评估大量的架构才能找到高性能的架构。
- 无法利用历史信息: 随机搜索无法利用历史搜索信息来指导搜索过程。
- 对搜索空间敏感: 随机搜索的性能受到搜索空间的影响。 如果搜索空间定义不合理,可能会导致搜索结果不佳。
3.6.4 总结
基于随机搜索的策略是 NAS 领域的一种简单而有效的基线方法。 随机搜索具有实现简单、易于并行化等优点,但也存在搜索效率低、无法利用历史信息等缺点。 随机搜索适用于作为性能基准,或在计算资源极其有限的情况下使用。
3.7 不同搜索策略的比较与选择
经过前面的章节,我们已经详细了解了各种 NAS 的搜索策略。 为了更好地理解它们的优缺点,并选择合适的策略,我们进行如下比较:
| 搜索策略 |
优点 |
缺点 |
适用场景 |
| 进化算法 |
全局搜索能力强,灵活性高,并行性好 |
计算成本高,收敛速度慢,超参数敏感 |
探索复杂搜索空间,寻找全局最优解,计算资源允许的情况下 |
| 强化学习 |
能够学习复杂的架构生成模式,灵活性高,可以处理非平稳环境 |
计算成本高,对奖励信号敏感,探索与利用的平衡问题 |
需要学习复杂架构生成模式的场景,训练数据分布可能发生变化 |
| 梯度优化 |
搜索效率高,计算成本低,易于实现 |
可能陷入局部最优解,搜索空间受限,离散化引入误差 |
对搜索效率要求较高,但对全局最优解要求不高的场景 |
| 贝叶斯优化 |
能够处理昂贵的评估成本,全局优化能力强,能够处理高维搜索空间 |
代理模型构建复杂,采集函数选择困难,计算成本较高 |
评估成本较高,且需要全局优化的场景 |
| 随机搜索 |
实现简单,易于并行化,避免陷入局部最优解,提供性能基准 |
搜索效率低,无法利用历史信息,对搜索空间敏感 |
作为性能基准,或在计算资源极其有限的情况下使用 |
如何选择合适的搜索策略?
选择合适的 NAS 搜索策略需要综合考虑以下因素:
- 计算资源: 如果计算资源充足,可以选择基于进化算法或强化学习的搜索策略,以获得更好的性能。 如果计算资源有限,可以选择基于梯度优化或贝叶斯优化的搜索策略,以提高搜索效率。
- 评估成本: 如果评估成本较高,可以选择基于贝叶斯优化的搜索策略,以减少评估次数。 如果评估成本较低,可以选择基于梯度优化或随机搜索的策略。
- 搜索空间: 如果搜索空间复杂,可以选择基于进化算法或强化学习的搜索策略,以探索更广泛的架构空间。 如果搜索空间简单,可以选择基于梯度优化或随机搜索的策略。
- 性能要求: 如果对性能要求较高,可以选择基于进化算法或贝叶斯优化的搜索策略,以寻找全局最优解。 如果对性能要求不高,可以选择基于梯度优化或随机搜索的策略。
- 任务类型: 对于不同的任务类型,可能存在更适合的架构。例如,图像分类任务可能更适合使用卷积神经网络,而序列建模任务可能更适合使用循环神经网络。因此,在选择搜索策略时,需要考虑任务的特性。
总结
搜索策略是 NAS 的核心驱动力,它决定了如何在预定义的搜索空间中高效地探索,并找到最优或接近最优的神经网络架构。 不同的搜索策略在探索方式、优化目标和计算成本等方面存在显著差异。 选择合适的搜索策略需要综合考虑搜索空间的特性、评估策略的效率、计算资源的限制以及期望达到的性能目标。 希望本章的详细介绍能够帮助您更好地理解 NAS 的搜索策略,并在实际应用中做出明智的选择。