Glossario

Discesa graduale

Scopri come la Gradient Descent ottimizza i modelli di intelligenza artificiale come Ultralytics YOLO , consentendo previsioni accurate in attività che vanno dalla sanità alle auto a guida autonoma.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

La discesa del gradiente è un algoritmo di ottimizzazione fondamentale ampiamente utilizzato nell'apprendimento automatico (ML) e nell'intelligenza artificiale (AI). È il metodo principale per l'addestramento di molti modelli, tra cui le complesse architetture di deep learning come Ultralytics YOLO. L'obiettivo del Gradient Descent è quello di regolare iterativamente i parametri interni del modello (spesso chiamati pesi e polarizzazioni del modello ) per minimizzare una funzione di perdita, che misura la differenza tra le previsioni del modello e i valori target effettivi. Immagina di cercare di trovare il punto più basso di una valle mentre sei bendato; la discesa graduale ti guida valutando la pendenza (gradiente) nella tua posizione attuale e facendo piccoli passi nella direzione più ripida verso il basso. Questo processo iterativo permette ai modelli di imparare dai dati e di migliorare la loro accuratezza predittiva.

Rilevanza nell'apprendimento automatico

La discesa del gradiente è particolarmente importante per l'addestramento di modelli sofisticati come le reti neurali (NN) che costituiscono la base di molte applicazioni moderne di AI. Questi modelli, tra cui quelli utilizzati per il rilevamento degli oggetti, la classificazione delle immagini e l'elaborazione del linguaggio naturale (NLP), hanno spesso milioni o addirittura miliardi di parametri che devono essere ottimizzati. La discesa graduale, insieme alle sue varianti, fornisce un modo computazionalmente fattibile per navigare nel complesso paesaggio delle perdite (la superficie ad alta dimensione che rappresenta il valore delle perdite per tutte le possibili combinazioni di parametri) e trovare i valori dei parametri che producono buone prestazioni. Senza un'ottimizzazione efficace attraverso la Gradient Descent, l'addestramento di questi modelli di grandi dimensioni per raggiungere livelli di accuratezza elevati sarebbe impraticabile. I principali framework di ML come PyTorch e TensorFlow si affidano a varie implementazioni di Gradient Descent e ad algoritmi correlati come la backpropagation per calcolare i gradienti necessari. Puoi esplorare i suggerimenti per l'addestramento dei modelli per ottenere informazioni sull'ottimizzazione di questo processo.

Concetti chiave e varianti

L'idea centrale della discesa del gradiente consiste nel calcolare il gradiente (la direzione di salita più ripida) della funzione di perdita rispetto ai parametri del modello e poi fare un passo nella direzione opposta (in discesa). La dimensione di questo passo è controllata dal tasso di apprendimento, un iperparametro critico che determina la velocità di apprendimento del modello. Un tasso di apprendimento troppo basso può portare a una convergenza lenta, mentre uno troppo alto può far sì che il processo di ottimizzazione superi il minimo o addirittura diverga. Esistono diverse varianti di Gradient Descent, che si differenziano principalmente per la quantità di dati utilizzati per calcolare il gradiente a ogni passo:

  • Batch Gradient Descent (BGD): Calcola il gradiente utilizzando l'intero set di dati di allenamento. Questo metodo fornisce una stima accurata del gradiente, ma può essere molto costoso e lento dal punto di vista computazionale per i dataset di grandi dimensioni.
  • Stochastic Gradient Descent (SGD): Aggiorna i parametri utilizzando il gradiente calcolato da un solo esempio di formazione a ogni passo. È molto più veloce e può evitare minimi locali poco profondi, ma gli aggiornamenti sono rumorosi e portano a un percorso di convergenza meno stabile.
  • Mini-batch Gradient Descent: Un compromesso tra BGD e SGD. Calcola il gradiente utilizzando un piccolo sottoinsieme casuale (mini-batch) dei dati di formazione (controllato dall'iperparametro batch size ). Questo metodo bilancia l'accuratezza del BGD con l'efficienza dell'SGD ed è la variante più comunemente utilizzata nel deep learning.
  • Ottimizzatori adattivi: Algoritmi come Adam(link al paper), Adagrad e RMSprop regolano automaticamente il tasso di apprendimento per ogni parametro durante l'addestramento, spesso portando a una convergenza più rapida e a prestazioni migliori rispetto a SGD o Mini-batch GD di base. Queste varianti sono spesso utilizzate in piattaforme come Ultralytics HUB per l'addestramento dei modelli. Maggiori dettagli sulle varianti sono disponibili alla pagina di Wikipedia Gradient Descent.

Differenze rispetto ai concetti correlati

La discesa dei gradienti è un tipo specifico di algoritmo di ottimizzazione che si concentra sulla minimizzazione iterativa di una funzione di perdita regolando i parametri del modello tramite i gradienti. Si differenzia da altri concetti importanti nella formazione dei modelli:

Applicazioni del mondo reale

Il Gradient Descent è il motore che sta alla base dell'addestramento dei modelli per innumerevoli applicazioni di intelligenza artificiale del mondo reale, consentendo ai modelli di apprendere da grandi quantità di dati in scenari di apprendimento supervisionato e non solo:

  1. Analisi delle immagini mediche: Nell'ambito dell'intelligenza artificiale in campo sanitario, la discesa gradiente addestra le reti neurali convoluzionali (CNN) per compiti come l'analisi delle immagini mediche. Ad esempio, ottimizza i modelli per rilevare tumori o anomalie in radiografie, TAC o risonanze magnetiche riducendo al minimo la differenza tra la segmentazione o la classificazione prevista dal modello e la verità di base fornita dai radiologi(vedi un esempio di blog). Riviste come Radiology: Artificial Intelligence illustrano questi progressi.
  2. Sistemi di raccomandazione: Aziende come Netflix e Amazon utilizzano algoritmi di raccomandazione addestrati con la Gradient Descent. Questi algoritmi apprendono le preferenze degli utenti e le caratteristiche degli articoli minimizzando una funzione di perdita che prevede le valutazioni degli utenti o la probabilità di interazione, consentendo loro di suggerire film, prodotti o contenuti rilevanti.
  3. Veicoli autonomi: I modelli utilizzati nei veicoli autonomi per i compiti di percezione, come l'identificazione di pedoni, auto e corsie di traffico utilizzando i riquadri di delimitazione, vengono addestrati utilizzando la Gradient Descent. Questa ottimizzazione è fondamentale per la sicurezza e l'affidabilità della tecnologia di guida autonoma, come si vede nei sistemi sviluppati da aziende come Waymo. Questo aspetto è molto importante per l'IA nel settore automobilistico.
Leggi tutto