Neural Architecture Search (NAS)
Scopri come la Neural Architecture Search (NAS) automatizza la progettazione di modelli di deep learning. Scopri i suoi meccanismi fondamentali ed esplora modelli ottimizzati come Ultralytics YOLO26.
La Neural Architecture Search (NAS) è una tecnica sofisticata nell'ambito del Automated Machine Learning (AutoML) che automatizza la progettazione di reti neurali artificiali. Tradizionalmente, la progettazione di architetture di deep learning (DL) ad alte prestazioni richiedeva vasta competenza umana, intuizione e un dispendioso processo di tentativi ed errori. La NAS sostituisce questo processo manuale con strategie algoritmiche che esplorano sistematicamente un'ampia gamma di topologie di rete per scoprire la struttura ottimale per un compito specifico. Testando varie combinazioni di layer e operazioni, la NAS è in grado di identificare architetture che superano significativamente i modelli progettati da umani in termini di precisione, efficienza computazionale o velocità di inferenza.
Meccanismi principali della NAS#
Il processo di scoperta di un'architettura superiore coinvolge generalmente tre dimensioni fondamentali che interagiscono per trovare la migliore rete neurale (NN):
-
Search Space: Questo definisce l'insieme di tutte le possibili architetture che l'algoritmo può esplorare. Funziona come una libreria di blocchi di costruzione, come filtri di convoluzione, layer di pooling e varie funzioni di attivazione. Uno spazio di ricerca ben definito limita la complessità per garantire che la ricerca rimanga computazionalmente fattibile pur consentendo sufficiente flessibilità per l'innovazione.
-
Search Strategy: Invece di testare ogni possibilità (forza bruta), la NAS impiega algoritmi intelligenti per navigare nello spazio di ricerca in modo efficiente. Gli approcci comuni includono il reinforcement learning, in cui un agente impara a generare architetture migliori nel tempo, e gli algoritmi evolutivi, che mutano e combinano i modelli più performanti per generare candidati superiori.
-
Performance Estimation Strategy: Addestrare ogni rete candidata da zero è eccessivamente lento. Per accelerare questo processo, la NAS utilizza tecniche di stima—come l'addestramento su meno epoche, l'uso di dataset proxy a risoluzione inferiore o l'impiego del weight sharing—per classificare rapidamente il potenziale di un'architettura candidata.
Applicazioni nel mondo reale#
La NAS è diventata fondamentale nei settori in cui i vincoli hardware o i requisiti di performance sono rigidi, spingendo i confini della computer vision (CV) e di altri domini di IA.
- Efficient Edge Computing: Distribuire l'IA su dispositivi mobili richiede modelli che siano sia leggeri che veloci. La NAS è ampiamente utilizzata per scoprire architetture come MobileNetV3 e EfficientNet che riducono al minimo la latenza di inferenza mantenendo un'alta precisione. Questo è fondamentale per le applicazioni di edge AI, come l'analisi video in tempo reale su telecamere smart o droni autonomi.
- Medical Imaging: Nell'analisi di immagini mediche, la precisione è fondamentale. La NAS può personalizzare le reti per rilevare sottili anomalie in radiografie o risonanze magnetiche, trovando spesso nuovi percorsi di estrazione delle caratteristiche che gli ingegneri umani potrebbero trascurare. Questo porta a strumenti più affidabili per identificare condizioni come tumori cerebrali o fratture con maggiore sensibilità.
NAS vs. Concetti correlati#
Per comprendere il ruolo specifico della NAS, è utile distinguerla da tecniche di ottimizzazione simili:
- NAS vs. Hyperparameter Tuning: Sebbene entrambi implichino l'ottimizzazione, l'hyperparameter tuning si concentra sulla regolazione delle impostazioni di configurazione (come il learning rate o il batch size) per un'architettura fissa. Al contrario, la NAS modifica la struttura fondamentale del modello stesso, come il numero di layer o il modo in cui i neuroni sono connessi.
- NAS vs. Transfer Learning: Il transfer learning prende un modello esistente e pre-addestrato e adatta i suoi pesi a un nuovo compito. La NAS crea l'architettura del modello da zero (o cerca un backbone migliore) prima che inizi l'addestramento.
Utilizzo di modelli derivati dalla NAS#
Sebbene l'esecuzione di una ricerca NAS completa richieda significative risorse di calcolo GPU, gli sviluppatori possono facilmente utilizzare modelli creati tramite NAS. Ad esempio, l'architettura YOLO-NAS è stata scoperta utilizzando questi principi di ricerca per ottimizzare i compiti di object detection.
Il seguente esempio in Python mostra come caricare e utilizzare un modello NAS pre-cercato utilizzando il pacchetto 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])]}")Per chi desidera addestrare modelli allo stato dell'arte senza la complessità della NAS, Ultralytics YOLO26 offre un'architettura altamente ottimizzata pronta all'uso, incorporando i più recenti progressi della ricerca. Puoi gestire facilmente dataset, addestramento e distribuzione per questi modelli utilizzando la Ultralytics Platform, che semplifica l'intero ciclo di vita MLOps.






