Neural Architecture Search (NAS)
Узнай, как поиск нейронной архитектуры (NAS) автоматизирует проектирование моделей глубокого обучения. Изучи его ключевые механизмы и оптимизированные модели, такие как Ultralytics YOLO26.
Поиск архитектуры нейронной сети (NAS) — это сложный метод в области автоматизированного машинного обучения (AutoML), который автоматизирует проектирование искусственных нейронных сетей. Традиционно разработка высокопроизводительных архитектур глубокого обучения (DL) требовала значительных знаний и опыта, интуиции и длительного перебора методом проб и ошибок. NAS заменяет этот ручной процесс алгоритмическими стратегиями, систематически исследующими огромное количество топологий сетей для поиска оптимальной структуры под конкретную задачу. Проверяя различные сочетания слоёв и операций, NAS может находить архитектуры, которые значительно превосходят разработанные людьми модели по точности, вычислительной эффективности или скорости инференса.
Основные механизмы NAS#
Процесс поиска улучшенной архитектуры обычно включает три ключевых измерения, которые взаимодействуют друг с другом для поиска лучшей нейронной сети (NN):
-
Пространство поиска: определяет множество всех возможных архитектур, которые может исследовать алгоритм. Оно действует как библиотека строительных блоков, таких как фильтры свёртки, слои пулинга и различные функции активации. Чётко определённое пространство поиска ограничивает сложность, чтобы поиск оставался вычислительно выполнимым, сохраняя при этом достаточную гибкость для новых решений.
-
Стратегия поиска: вместо проверки всех возможных вариантов (полного перебора) NAS использует интеллектуальные алгоритмы для эффективной навигации в пространстве поиска. К распространённым подходам относятся обучение с подкреплением, при котором агент со временем учится создавать более эффективные архитектуры, и эволюционные алгоритмы, которые мутируют и комбинируют наиболее эффективные модели, формируя улучшенных кандидатов.
-
Стратегия оценки производительности: обучение каждой кандидатной сети с нуля занимает неприемлемо много времени. Чтобы ускорить процесс, NAS использует методы оценки — например, обучение на меньшем количестве эпох, применение наборов данных меньшего разрешения в качестве прокси или использование совместного использования весов, — чтобы быстро оценивать потенциал кандидатной архитектуры.
Практические применения#
NAS стал критически важным в отраслях со строгими аппаратными ограничениями или требованиями к производительности, расширяя границы компьютерного зрения (CV) и других областей ИИ.
- Эффективные периферийные вычисления: для развёртывания ИИ на мобильных устройствах требуются одновременно лёгкие и быстрые модели. NAS широко используется для поиска таких архитектур, как MobileNetV3 и EfficientNet, которые минимизируют задержку инференса, сохраняя высокую точность. Это крайне важно для приложений периферийного ИИ, например для анализа видео в реальном времени на интеллектуальных камерах или автономных дронах.
- Медицинская визуализация: в анализе медицинских изображений точность имеет первостепенное значение. NAS может адаптировать сети для обнаружения малозаметных аномалий на рентгеновских снимках или МРТ, часто находя новые пути извлечения признаков, которые инженеры могли бы не заметить. Это приводит к созданию более надёжных инструментов для выявления таких состояний, как опухоли мозга или переломы, с более высокой чувствительностью.
NAS и связанные концепции#
Чтобы понять конкретную роль NAS, полезно отличать его от похожих методов оптимизации:
- NAS и настройка гиперпараметров: хотя оба подхода связаны с оптимизацией, настройка гиперпараметров сосредоточена на изменении параметров конфигурации, таких как скорость обучения или размер пакета, для фиксированной архитектуры. В отличие от этого, NAS изменяет саму фундаментальную структуру модели, например количество слоёв или способ соединения нейронов.
- NAS и перенос обучения: перенос обучения использует существующую предварительно обученную модель и адаптирует её веса к новой задаче. NAS создаёт архитектуру модели с нуля (или выполняет поиск более эффективного бэкбона) до начала обучения.
Использование моделей, полученных с помощью NAS#
Хотя для полноценного поиска NAS требуются значительные вычислительные ресурсы GPU, разработчики могут легко использовать модели, созданные с помощью NAS. Например, архитектура YOLO-NAS была найдена с использованием этих принципов поиска и оптимизирована для задач обнаружения объектов.
В следующем примере на 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.









