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, progettare architetture di deep learning (DL) ad alte prestazioni richiedeva una vasta competenza umana, intuito e lunghi tentativi. 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 uno specifico compito. Testando varie combinazioni di livelli e operazioni, la NAS è in grado di identificare architetture che superano significativamente i modelli progettati dall'uomo in termini di accuratezza, efficienza computazionale o velocità di inferenza.
Link to this sectionMeccanismi 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):
-
Spazio di ricerca: Definisce l'insieme di tutte le possibili architetture che l'algoritmo può esplorare. Agisce come una libreria di elementi 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 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.
-
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 meno epoche, l'utilizzo di dataset proxy a risoluzione inferiore o l'impiego di weight sharing — per classificare rapidamente il potenziale di un'architettura candidata.
Link to this sectionApplicazioni nel mondo reale#
La NAS è diventata fondamentale nei settori in cui i vincoli hardware o i requisiti di prestazione sono rigorosi, spingendo i confini della computer vision (CV) e di altri domini dell'AI.
- Edge Computing efficiente: Implementare l'AI su dispositivi mobili richiede modelli che siano sia leggeri che veloci. La NAS viene ampiamente utilizzata per scoprire architetture come MobileNetV3 ed EfficientNet che riducono la latenza di inferenza mantenendo un'elevata precisione. Questo è vitale per le applicazioni di edge AI, come l'analisi video in tempo reale su smart camera o droni autonomi.
- Imaging medico: Nell'analisi di immagini mediche, l'accuratezza è fondamentale. La NAS può personalizzare le reti per rilevare sottili anomalie in radiografie o scansioni MRI, trovando spesso nuovi percorsi di estrazione delle caratteristiche che gli ingegneri umani potrebbero trascurare. Ciò porta a strumenti più affidabili per identificare condizioni come tumori cerebrali o fratture con una maggiore sensibilità.
Link to this sectionNAS vs. Concetti correlati#
Per comprendere il ruolo specifico della NAS, è utile distinguerla da tecniche di ottimizzazione simili:
- NAS vs. Ottimizzazione degli iperparametri: Sebbene entrambe implichino un'ottimizzazione, l'ottimizzazione degli iperparametri si concentra sulla regolazione delle impostazioni di configurazione (come il learning rate o la batch size) per un'architettura fissa. Al contrario, la NAS modifica la struttura fondamentale del modello stesso, come il numero di livelli o il modo in cui i neuroni sono connessi.
- NAS vs. Transfer Learning: Il transfer learning prende un modello esistente e pre-addestrato e ne adatta i pesi a un nuovo compito. La NAS crea l'architettura del modello da zero (o cerca una backbone migliore) prima che inizi l'addestramento.
Link to this sectionUtilizzo di modelli derivati dalla NAS#
Sebbene eseguire 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 Python dimostra come caricare e utilizzare un modello NAS pre-ricercato 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 coloro che cercano di addestrare modelli allo stato dell'arte senza la complessità della NAS, l'Ultralytics YOLO26 offre un'architettura altamente ottimizzata pronta all'uso, incorporando i più recenti progressi della ricerca. Puoi gestire facilmente i dataset, l'addestramento e il deployment per questi modelli utilizzando l'Ultralytics Platform, che semplifica l'intero ciclo di vita MLOps.






