Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
IA visiva

Che cos'è l'ottimizzazione dei modelli? Una guida rapida

Scopri come le tecniche di ottimizzazione dei modelli, come la regolazione degli iperparametri, il pruning e la quantizzazione, possono rendere più efficienti i modelli di visione artificiale.

Abirami VinaAbirami Vina10 min di lettura
Tecniche di ottimizzazione dei modelli di visione artificiale

L'ottimizzazione dei modelli è un processo che mira a migliorare l'efficienza e le prestazioni dei modelli di apprendimento automatico. Affinando la struttura e il funzionamento di un modello, l'ottimizzazione consente ai modelli di ottenere risultati migliori con risorse computazionali minime e tempi di addestramento e valutazione ridotti.

Questo processo è particolarmente importante in ambiti come la visione artificiale, dove i modelli richiedono spesso risorse notevoli per analizzare immagini complesse. In ambienti con risorse limitate, come i dispositivi mobili o i sistemi edge, i modelli ottimizzati possono funzionare bene con risorse limitate mantenendo comunque un'elevata accuratezza.

Per ottimizzare i modelli si usano comunemente diverse tecniche, tra cui la regolazione degli iperparametri, il pruning dei modelli, la quantizzazione dei modelli e la precisione mista. In questo articolo esploreremo queste tecniche e i vantaggi che apportano alle applicazioni di visione artificiale.

Capire l'ottimizzazione dei modelli#

I modelli di visione artificiale hanno solitamente livelli profondi e strutture complesse, ideali per riconoscere schemi intricati nelle immagini, ma possono richiedere molta potenza di elaborazione. Quando questi modelli vengono distribuiti su dispositivi con hardware limitato, come i telefoni cellulari o i dispositivi edge, possono incontrare difficoltà o limitazioni.

La potenza di elaborazione, la memoria e l'energia limitate di questi dispositivi possono causare cali evidenti delle prestazioni, perché i modelli faticano a tenere il passo. Le tecniche di ottimizzazione dei modelli sono fondamentali per affrontare questi problemi. Aiutano a snellire il modello, ridurne il fabbisogno computazionale e garantire che continui a funzionare efficacemente anche con risorse limitate. L'ottimizzazione di un modello può avvenire semplificandone l'architettura, riducendo la precisione numerica dei calcoli o rimuovendo componenti non necessari per renderlo più leggero e veloce.

Diagramma dei motivi per ottimizzare i modelli

Fig. 1. Motivi per ottimizzare i modelli. Immagine dell'autore.

Ecco alcune delle tecniche di ottimizzazione dei modelli più comuni, che approfondiremo nelle sezioni seguenti:

  • Regolazione degli iperparametri: consiste nel modificare sistematicamente gli iperparametri, come il tasso di apprendimento e la dimensione del batch, per migliorare le prestazioni del modello.
  • Potatura del modello: questa tecnica rimuove pesi e connessioni superflui dalla rete neurale, riducendone la complessità e il costo computazionale.
  • Quantizzazione dei modelli: la quantizzazione riduce la precisione dei pesi e delle attivazioni del modello, in genere da 32 bit a 16 o 8 bit, riducendo notevolmente l'ingombro in memoria e i requisiti computazionali.
  • Regolazione della precisione: nota anche come addestramento a precisione mista, consiste nell'utilizzare formati di precisione diversi per le varie parti del modello e nell'ottimizzare l'uso delle risorse senza compromettere l'accuratezza.

Spiegazione degli iperparametri nei modelli di apprendimento automatico#

Puoi aiutare un modello ad apprendere e a ottenere prestazioni migliori regolando i suoi iperparametri, ovvero le impostazioni che determinano come apprende dai dati. La regolazione degli iperparametri è una tecnica che ottimizza queste impostazioni e migliora l'efficienza e l'accuratezza del modello. A differenza dei parametri appresi dal modello durante l'addestramento, gli iperparametri sono valori preimpostati che guidano il processo di addestramento.

Vediamo alcuni esempi di iperparametri che possono essere regolati:

  • Tasso di apprendimento: questo parametro controlla l'ampiezza del passo con cui il modello modifica i propri pesi interni. Un tasso di apprendimento più alto può accelerare l'apprendimento, ma comporta il rischio di non raggiungere la soluzione ottimale; un tasso più basso può offrire maggiore precisione, ma richiede più tempo.
  • Dimensione del batch: definisce quanti campioni di dati vengono elaborati a ogni passaggio di addestramento. I batch più grandi favoriscono un apprendimento più stabile, ma richiedono più memoria. I batch più piccoli si addestrano più velocemente, ma possono essere meno stabili.
  • Epoche: questo parametro consente di determinare quante volte il modello esamina l'intero set di dati. Un numero maggiore di epoche può migliorare l'accuratezza, ma comporta il rischio di overfitting.
  • Dimensione del kernel: definisce la dimensione del filtro nelle reti neurali convoluzionali (CNNs). I kernel più grandi rilevano schemi più ampi, ma richiedono più elaborazione; quelli più piccoli si concentrano sui dettagli più fini.

Come funziona la regolazione degli iperparametri#

La regolazione degli iperparametri inizia in genere definendo un intervallo di valori possibili per ciascun iperparametro. Un algoritmo di ricerca esplora quindi diverse combinazioni all'interno di questi intervalli per individuare le impostazioni che producono le prestazioni migliori.

I metodi di regolazione più comuni includono la ricerca a griglia, la ricerca casuale e l'ottimizzazione bayesiana. La ricerca a griglia verifica tutte le possibili combinazioni di valori negli intervalli specificati. La ricerca casuale seleziona combinazioni a caso e spesso individua più rapidamente impostazioni efficaci. L'ottimizzazione bayesiana usa un modello probabilistico per prevedere valori promettenti degli iperparametri sulla base dei risultati precedenti. Questo approccio riduce in genere il numero di prove necessarie.

Infine, si valutano le prestazioni del modello per ogni combinazione di iperparametri. Il processo viene ripetuto fino a ottenere i risultati desiderati.

Iperparametri e parametri del modello a confronto#

Mentre lavori alla regolazione degli iperparametri, potresti chiederti qual è la differenza tra gli iperparametri e i parametri del modello.

Gli iperparametri sono valori impostati prima dell'addestramento che controllano il modo in cui il modello apprende, come il tasso di apprendimento o la dimensione del batch. Queste impostazioni restano fisse durante l'addestramento e influenzano direttamente il processo di apprendimento. I parametri del modello, invece, vengono appresi dal modello stesso durante l'addestramento. Tra questi rientrano pesi e bias, che si modificano durante l'addestramento del modello e ne guidano infine le previsioni. In sostanza, gli iperparametri definiscono il percorso di apprendimento, mentre i parametri del modello sono il risultato di tale processo.

Confronto tra parametri e iperparametri

Fig. 2. Confronto tra parametri e iperparametri.

Perché la potatura dei modelli è importante nel deep learning#

Il pruning dei modelli è una tecnica di riduzione delle dimensioni che rimuove pesi e parametri non necessari da un modello, rendendolo più efficiente. Nella visione artificiale, soprattutto con le reti neurali profonde, un numero elevato di parametri, come pesi e attivazioni (uscite intermedie che aiutano a calcolare l'uscita finale), può aumentare sia la complessità sia il fabbisogno computazionale. Il pruning aiuta a snellire il modello individuando e rimuovendo i parametri che contribuiscono in misura minima alle prestazioni, ottenendo così un modello più leggero ed efficiente.

Rete neurale prima e dopo la potatura del modello

Fig. 3 Prima e dopo il pruning del modello.

Dopo l'addestramento del modello, tecniche come la potatura basata sulla magnitudine o l'analisi di sensibilità possono valutare l'importanza di ciascun parametro. I parametri poco importanti vengono quindi potati mediante una delle tre tecniche principali: potatura dei pesi, potatura dei neuroni o potatura strutturata.

Il pruning dei pesi rimuove singole connessioni con un impatto minimo sull'output. Il pruning dei neuroni elimina neuroni interi i cui output contribuiscono poco al funzionamento del modello. Il pruning strutturato elimina sezioni più ampie, come filtri convoluzionali o neuroni nei livelli completamente connessi, ottimizzando l'efficienza del modello. Una volta completato il pruning, il modello viene riaddestrato per perfezionare i parametri rimanenti, assicurando che mantenga un'elevata accuratezza in una forma ridotta.

Ridurre la latenza dei modelli di IA con la quantizzazione#

La quantizzazione dei modelli riduce il numero di bit usati per rappresentare i pesi e le attivazioni di un modello. In genere converte i valori in virgola mobile a 32 bit ad alta precisione in valori a precisione inferiore, come numeri in virgola mobile a 16 bit o interi a 8 bit. Riducendo la precisione in bit, la quantizzazione diminuisce notevolmente le dimensioni del modello, l'ingombro in memoria e il costo computazionale.

Nella visione artificiale si usano comunemente valori in virgola mobile a 32 bit, ma la conversione a 16 o 8 bit può migliorare l'efficienza. Esistono due tipi principali di quantizzazione: la quantizzazione dei pesi e quella delle attivazioni. La quantizzazione dei pesi riduce la precisione dei pesi del modello, bilanciando la riduzione delle dimensioni con l'accuratezza. La quantizzazione delle attivazioni riduce la precisione delle attivazioni, diminuendo ulteriormente il fabbisogno di memoria e di calcolo.

Quantizzazione da virgola mobile a 32 bit a intero a 8 bit

Fig. 4 Un esempio di quantizzazione da virgola mobile a 32 bit a intero a 8 bit.

Come la precisione mista accelera le inferenze dell'IA#

La precisione mista è una tecnica che usa precisioni numeriche diverse per varie parti di una rete neurale. Combinando valori a precisione maggiore, come i numeri in virgola mobile a 32 bit, con valori a precisione inferiore, come quelli a 16 o 8 bit, la precisione mista consente ai modelli di visione artificiale di accelerare l'addestramento e ridurre l'uso di memoria senza sacrificare l'accuratezza.

Durante l'addestramento, la precisione mista si ottiene usando una precisione inferiore in specifici layer e mantenendo una precisione superiore dove necessario nella rete. Questo avviene tramite il casting e il ridimensionamento della loss. Il casting converte i tipi di dati tra diverse precisioni, secondo le necessità del modello. Il ridimensionamento della loss adegua la precisione ridotta per evitare l'underflow numerico e garantire un addestramento stabile. La precisione mista è particolarmente utile per i modelli di grandi dimensioni e i batch di grandi dimensioni.

Addestramento a precisione mista con tipi in virgola mobile FP16 e FP32

Fig. 5 L'addestramento a precisione mista usa tipi in virgola mobile sia a 16 bit (FP16) sia a 32 bit (FP32).

Trovare un equilibrio tra precisione ed efficienza del modello#

Ora che abbiamo esaminato diverse tecniche di ottimizzazione dei modelli, vediamo come scegliere quella più adatta alle tue esigenze. La scelta dipende da fattori come l'hardware disponibile, i vincoli computazionali e di memoria dell'ambiente di distribuzione e il livello di accuratezza richiesto.

Ad esempio, i modelli più piccoli e veloci sono più adatti ai dispositivi mobili con risorse limitate, mentre quelli più grandi e accurati possono essere usati su sistemi ad alte prestazioni. Ecco come ciascuna tecnica si adatta a obiettivi diversi:

  • Potatura: è ideale per ridurre le dimensioni del modello senza compromettere significativamente la precisione, ed è quindi perfetta per i dispositivi con risorse limitate, come i telefoni cellulari o i dispositivi dell'Internet delle cose (IoT).
  • Quantizzazione: un'ottima scelta per ridurre le dimensioni del modello e accelerare l'inferenza, soprattutto su dispositivi mobili e sistemi embedded con memoria e potenza di elaborazione limitate. È adatta alle applicazioni in cui sono accettabili lievi riduzioni dell'accuratezza.
  • Precisione mista: progettata per i modelli su larga scala, questa tecnica riduce l'uso di memoria e accelera l'addestramento su hardware come GPU e TPU che supportano operazioni a precisione mista. Viene spesso usata in attività ad alte prestazioni in cui l'efficienza è importante.
  • Regolazione degli iperparametri: pur richiedendo molte risorse computazionali, è essenziale per le applicazioni che necessitano di un'elevata accuratezza, come l'imaging medico o la guida autonoma.

Punti chiave#

L'ottimizzazione dei modelli è una parte fondamentale del machine learning, soprattutto per implementare l'IA in applicazioni del mondo reale. Tecniche come l'ottimizzazione degli iperparametri, la potatura dei modelli, la quantizzazione e la precisione mista contribuiscono a migliorare le prestazioni, l'efficienza e l'utilizzo delle risorse dei modelli di computer vision. Queste ottimizzazioni rendono i modelli più veloci e meno dispendiosi in termini di risorse, l'ideale per i dispositivi con memoria e potenza di elaborazione limitate. Inoltre, i modelli ottimizzati sono più facili da scalare e distribuire su piattaforme diverse, consentendo di realizzare soluzioni di IA efficaci e adattabili a un'ampia gamma di usi.

Visita il repository GitHub di Ultralytics e unisciti alla nostra community per saperne di più sulle applicazioni dell'IA nella produzione e nell'agricoltura.

Scritto da

Abirami Vina
Abirami Vina

Creatore di contenuti · Ultralytics

Dopo aver iniziato la sua carriera come ingegnera di visione artificiale, Abirami Vina ha costruito solide basi nell'IA visiva e nel machine learning. È creatrice di contenuti per Ultralytics e fondatrice e autrice principale di Scribe of AI, dove realizza contenuti tecnici di alta qualità per aziende specializzate in IA. Spinta dalla passione di rendere l'IA comprensibile e coinvolgente, con il suo lavoro colma il divario tra tecnologie all'avanguardia e impatto concreto.

Commenti

Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.

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