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