Riduzione della perdita: discesa del gradiente

Il diagramma dell'approccio iterativo (Figura 1) conteneva un riquadro verde ondulato dal titolo "Aggiornamenti dei parametri di calcolo". Ora sostituiremo la polvere algoritmica delle fate con qualcosa di più sostanziale.

Supponiamo di avere il tempo e le risorse di calcolo per calcolare la perdita per tutti i possibili valori di \(w_1\). Per il tipo di problemi di regressione che abbiamo esaminato, il grafico risultante tra perdita e. \(w_1\) sarà sempre convesso. In altre parole, la trama sarà sempre a forma di ciotola, in questo modo:

Rappresentazione grafica di una curva a U in cui l'asse verticale è contrassegnato come "perdita" e l'asse orizzontale è contrassegnato come valore del peso w i.

Figura 2. I problemi di regressione generano perdita convesso nei grafici relativi al peso.

 

I problemi convessi hanno un solo valore minimo, ovvero un'unica posizione in cui la pendenza è esattamente 0. Questo valore minimo è il punto in cui converge la funzione di perdita.

Calcolare la funzione di perdita per ogni valore immaginabile di \(w_1\) sull'intero set di dati non sarebbe un modo efficiente per trovare il punto di convergenza. Esaminiamo un meccanismo migliore, molto popolare nel machine learning, chiamato discesa del gradiente.

La prima fase della discesa del gradiente è scegliere un valore iniziale (un punto di partenza) per \(w_1\). Il punto di partenza non è importante; di conseguenza, molti algoritmi si limitano a \(w_1\) impostare - su 0 o scelgono un valore casuale. La figura seguente mostra che abbiamo scelto un punto di partenza leggermente maggiore di 0:

Rappresentazione grafica di una curva a U. Un punto a circa metà del lato sinistro della curva è contrassegnato come "Punto di partenza".

Figura 3. Un punto di partenza per la discesa del gradiente.

L'algoritmo di discesa del gradiente calcola quindi il gradiente della curva di perdita nel punto iniziale. Nella Figura 3, il gradiente della perdita è uguale alla derivata (pendenza) della curva e indica quale direzione è "più calda" o "più bassa". Quando sono presenti più ponderazioni, il gradiente è un vettore di derivate parziali rispetto alle ponderazioni.

Tieni presente che un gradiente è un vettore, quindi ha entrambe le seguenti caratteristiche:

  • un'indicazione
  • una grandezza

Il gradiente punta sempre nella direzione dell'aumento più ripido della funzione di perdita. L'algoritmo di discesa del gradiente fa un passo nella direzione del gradiente negativo per ridurre la perdita il più rapidamente possibile.

Rappresentazione grafica di una curva a U. Un punto a sinistra della curva è contrassegnato come "Punto iniziale". Una freccia con l'etichetta "gradiente negativo" indica da questo punto a destra.

Figura 4. La discesa del gradiente si basa su gradienti negativi.

Per determinare il punto successivo lungo la curva della funzione di perdita, l'algoritmo di discesa del gradiente aggiunge una parte della grandezza del gradiente al punto iniziale, come mostrato nella figura seguente:

Rappresentazione grafica di una curva a U. Un punto a sinistra della curva è contrassegnato come "Punto iniziale". Una freccia con l'etichetta "gradiente negativo" indica da questo punto a destra. Un'altra freccia punta verso il basso, dalla punta della prima freccia, a un secondo punto della curva. Il secondo punto è contrassegnato come "punto successivo".

Figura 5. Un passo del gradiente ci sposta al punto successivo sulla curva di perdita.

La discesa del gradiente ripete questo processo, con un bordo sempre più vicino al minimo.