Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Neural Architecture Search (NAS)

La ricerca di architetture neurali (NAS) automatizza la progettazione delle reti neurali esplorando livelli e connessioni. Metodi, costi di calcolo e modelli realizzati con NAS.

La ricerca delle architetture neurali (NAS) è il ramo del machine learning automatizzato (AutoML) che progetta automaticamente la struttura di una rete neurale. Invece di scegliere manualmente i tipi di convoluzione e degli altri livelli, profondità, larghezze e connessioni, un algoritmo di ricerca propone architetture candidate, ne stima le prestazioni sul compito e usa i risultati per proporne di migliori. L’obiettivo è solitamente la precisione, spesso combinata con un costo come la latenza di inferenza, il numero di parametri o i FLOP sull’hardware di destinazione. NAS ha prodotto diversi backbone ampiamente utilizzati nella visione artificiale, tra cui EfficientNet e MobileNetV3.

Come funziona NAS#

Una rassegna pubblicata sul Journal of Machine Learning Research classifica i metodi NAS lungo tre dimensioni:

  1. Spazio di ricerca: L’insieme delle architetture che è possibile creare, per esempio quali tipi di operazioni, dimensioni dei kernel e connessioni skip sono consentiti e come possono essere collegati. Molti metodi cercano una piccola cella ripetibile e ne impilano copie, riducendo lo spazio di ricerca e permettendo di trasferire a un dataset grande una cella individuata su un dataset piccolo.
  2. Strategia di ricerca: L’algoritmo che sceglie quali candidati provare, dai controller di apprendimento per rinforzo e dagli algoritmi evolutivi fino ai metodi basati sul gradiente e al semplice campionamento casuale.
  3. Strategia di stima delle prestazioni: Il modo in cui si assegna un punteggio a un candidato senza addestrarlo completamente, per esempio usando meno epoche di addestramento, immagini o set di dati più piccoli, previsioni della precisione finale o pesi condivisi tra i candidati.

Da migliaia di giorni-GPU a poche ore#

I primi metodi NAS erano costosi perché ogni candidato veniva addestrato fino alla convergenza. Nello studio del 2016 di Zoph e Le, un controller ricorrente addestrato con apprendimento per rinforzo generava le reti e la ricerca veniva eseguita contemporaneamente su 800 GPU; lo studio successivo su NASNet usò 500 GPU per quattro giorni per individuare una cella su CIFAR-10 da trasferire a ImageNet. AmoebaNet ottenne risultati simili con l’evoluzione regolarizzata, al costo di circa 3,150 giorni-GPU. ENAS ridusse la ricerca a meno di 16 ore su una singola GPU condividendo i pesi del modello tra tutti i candidati, trattati come sottografi di un’unica grande rete; DARTS trasformò la scelta discreta delle operazioni in pesi continui, permettendo di ottimizzare l’architettura stessa con la discesa del gradiente in pochi giorni-GPU. Anche i benchmark hanno ridimensionato le aspettative del settore: la ricerca casuale con arresto anticipato ha ottenuto prestazioni almeno pari a ENAS sui benchmark Penn Treebank e CIFAR-10.

NAS consapevole dell’hardware e modelli creati con NAS#

NAS ha avuto il suo maggiore impatto pratico sui modelli efficienti per l'AI per dispositivi edge, in cui occorre bilanciare accuratezza e velocità su uno specifico dispositivo. MnasNet ha incluso nell'obiettivo di ricerca la latenza misurata su smartphone reali e ha raggiunto un'accuratezza top-1 su ImageNet del 75,2% in 78 ms su uno smartphone Pixel, risultando 1,8 volte più veloce di MobileNetV2 con un'accuratezza superiore dello 0,5%. EfficientNet-B0 è stato ottenuto con una ricerca analoga e poi esteso alla famiglia B1-B7 tramite scaling composto, mentre MobileNetV3 ha combinato NAS consapevole dell'hardware con l'algoritmo NetAdapt per ottimizzarlo per le CPU mobili. Per il rilevamento degli oggetti, i modelli YOLO-NAS di Deci, individuati tramite il motore di ricerca AutoNAC e progettati per limitare la perdita di accuratezza dopo la quantizzazione INT8, sono eseguibili con il pacchetto Ultralytics tramite la classe NAS classe per l'inferenza, la convalida e l'esportazione, ma non per l'addestramento. Da allora NVIDIA ha acquisito Deci e il team originale non aggiorna più i modelli.

Un esempio NAS essenziale#

L’esempio seguente esegue la strategia di ricerca più semplice, il campionamento casuale, su un piccolo spazio di ricerca di percettroni multistrato, usando le cifre scritte a mano di scikit-learn. Ogni candidato viene addestrato per sole 30 epoche come stima economica delle prestazioni e valutato sui dati di convalida:

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}")

I 12 campioni producono 10 architetture distinte e la precisione di convalida varia da 0.398 per due livelli da 8 unità a 0.978 per livelli da 128, 128 e 16 unità; la sola scelta dell’architettura sposta quindi la precisione di quasi 60 punti. Un’esecuzione NAS completa riaddestrerebbe il modello migliore fino alla convergenza e ne riporterebbe il punteggio su un set di test separato.

  • Ottimizzazione degli iperparametri: Ottimizza le impostazioni di addestramento, come il tasso di apprendimento, per un'architettura fissa. NAS considera l'architettura stessa come variabile, e i due processi vengono spesso eseguiti insieme.
  • Potatura del modello e distillazione della conoscenza: Riducono o imitano una rete esistente dopo l'addestramento, mentre NAS ricerca una progettazione efficiente prima dell'addestramento.
  • Apprendimento per trasferimento: Riutilizza i pesi appresi di un modello preaddestrato. NAS decide la struttura che ospita quei pesi, e le reti individuate da NAS, come EfficientNet, sono esse stesse backbone preaddestrati molto diffusi.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning