Neural Architecture Search (NAS)
Узнай, как нейросетевой поиск архитектуры (NAS) автоматизирует проектирование моделей глубокого обучения. Открой для себя его основные механизмы и изучи оптимизированные модели, такие как Ultralytics YOLO26.
Neural Architecture Search (NAS) — это сложный метод в области Automated Machine Learning (AutoML), который автоматизирует проектирование искусственных нейронных сетей. Традиционно создание высокопроизводительных архитектур deep learning (DL) требовало обширного человеческого опыта, интуиции и трудоемкого метода проб и ошибок. NAS заменяет этот ручной процесс алгоритмическими стратегиями, которые систематически исследуют широкий спектр топологий сетей для поиска оптимальной структуры под конкретную задачу. Тестируя различные комбинации слоев и операций, NAS способна находить архитектуры, которые значительно превосходят разработанные человеком модели по accuracy, вычислительной эффективности или скорости инференса.
Основные механизмы NAS#
Процесс поиска превосходной архитектуры обычно включает три фундаментальных измерения, взаимодействие которых позволяет найти лучшую neural network (NN):
-
Search Space: Это определяет набор всех возможных архитектур, которые алгоритм может исследовать. Он работает как библиотека строительных блоков, таких как фильтры convolution, слои пулинга и различные activation functions. Четко определенное пространство поиска ограничивает сложность, гарантируя вычислительную осуществимость процесса и оставляя при этом достаточно гибкости для инноваций.
-
Search Strategy: Вместо тестирования каждой возможности (грубой силы) NAS использует интеллектуальные алгоритмы для эффективной навигации по пространству поиска. Распространенные подходы включают reinforcement learning, где агент учится создавать лучшие архитектуры со временем, и evolutionary algorithms, которые мутируют и комбинируют лучшие модели для выведения превосходных вариантов.
-
Performance Estimation Strategy: Обучение каждой кандидатой сети с нуля требует недопустимо много времени. Чтобы ускорить этот процесс, NAS использует методы оценки — такие как обучение на меньшем количестве epochs, использование прокси-датасетов более низкого разрешения или применение weight sharing, — чтобы быстро ранжировать потенциал кандидатной архитектуры.
Реальные приложения#
NAS стала критически важной в отраслях со строгими ограничениями оборудования или жесткими требованиями к производительности, расширяя границы computer vision (CV) и других областей искусственного интеллекта.
- Efficient Edge Computing: Развертывание ИИ на мобильных устройствах требует легких и быстрых моделей. NAS широко используется для поиска таких архитектур, как MobileNetV3 и EfficientNet, которые минимизируют inference latency, сохраняя при этом высокую точность. Это жизненно важно для приложений edge AI, таких как видеоаналитика в реальном времени на умных камерах или автономных дронах.
- Medical Imaging: В medical image analysis точность имеет первостепенное значение. NAS может настраивать сети для обнаружения незаметных аномалий на рентгенограммах или МРТ-сканах, часто находя новые пути извлечения признаков, которые инженеры могут упустить из виду. Это приводит к созданию более надежных инструментов для выявления таких состояний, как brain tumors или переломы, с более высокой чувствительностью.
NAS и связанные с ней концепции#
Чтобы понять конкретную роль NAS, полезно отличать её от схожих методов оптимизации:
- NAS vs. Hyperparameter Tuning: Хотя оба метода связаны с оптимизацией, hyperparameter tuning фокусируется на настройке конфигурационных параметров (таких как learning rate или batch size) для фиксированной архитектуры. В отличие от этого, NAS меняет саму фундаментальную структуру модели, например количество слоев или способ соединения нейронов.
- NAS vs. Transfer Learning: Transfer learning берет существующую предварительно обученную модель и адаптирует ее веса под новую задачу. NAS создает архитектуру модели с нуля (или ищет лучший backbone) перед началом обучения.
Использование моделей, полученных с помощью NAS#
Хотя запуск полноценного поиска NAS требует значительных GPU computing resources, разработчики могут легко использовать модели, созданные с помощью NAS. Например, архитектура YOLO-NAS была обнаружена с использованием этих принципов поиска для оптимизации задач object detection.
Следующий пример на Python демонстрирует, как загрузить и использовать предварительно найденную модель NAS с помощью пакета ultralytics:
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.






