深圳Yolo 视觉
深圳
立即加入
词汇表

神经架构搜索 (NAS)

了解神经架构搜索 (NAS) 如何自动执行神经网络设计,从而优化对象检测、AI 等方面的性能。

神经架构搜索(NAS)是自动机器学习(AutoML)领域的一项复杂技术。 自动机器学习(AutoML) 自动设计 人工神经网络。传统上 设计高性能架构需要深厚的领域专业知识和大量的人工试错。NAS 彻底改变了这一过程,它利用算法系统地探索大量可能的网络 拓扑结构,寻找能最大限度提高性能指标(如准确率或效率)的最佳结构。 准确性或效率。这种自动化不仅 加速了 深度学习模型的开发,而且还使 网络设计对人类直觉的依赖。

NAS 的核心组件

NAS 流程通常由三个基本组成部分组成,它们共同作用以发现最佳的 模型架构:

  1. 搜索空间:它定义了算法可以探索的所有可能架构的集合。它 它规定了基本的构建模块,如层的类型(如 卷积、池化)、激活函数以及它们的连接方式。 连接方式。一个精心设计的搜索空间至关重要,因为它能限制复杂性并确保所生成模型的可行性。 所生成模型的可行性。
  2. 搜索策略:这是导航搜索空间的方法。NAS采用智能策略,如 NAS采用智能策略,如 强化学习 进化算法或 基于梯度的方法(如DARTS)。这些策略可引导 这些策略会根据之前迭代的反馈,引导搜索更有前途的架构。
  3. 性能评估策略:通过从头开始训练来评估每个候选架构 评估每个候选架构的计算成本很高。为了加快速度,NAS 采用了权重共享、在数据子集上训练或减少训练次数等估算策略。 在数据子集上进行训练,或减少训练次数。这样 这样,算法就能快速对候选架构进行排序,并将资源集中在最有前途的设计上。

实际应用

NAS 在创建现代人工智能中一些最高效、最强大的模型方面发挥了重要作用。

  • 计算机视觉在诸如 物体检测图像分类等任务中,NAS 在物体检测和图像分类等任务中,NAS 生成的架构优于人类设计的架构。其 EfficientNet 系列 就是一个很好的例子,在这个系列中,NAS 被用来找到一个基线网络,然后将其放大,以更少的参数达到 的准确性。同样,像 YOLO模型也是利用这些原理来优化速度和精度。 速度和精度。
  • 边缘人工智能和移动部署:NAS 被广泛用于设计为边缘计算量身定制的轻量级模型。 边缘计算。通过将硬件 限制(如延迟和功耗 功耗)直接纳入搜索目标,NAS 可以发现在移动设备上高效运行的架构,同时又不会牺牲太多性能。 的架构。这对于 自动驾驶汽车和物联网中的应用至关重要。

NAS 与超参数调整

重要的是要将神经架构搜索与 超参数调整,因为两者都涉及优化,但针对的是模型的不同方面。 优化,但针对的是模型的不同方面。

  • 神经架构搜索(NAS)侧重于寻找神经网络本身的最佳结构--确定层数、操作类型和神经元之间的连接。 确定层数、操作类型和神经元之间的连接。
  • 超参数调整侧重于优化固定架构的配置设置,如学习率、学习时间、学习速度、学习效果、学习成本和学习效率。 架构的配置设置,如学习率、批量大小或优化器类型、 批量大小或优化器类型。

在 NAS 构建 "大脑 "结构的同时,超参数调整则教导 "大脑 "如何最有效地学习。 最有效地学习。这两种方法通常在 AutoML 管道中同时使用,以达到最佳效果。

使用 NAS 衍生模型

虽然运行一个完整的 NAS 进程可能会耗费大量资源,但开发人员可以轻松地利用通过 NAS 使用 NAS 发现的预训练模型。Ultralytics 库支持加载和运行这些优化架构,如 YOLO,使用户能够从 NAS 研究中获益,而不需要计算资源来执行搜索。 搜索。

下面的示例演示了如何使用Python 加载 NAS 衍生模型:

from ultralytics import NAS

# Load a pre-trained YOLO-NAS model discovered via architecture search
model = NAS("yolo_nas_s.pt")

# Display the model's architecture information
model.info()

# Validate the model's performance on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入