Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Neural Architecture Search (NAS)

A busca por arquiteturas neurais (NAS) automatiza o projeto de redes neurais pesquisando camadas e conexões. Conheça os métodos, os custos computacionais e os modelos desenvolvidos com NAS.

A pesquisa de arquitetura neuronal (NAS) é o ramo da aprendizagem automática automatizada (AutoML) que concebe automaticamente a estrutura de uma rede neuronal. Em vez de um engenheiro escolher manualmente os tipos de camada de convolução e de outras camadas, a profundidade, a largura e as ligações, um algoritmo de pesquisa propõe arquiteturas candidatas, estima o desempenho de cada uma na tarefa e usa os resultados para propor outras melhores. O objetivo costuma ser a precisão, muitas vezes combinada com um custo como a latência de inferência, o número de parâmetros ou os FLOPs no hardware de destino. A NAS produziu vários backbones amplamente utilizados em visão computacional, incluindo EfficientNet e MobileNetV3.

Como funciona a NAS#

Uma análise publicada no Journal of Machine Learning Research organiza os métodos NAS segundo três dimensões:

  1. Espaço de pesquisa: O conjunto de arquiteturas que podem ser criadas, incluindo os tipos de operações, os tamanhos dos kernels e as ligações de salto permitidos, bem como a forma como podem ser ligados. Muitos métodos procuram uma pequena célula repetitiva e empilham cópias da mesma, o que reduz o espaço e permite transferir para um conjunto de dados grande uma célula encontrada num conjunto pequeno.
  2. Estratégia de pesquisa: O algoritmo que escolhe os candidatos a experimentar, desde controladores de aprendizagem por reforço e métodos evolutivos até métodos baseados em gradientes e amostragem aleatória simples.
  3. Estratégia de estimativa do desempenho: A forma de avaliar um candidato sem o treinar por completo, recorrendo a menos épocas de treino, imagens ou conjuntos de dados mais pequenos, previsões da precisão final ou pesos partilhados entre candidatos.

De milhares de dias de GPU a horas#

As primeiras abordagens de NAS eram dispendiosas porque cada candidato era treinado até convergir. No estudo de Zoph e Le de 2016, um controlador recorrente treinado com aprendizagem por reforço gerava as redes e a pesquisa era executada simultaneamente em 800 GPU; o trabalho posterior sobre NASNet utilizou 500 GPU durante quatro dias para encontrar uma célula no CIFAR-10 que pudesse ser transferida para o ImageNet. O AmoebaNet obteve resultados semelhantes com evolução regularizada, a um custo de cerca de 3,150 dias de GPU. O ENAS reduziu a pesquisa para menos de 16 horas numa única GPU, partilhando pesos do modelo entre todos os candidatos, tratados como subgrafos de uma única rede grande; o DARTS converteu a escolha discreta de operações em pesos contínuos, permitindo otimizar a própria arquitetura com descida do gradiente em poucos dias de GPU. A avaliação comparativa também moderou o entusiasmo pelo campo: a pesquisa aleatória com paragem antecipada teve um desempenho pelo menos tão bom como o ENAS nos benchmarks Penn Treebank e CIFAR-10.

NAS consciente do hardware e modelos criados por NAS#

A NAS teve o seu maior impacto prático em modelos eficientes para IA de edge, nos quais é necessário equilibrar a precisão com a velocidade num dispositivo específico. O MnasNet incorporou na função objetivo da pesquisa a latência medida em telemóveis reais e alcançou uma precisão top-1 de 75,2% no ImageNet a 78 ms num telemóvel Pixel, sendo 1,8 vezes mais rápido do que o MobileNetV2, com uma precisão 0,5% superior. O EfficientNet-B0 resultou de uma pesquisa semelhante e foi depois escalado para a família B1-B7 com escalonamento composto; o MobileNetV3 combinou NAS consciente do hardware com o algoritmo NetAdapt para otimizar o modelo para CPUs móveis. Para a deteção de objetos, os modelos YOLO-NAS da Deci, encontrados com o motor de pesquisa AutoNAC e concebidos para reduzir ao mínimo a perda de precisão após a quantização INT8, podem ser executados no pacote Ultralytics através da classe NAS para inferência, validação e exportação, mas não para treino. A NVIDIA adquiriu entretanto a Deci, e a equipa original já não atualiza os modelos.

Exemplo mínimo de NAS#

O exemplo seguinte executa a estratégia de pesquisa mais simples, a amostragem aleatória, num pequeno espaço de pesquisa de perceptrões multicamada com o conjunto de dígitos manuscritos do scikit-learn. Cada candidato é treinado durante apenas 30 épocas, como estimativa económica do desempenho, e avaliado com os dados de validação:

import random
import warnings

from sklearn.datasets import load_digits
from sklearn.exceptions import ConvergenceWarning
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier

warnings.simplefilter("ignore", ConvergenceWarning)  # short training runs are the cheap estimate
X, y = load_digits(return_X_y=True)
X_train, X_val, y_train, y_val = train_test_split(X / 16, y, random_state=0)

# Search space: 1-3 hidden layers, each 8-128 units wide. Search strategy: 12 random samples
random.seed(0)
space = [8, 16, 32, 64, 128]
candidates = {tuple(random.choices(space, k=random.randint(1, 3))) for _ in range(12)}

# Performance estimation: train each candidate for only 30 epochs, then score it on validation data
scores = {}
for layers in candidates:
    model = MLPClassifier(hidden_layer_sizes=layers, max_iter=30, random_state=0)
    scores[layers] = model.fit(X_train, y_train).score(X_val, y_val)

worst, best = min(scores, key=scores.get), max(scores, key=scores.get)
print(f"{len(scores)} architectures: worst {worst} {scores[worst]:.3f}, best {best} {scores[best]:.3f}")

As 12 amostras produzem 10 arquiteturas distintas, e a precisão de validação varia entre 0.398 para duas camadas de 8 unidades e 0.978 para camadas de 128, 128 e 16 unidades; só a escolha da arquitetura altera a precisão em quase 60 pontos. Uma execução completa de NAS voltaria a treinar o melhor modelo até convergir e comunicaria a sua pontuação num conjunto de teste separado.

  • Ajuste de hiperparâmetros: Otimiza as configurações de treino, como a taxa de aprendizagem, para uma arquitetura fixa. A NAS trata a própria arquitetura como variável, e as duas técnicas são frequentemente executadas em conjunto.
  • Poda de modelos e destilação de conhecimento: Reduzem ou imitam uma rede existente após o treino, enquanto a NAS procura um design eficiente antes do treino.
  • Aprendizagem por transferência: Reutiliza os pesos aprendidos de um modelo pré-treinado. A NAS decide a estrutura que esses pesos preenchem, e redes descobertas pela NAS, como EfficientNet, são elas próprias backbones pré-treinadas populares.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina