Che cos'è la discesa del gradiente?

Che cos'è la discesa del gradiente?

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.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI 


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Come funziona la discesa del gradiente?

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).

  • Il tasso di apprendimento(noto anche come dimensione del passo o alfa) è la dimensione dei passaggi compiuti per raggiungere il minimo. Si tratta in genere di un valore piccolo e viene valutato e aggiornato in base al comportamento della funzione di costo. Tassi di apprendimento elevati comportano passi più ampi, ma vi è il rischio di superare il minimo. Al contrario, un tasso di apprendimento ridotto presenta passi di piccole dimensioni. Sebbene abbia il vantaggio di una maggiore precisione, il numero di iterazioni compromette l'efficienza complessiva in quanto richiede più tempo e calcoli per raggiungere il minimo.
  • La funzione di costo (o perdita)misura la differenza, o errore, tra l'y effettivo e l'y previsto nella sua posizione corrente. Ciò migliora l'efficacia del modello di machine learning fornendo un feedback al modello in modo che possa regolare i parametri per ridurre al minimo l'errore e trovare il minimo locale o globale. Si ripete continuamente, muovendosi lungo la direzione della discesa più ripida (o del gradiente negativo) fino a quando la funzione di costo non è pari o prossima allo zero. A questo punto, il modello smetterà di apprendere. Inoltre, mentre i termini, funzione di costo e funzione di perdita, sono considerati sinonimi, tra loro esiste una leggera differenza. Vale la pena notare che una funzione di perdita si riferisce all'errore di un esempio di addestramento, mentre una funzione di costo calcola l'errore medio in un intero set di addestramento.

Tipi di discesa del gradiente

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.

Discesa del gradiente 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.

Discesa del gradiente stocastica

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.

Discesa del gradiente mini-batch

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.

Mixture of Experts | Podcast

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Problemi nella discesa del gradiente

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:

Minimi locali e punti di sella

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.

Gradienti che scompaiono e gradienti che esplodono

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.

  • Gradienti che scompaiono:questa situazione si verifica quando il gradiente è troppo piccolo. Man mano che ci spostiamo all'indietro durante la retropropagazione, il gradiente continua a ridursi, facendo sì che gli strati precedenti della rete apprendano più lentamente rispetto agli strati successivi. Quando ciò accade, i parametri dei pesi si aggiornano fino a diventare insignificanti, ovvero pari a 0, con conseguente algoritmo che non sta più apprendendo.
  • Gradienti che crescono:questo accade quando il gradiente è troppo grande, con conseguente creazione di un modello instabile. In questo caso, i pesi del modello diventeranno troppo grandi e alla fine verranno rappresentati come NaN. Una soluzione a questo problema consiste nel ricorrere a una tecnica di riduzione della dimensionalità, che può aiutare a minimizzare la complessità del modello.
Soluzioni correlate
IBM watsonx.ai

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.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

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.

Esplora le soluzioni AI
Consulenza e servizi sull'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.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live