Neural Architecture Search (NAS)
Descubra como o Neural Architecture Search (NAS) automatiza o design de redes neurais para um desempenho otimizado em detecção de objetos, IA e muito mais.
A Pesquisa de Arquitetura Neural (NAS) é uma técnica sofisticada no domínio da
Aprendizagem Automática de Máquinas (AutoML)
que automatiza a conceção de
redes neurais artificiais. Tradicionalmente,
tradicionalmente, a conceção de arquitecturas de elevado desempenho exigia um profundo conhecimento do domínio e extensas tentativas e erros manuais. O NAS
revoluciona este processo ao utilizar algoritmos para explorar sistematicamente um vasto número de topologias de rede
topologias de rede possíveis, procurando a estrutura óptima que maximiza as métricas de desempenho, tais como
precisão ou eficiência. Esta automatização não só
acelera o desenvolvimento de modelos de
modelos de aprendizagem profunda, mas também democratiza o acesso
à IA de última geração, reduzindo a dependência da intuição humana para a conceção de redes.
Componentes principais do NAS
O processo NAS é geralmente composto por três elementos fundamentais que funcionam em conjunto para descobrir a melhor
arquitetura do modelo:
-
Espaço de pesquisa: Define o conjunto de todas as arquitecturas possíveis que o algoritmo pode explorar. Especifica
especifica os blocos de construção básicos, tais como tipos de camadas (por exemplo
convolução, pooling), funções de ativação e como
e como podem ser ligadas. Um espaço de pesquisa bem concebido é crucial, pois limita a complexidade e garante a viabilidade dos modelos resultantes.
viabilidade dos modelos resultantes.
-
Estratégia de pesquisa: Este é o método utilizado para navegar no espaço de pesquisa. Em vez de uma abordagem de força bruta
força bruta, o NAS utiliza estratégias inteligentes como
aprendizagem por reforço,
algoritmos evolutivos, ou
métodos baseados em gradientes (como o DARTS). Estas estratégias orientam a
Estas estratégias orientam a pesquisa para arquitecturas mais promissoras com base no feedback de iterações anteriores.
-
Estratégia de estimativa de desempenho: Avaliar cada arquitetura candidata treinando-a de
do zero é computacionalmente dispendioso. Para acelerar este processo, o NAS utiliza estratégias de estimativa como a partilha de pesos, o treino
num subconjunto dos dados, ou o treino durante menos épocas. Isto
permite que o algoritmo classifique rapidamente os candidatos e concentre os recursos nos projectos mais promissores.
Aplicações no Mundo Real
O NAS tem sido fundamental na criação de alguns dos modelos mais eficientes e poderosos da IA moderna.
-
Visão computacional: Em tarefas como
deteção de objectos e
classificação de imagens, a NAS gerou arquitecturas
arquitecturas que superam as arquitecturas concebidas por humanos. A família
família EfficientNet
é um excelente exemplo, em que o NAS foi utilizado para encontrar uma rede de base que foi depois ampliada para atingir a
precisão de última geração com um número significativamente menor de parâmetros. Da mesma forma, modelos como o
YOLO utilizam estes princípios para otimizar tanto a
velocidade e precisão.
-
IA de ponta e implantação móvel: O NAS é amplamente utilizado para conceber modelos leves adaptados à
computação de ponta. Ao incorporar restrições de hardware
restrições de hardware (como latência e consumo
consumo de energia) diretamente no objetivo de pesquisa, o NAS pode descobrir arquitecturas que funcionam eficientemente em dispositivos móveis
dispositivos móveis sem sacrificar demasiado o desempenho. Isto é fundamental para aplicações em
veículos autónomos e IoT.
NAS vs. Afinação de hiperparâmetros
É importante distinguir a Pesquisa de Arquitetura Neural da
sintonização de hiperparâmetros, pois ambas envolvem
envolvem otimização, mas visam aspectos diferentes de um modelo.
-
A Pesquisa de Arquitetura Neural (NAS) centra-se na procura da estrutura óptima da
rede neural propriamente dita - determinando o número de camadas, o tipo de operações e as ligações entre os neurónios.
-
O Hyperparameter Tuning centra-se na otimização das definições de configuração para uma
arquitetura fixa, como a taxa de aprendizagem,
tamanho do lote ou tipo de optimizador.
Enquanto o NAS constrói a estrutura do "cérebro", a afinação dos hiperparâmetros ensina esse cérebro a aprender da forma mais
de forma mais eficaz. Ambos são frequentemente utilizados em conjunto num pipeline AutoML para obter os melhores resultados possíveis.
Utilização de modelos derivados da NAS
Embora a execução de um processo NAS completo possa exigir muitos recursos, os desenvolvedores podem facilmente aproveitar modelos pré-treinados que
foram descobertos usando o NAS. A biblioteca Ultralytics suporta o carregamento e a execução destas arquitecturas optimizadas, tais como
YOLO, permitindo que os utilizadores beneficiem da investigação NAS sem necessitarem dos recursos computacionais para efectuarem a
pesquisa.
O exemplo seguinte demonstra como carregar um modelo derivado do NAS utilizando Python:
from ultralytics import NAS
# Load a pre-trained YOLO-NAS model discovered via architecture search
model = NAS("yolo_nas_s.pt")
# Display the model's architecture information
model.info()
# Validate the model's performance on the COCO8 dataset
metrics = model.val(data="coco8.yaml")