Neural Architecture Search (NAS)
Scopri come la ricerca dell'architettura neurale (NAS) automatizza la progettazione dei modelli di deep learning. Approfondisci i suoi meccanismi fondamentali ed esplora modelli ottimizzati come Ultralytics YOLO26.
La Ricerca dell'architettura neurale (NAS) è una tecnica sofisticata nell'ambito dell'apprendimento automatico automatizzato (AutoML) che automatizza la progettazione delle reti neurali artificiali. Tradizionalmente, l'ingegnerizzazione di architetture di apprendimento profondo (DL) ad alte prestazioni richiedeva una vasta competenza umana, intuito e lunghe attività di tentativi ed errori. La NAS sostituisce questo processo manuale con strategie algoritmiche che esplorano sistematicamente una vasta gamma di topologie di rete per scoprire la struttura ottimale per un'attività specifica. Testando diverse combinazioni di livelli e operazioni, la NAS può identificare architetture che superano significativamente i modelli progettati dall'uomo in termini di accuratezza, efficienza computazionale o velocità di inferenza.
Meccanismi fondamentali della NAS#
Il processo di scoperta di un'architettura superiore generalmente coinvolge tre dimensioni fondamentali che interagiscono per trovare la migliore rete neurale (NN):
-
Spazio di ricerca: definisce l'insieme di tutte le architetture possibili che l'algoritmo può esplorare. Funziona come una libreria di blocchi costitutivi, come filtri di convoluzione, livelli di pooling e varie funzioni di attivazione. Uno spazio di ricerca ben definito limita la complessità per garantire che la ricerca rimanga computazionalmente fattibile, consentendo al contempo sufficiente flessibilità per l'innovazione.
-
Strategia di ricerca: invece di testare ogni possibilità (forza bruta), la NAS impiega algoritmi intelligenti per navigare in modo efficiente nello spazio di ricerca. Gli approcci comuni includono l'apprendimento per rinforzo, in cui un agente impara a generare architetture migliori nel tempo, e gli algoritmi evolutivi, che modificano e combinano i modelli con le migliori prestazioni per generare candidati superiori.
-
Strategia di stima delle prestazioni: addestrare ogni rete candidata da zero è proibitivamente lento. Per accelerare il processo, la NAS utilizza tecniche di stima, come l'addestramento su un numero inferiore di epoche, l'utilizzo di dataset proxy a risoluzione inferiore o l'impiego della condivisione dei pesi, 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 prestazionali sono stringenti, spingendo oltre i limiti della visione artificiale (CV) e di altri ambiti dell'IA.
- Elaborazione edge efficiente: implementare l'IA sui dispositivi mobili richiede modelli leggeri e veloci. La NAS viene ampiamente utilizzata per scoprire architetture come MobileNetV3 ed EfficientNet che riducono al minimo la latenza di inferenza mantenendo un'elevata precisione. Questo è fondamentale per le applicazioni di IA edge, come l'analisi video in tempo reale su telecamere intelligenti o droni autonomi.
- Imaging medico: nell'analisi delle immagini mediche, l'accuratezza è fondamentale. La NAS può adattare le reti per rilevare anomalie sottili nelle radiografie o nelle scansioni MRI, trovando spesso nuovi percorsi di estrazione delle caratteristiche che gli ingegneri umani potrebbero trascurare. Questo porta a strumenti più affidabili per identificare condizioni come i tumori cerebrali o le fratture con una sensibilità maggiore.
NAS e concetti correlati#
Per comprendere il ruolo specifico della NAS, è utile distinguerla da tecniche di ottimizzazione simili:
- NAS e ottimizzazione degli iperparametri: sebbene entrambe coinvolgano l'ottimizzazione, l'ottimizzazione degli iperparametri si concentra sulla regolazione delle impostazioni di configurazione, come il tasso di apprendimento o la dimensione del batch, per un'architettura fissa. Al contrario, la NAS modifica la struttura fondamentale del modello stesso, ad esempio il numero di livelli o il modo in cui i neuroni sono collegati.
- NAS e transfer learning: il transfer learning utilizza un modello esistente e preaddestrato e adatta i suoi pesi a una nuova attività. La NAS crea l'architettura del modello da zero (oppure cerca un backbone migliore) prima dell'inizio dell'addestramento.
Utilizzo dei modelli derivati dalla NAS#
Sebbene eseguire una ricerca NAS completa richieda notevoli risorse di calcolo GPU, gli sviluppatori possono utilizzare facilmente modelli creati tramite NAS. Ad esempio, l'architettura YOLO-NAS è stata scoperta utilizzando questi principi di ricerca per ottimizzarla per le attività di rilevamento degli oggetti.
Il seguente esempio Python mostra come caricare e utilizzare un modello NAS preselezionato usando 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 all'avanguardia senza la complessità della NAS, Ultralytics YOLO26 offre un'architettura altamente ottimizzata pronta all'uso, che incorpora gli ultimi progressi della ricerca. Puoi gestire facilmente dataset, addestramento e deployment per questi modelli utilizzando la Ultralytics Platform, che semplifica l'intero ciclo di vita MLOps.









