Neural Architecture Search (NAS)
学习神经架构搜索 (NAS) 如何实现深度学习模型设计的自动化。发现其核心机制,并探索诸如 Ultralytics YOLO26 之类的优化模型。
神经架构搜索 (NAS) 是自动机器学习 (AutoML) 领域中的一项复杂技术,用于自动化设计人工神经网络。传统上,工程化构建高性能的深度学习 (DL) 架构需要大量的专业知识、直觉以及耗时的试错。NAS 用算法策略取代了这一人工过程,系统地探索广泛的网络拓扑,为特定任务寻找最优结构。通过测试各种层和操作的组合,NAS 能够识别在准确率、计算效率或推理速度方面显著优于人类设计模型的架构。
NAS 的核心机制#
寻找更优架构的过程通常涉及三个基本维度,它们相互作用以找到最好的神经网络 (NN):
-
搜索空间:这定义了算法可以探索的所有可能架构的集合。它就像一个构建块库,例如卷积滤波器、池化层和各种激活函数。一个定义良好的搜索空间可以限制复杂度,确保搜索在计算上是可行的,同时为创新留出足够的灵活性。
-
搜索策略:NAS 不去测试每一种可能性(暴力破解),而是采用智能算法来高效地遍历搜索空间。常见的方法包括强化学习(Agent 在其中随着时间推移学习生成更好的架构)以及进化算法(对表现最好的模型进行变异和组合以繁育更优秀的候选者)。
-
性能估计策略:从头开始训练每一个候选网络速度慢得令人发指。为了加速这一过程,NAS 使用了估计技术——例如在较少的轮次 (epochs)上训练、使用较低分辨率的代理数据集或采用权重共享——来快速对候选架构的潜力进行排名。
实际应用#
在硬件限制或性能要求严格的行业中,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 生命周期。






