La discesa del gradiente è un algoritmo di ottimizzazione comunemente usato per addestrare i modelli di machine learning e le reti neurali. Questo algoritmo addestra i modelli di machine learning riducendo al minimo gli errori tra i risultati previsti e quelli effettivi.
I dati di addestramento aiutano questi modelli ad apprendere nel tempo e la funzione di costo all'interno della discesa del gradiente funge specificamente da barometro, misurandone l'accuratezza ad ogni iterazione degli aggiornamenti dei parametri. Fino a quando la funzione non è pari o prossima allo zero, il modello continuerà a regolare i propri parametri per produrre l'errore più piccolo possibile. Una volta ottimizzati per quanto riguarda la precisione, i modelli di machine learning possono essere potenti strumenti per le applicazioni di intelligenza artificiale (AI) e informatica.
Prima di approfondire la discesa del gradiente, può essere utile rivedere alcuni concetti della regressione lineare. Ricordiamo che la formula y = mx + b riportata di seguito si applica alla pendenza di una linea, in cuimrappresenta la pendenza ebè l'intercetta sull'asse y.
Ricordiamo inoltre che un grafico a dispersione si usava per le statistiche e che, per trovare la linea di adattamento migliore, era necessario calcolare l'errore tra l'output effettivo e l'output previsto (ŷ) usando la formula dell'errore quadratico medio. L'algoritmo di discesa del gradiente si comporta allo stesso modo, ma si basa su una funzione convessa.
Il punto di partenza è solo un punto arbitrario per valutare la prestazione. Da quel determinato punto di partenza, troveremo la derivata (o pendenza), e da lì possiamo usare una linea tangente per osservare la ripidità della pendenza. La pendenza fornirà informazioni sugli aggiornamenti dei parametri, ovvero i pesi e la distorsione. La pendenza in corrispondenza del punto di partenza sarà più ripida, ma procedendo con la generazione di nuovi parametri, la ripidità dovrebbe gradualmente diminuire fino a raggiungere il punto più basso della curva, noto come punto di convergenza.
Analogamente alla ricerca della linea di miglior adattamento nella regressione lineare, l'obiettivo della discesa del gradiente è minimizzare la funzione di costo o l'errore tra l'y previsto e l'y effettivo. Per fare ciò, sono necessari due punti dati: una direzione e un tasso di apprendimento. Questi fattori determinano i calcoli delle derivate parziali delle iterazioni future, consentendo di arrivare gradualmente al minimo locale o globale (cioè al punto di convergenza).
Esistono tre tipi di algoritmi di apprendimento della discesa del gradiente: discesa del gradiente batch, discesa del gradiente stocastica e discesa del gradiente mini-batch.
La discesa del gradiente batch riassume l'errore di ciascun punto in un set di training, aggiornando il modello solo dopo aver valutato tutti gli esempi di training. Questo processo viene definito epoch di training.
Sebbene questo batch offra efficienza di calcolo, può comunque richiedere tempi di elaborazione lunghi per set di dati di addestramento di grandi dimensioni, in quanto deve ancora memorizzare tutti i dati. Anche la discesa del gradiente batch di solito produce una convergenza e un gradiente di errore stabili, ma a volte quel punto di convergenza non è quello ideale, trovando il minimo locale rispetto a quello globale.
La discesa del gradiente stocastica (SGD) esegue un'epoch di training per ogni esempio all'interno del set di dati e aggiorna i parametri di ogni campione di training uno alla volta. Poiché è necessario contenere un solo esempio di training, sono più facili da memorizzare. Sebbene questi aggiornamenti frequenti possano offrire più dettagli e maggiore velocità, possono comportare perdite nell'efficienza computazionale rispetto alla discesa del gradiente batch. I suoi frequenti aggiornamenti possono dare luogo a gradienti rumorosi, ma questo può essere utile per sfuggire al minimo locale e trovare quello globale.
La discesa del gradiente mini-batch combina i concetti della discesa del gradiente batch e della discesa del gradiente stocastica. Suddivide il set di dati di training in batch di piccole dimensioni ed esegue gli aggiornamenti su ognuno di questi batch. Questo approccio rappresenta un equilibrio tra l'efficienza computazionale della discesa del gradiente batch e la velocità della discesa del gradiente stocastica.
Sebbene la discesa del gradiente sia l'approccio più comune per i problemi di ottimizzazione, questa presenta una serie di problemi. Alcuni di questi includono:
Per i problemi convessi, la discesa del gradiente può trovare facilmente il minimo globale, ma quando emergono problemi non convessi, la discesa del gradiente può faticare a trovare il minimo globale, laddove il modello ottiene i risultati migliori.
Ricorda che quando la pendenza della funzione di costo è pari o prossima allo zero, il modello smette di apprendere. Anche alcuni scenari oltre il minimo globale possono produrre questa pendenza, ovvero i minimi locali e i punti di sella. I minimi locali imitano la forma di un minimo globale, in cui la pendenza della funzione di costo aumenta su entrambi i lati del punto corrente. Tuttavia, con i punti sella, il gradiente negativo esiste solo su un lato del punto, raggiungendo un massimo locale su un lato e un minimo locale sull'altro. Il suo nome si ispira a quello della sella di un cavallo.
I gradienti rumorosi possono aiutare il gradiente a sfuggire ai minimi locali e ai punti di sella.
Nelle reti neurali più profonde, in particolare le reti neurali ricorrenti, possiamo anche riscontrare altri due problemi quando il modello viene addestrato con discesa del gradiente e retropropagazione.
IBM Granite è la nostra famiglia di modelli AI aperti, efficienti e affidabili, su misura per le aziende e ottimizzati per scalare le applicazioni di AI. Esplora le opzioni di linguaggio, codice, serie temporali e guardrail.
Abbiamo intervistato 2.000 organizzazioni in merito alle loro iniziative di AI per scoprire cosa funziona, cosa non funziona e come giocare d'anticipo.
Esplora gli approcci di apprendimento supervisionato, come le macchine a vettori di supporto e i classificatori probabilistici.
Impara i concetti fondamentali e sviluppa le tue competenze con laboratori pratici, corsi, progetti guidati, prove e molto altro.
Scopri come scegliere il foundation model di AI più adatto al tuo caso d'uso.
Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.
Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.
Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.