Neural Architecture Search (NAS)
了解神经架构搜索(NAS)如何自动化深度学习模型设计。探索其核心机制以及 Ultralytics YOLO26 等优化模型。
神经架构搜索 (NAS) 是自动化机器学习 (AutoML)领域中的一种复杂技术,可自动设计人工神经网络。传统上,构建高性能深度学习 (DL)架构需要丰富的人类专业知识、直觉以及耗时的反复试验。NAS 通过算法策略取代这一手动过程,系统地探索大量网络拓扑结构,从而为特定任务发现最优结构。通过测试不同层和操作的组合,NAS 可以发现一些架构,在准确率、计算效率或推理速度方面显著优于人工设计的模型。
NAS 的核心机制#
发现更优架构的过程通常涉及三个相互作用的基本维度,以找到最佳的神经网络 (NN):
-
搜索空间:定义算法可以探索的所有可能架构的集合。它类似于一个积木库,其中包含卷积滤波器、池化层和各种激活函数。定义良好的搜索空间会约束复杂度,确保搜索在计算上可行,同时为创新保留足够的灵活性。
-
搜索策略:NAS 不会测试每一种可能性(穷举法),而是采用智能算法高效地遍历搜索空间。常见方法包括强化学习,其中智能体会随着时间推移学习生成更优的架构;以及进化算法,通过变异和组合表现最好的模型来产生更优候选方案。
-
性能估计策略:从头训练每个候选网络的速度慢得难以接受。为加快这一过程,NAS 会使用估计技术,例如在较少的训练周期上进行训练、使用较低分辨率的代理数据集或采用权重共享,以便快速评估候选架构的潜力。
实际应用#
NAS 已成为硬件限制或性能要求严格的行业中的关键技术,推动了计算机视觉 (CV)及其他 AI 领域的发展边界。
- 高效边缘计算:在移动设备上部署 AI 需要兼具轻量和高速度的模型。NAS 被广泛用于发现 MobileNetV3 和 EfficientNet 等架构,在保持高精度的同时最大限度地降低推理延迟。这对于边缘 AI应用至关重要,例如智能摄像头上的实时视频分析或自主无人机。
- 医学影像:在医学图像分析中,准确性至关重要。NAS 可以针对 X 射线或 MRI 扫描中的细微异常检测定制网络,常常能找到人工工程师可能忽略的新型特征提取路径。这将带来更可靠的工具,以更高的敏感性识别脑肿瘤或骨折等情况。
NAS 与相关概念的比较#
要理解 NAS 的具体作用,有必要将其与类似的优化技术区分开来:
- NAS 与超参数调优:虽然两者都涉及优化,但超参数调优侧重于调整固定架构的配置设置(例如学习率或批量大小)。相比之下,NAS 会改变模型本身的基本结构,例如层数或神经元的连接方式。
- NAS 与迁移学习:迁移学习会采用一个现有的预训练模型,并将其权重适配到新任务。NAS 则会从头创建模型架构(或搜索更优的骨干网络),然后再开始训练。
使用 NAS 衍生模型#
虽然运行完整的 NAS 搜索需要大量的GPU 计算资源,但开发者可以轻松使用通过 NAS 创建的模型。例如,YOLO-NAS架构就是利用这些搜索原则发现的,用于优化目标检测任务。
以下 Python 示例演示了如何使用 ultralytics 包加载和使用预先搜索得到的 NAS 模型:
from ultralytics import NAS
# Load a pre-trained YOLO-NAS model (architecture found via NAS)
# 'yolo_nas_s.pt' refers to the small version of the model
model = NAS("yolo_nas_s.pt")
# Run inference on an image to detect objects
# This utilizes the optimized architecture for fast detection
results = model("https://ultralytics.com/images/bus.jpg")
# Print the top detected class
print(f"Detected: {results[0].names[int(results[0].boxes.cls[0])]}")对于希望在不承担 NAS 复杂性的情况下训练最先进模型的用户,Ultralytics YOLO26 开箱即用地提供了高度优化的架构,并融入了研究领域的最新进展。你可以使用Ultralytics Platform轻松管理这些模型的数据集、训练和部署,从而简化整个 MLOps 生命周期。









