La discesa del gradiente è una tecnica matematica che trova in modo iterativo i pesi e il bias che producono il modello con la perdita più bassa. La discesa del gradiente trova il peso e il bias migliori ripetendo la seguente procedura per un numero di iterazioni definite dall'utente.
Il modello inizia l'addestramento con pesi e bias casuali vicini allo zero e poi ripete i seguenti passaggi:
Calcola la perdita con il peso e il bias attuali.
Determina la direzione in cui spostare i pesi e il bias che riducono la perdita.
Sposta i valori di peso e bias di una piccola quantità nella direzione che riduce la perdita.
Torna al passaggio 1 e ripeti la procedura finché il modello non riesce a ridurre ulteriormente la perdita.
Il diagramma seguente illustra i passaggi iterativi eseguiti dalla discesa del gradiente per trovare i pesi e il bias che producono il modello con la perdita più bassa.
Figura 11. La discesa del gradiente è un processo iterativo che trova i pesi e il bias che producono il modello con la perdita più bassa.
Fai clic sull'icona Più per scoprire di più sulla matematica alla base della discesa del gradiente.
A livello concreto, possiamo esaminare i passaggi della discesa del gradiente utilizzando un piccolo set di dati con sette esempi per il peso di un'auto in libbre e il suo consumo di carburante in miglia per gallone:
Libbre in migliaia (funzionalità) | Miglia per gallone (etichetta) |
---|---|
3,5 | 18 |
3,69 | 15 |
3,44 | 18 |
3,43 | 16 |
4.34 | 15 |
4,42 | 14 |
2,37 | 24 |
- Il modello inizia l'addestramento impostando il peso e il bias su zero:
- Calcola la perdita MSE con i parametri del modello corrente:
- Calcola la pendenza della tangente alla funzione di perdita in corrispondenza di ogni peso e del bias:
- Sposta una piccola quantità nella direzione della pendenza negativa per ottenere il peso e il bias successivi. Per ora, definiamo arbitrariamente l'"importo ridotto" come 0,01:
Fai clic sull'icona Più per scoprire come calcolare la pendenza.
Per ottenere la pendenza delle rette tangenti al peso e al bias, calcoliamo la derivata della funzione di perdita rispetto al peso e al bias, quindi risolviamo le equazioni.
Scriveremo l'equazione per fare una previsione come:
$ f_{w,b}(x) = (w*x)+b $.
Scriveremo il valore effettivo come: $ y $.
Calcoleremo l'errore quadratico medio utilizzando:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
dove $i$ rappresenta l'i-esimo esempio di addestramento e $M$ rappresenta il numero di esempi.
La derivata della funzione di perdita rispetto al peso è scritta come:
$ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
e restituisce:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $
Innanzitutto sommiamo ogni valore previsto meno il valore effettivo e poi lo moltiplichiamo per due volte il valore della caratteristica. Quindi dividiamo la somma per il numero di esempi. Il risultato è la pendenza della retta tangente al valore del peso.
Se risolviamo questa equazione con un peso e un bias pari a zero, otteniamo -119,7 per la pendenza della retta.
Derivata del bias La derivata della funzione di perdita rispetto al bias è scritta come:
$ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
e restituisce:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $
Innanzitutto sommiamo ogni valore previsto meno il valore effettivo e poi moltiplichiamo il risultato per due. Quindi dividiamo la somma per il numero di esempi. Il risultato è la pendenza della retta tangente al valore del bias.
Se risolviamo questa equazione con un peso e un bias pari a zero, otteniamo -34,3 per la pendenza della retta.
Utilizza il nuovo peso e il nuovo bias per calcolare la perdita e ripeti l'operazione. Completando il processo per sei iterazioni, otterremmo i seguenti pesi, bias e perdite:
Iterazione | Peso | Bias | Perdita (MSE) |
---|---|---|---|
1 | 0 | 0 | 303,71 |
2 | 1,20 | 0,34 | 170.84 |
3 | 2,05 | 0,59 | 103,17 |
4 | 2,66 | 0,78 | 68.70 |
5 | 3,09 | 0,91 | 51,13 |
6 | 3,40 | 1,01 | 42,17 |
Puoi notare che la perdita diminuisce a ogni aggiornamento di peso e bias. In questo esempio, ci siamo fermati dopo sei iterazioni. In pratica, un modello viene addestrato finché non converge. Quando un modello converge, le iterazioni aggiuntive non riducono ulteriormente la perdita perché la discesa del gradiente ha trovato i pesi e il bias che minimizzano quasi la perdita.
Se il modello continua l'addestramento dopo la convergenza, la perdita inizia a fluttuare in piccole quantità man mano che il modello aggiorna continuamente i parametri intorno ai loro valori più bassi. In questo modo è difficile verificare che il modello sia effettivamente convergente. Per confermare che il modello è convergente, devi continuare l'addestramento finché la perdita non si stabilizza.
Convergenza del modello e curve di perdita
Quando addestri un modello, spesso esamini una curva di perdita per determinare se il modello ha convergente. La curva di perdita mostra come cambia la perdita durante l'addestramento del modello. Di seguito è riportato l'aspetto di una tipica curva di perdita. La perdita è sull'asse Y e le iterazioni sono sull'asse X:
Figura 12. Curva di perdita che mostra la convergenza del modello intorno al segno della millesima iterazione.
Puoi notare che la perdita diminuisce drasticamente durante le prime iterazioni, poi diminuisce gradualmente prima di stabilizzarsi intorno alla millesima iterazione. Dopo 1000 iterazioni, possiamo essere quasi certi che il modello sia convergente.
Nelle figure seguenti, disegniamo il modello in tre punti durante il processo di addestramento: l'inizio, la fase intermedia e la fine. La visualizzazione dello stato del modello negli snapshot durante il processo di addestramento consolida il collegamento tra l'aggiornamento dei pesi e del bias, la riduzione della perdita e la convergenza del modello.
Nelle figure, utilizziamo i pesi e il bias derivati in una particolare iterazione per rappresentare il modello. Nel grafico con i punti dati e lo snapshot del modello, le linee blu di perdita dal modello ai punti dati mostrano la quantità di perdita. Più lunghe sono le linee, maggiore è la perdita.
Nella figura seguente, possiamo vedere che intorno alla seconda iterazione il modello non sarebbe in grado di fare previsioni a causa dell'elevata perdita.
Figura 13. Curva di perdita e snapshot del modello all'inizio del processo di addestramento.
Intorno alla 400ª iterazione, possiamo vedere che la discesa del gradiente ha trovato la ponderazione e il bias che producono un modello migliore.
Figura 14. Curva di perdita e snapshot del modello a circa metà dell'addestramento.
Intorno alla millesima iterazione, possiamo vedere che il modello è convergente, producendo un modello con la perdita più bassa possibile.
Figura 15. Curva di perdita e snapshot del modello verso la fine del processo di addestramento.
Esercizio: verifica la tua comprensione
Funzioni di convergenza e convesse
Le funzioni di perdita per i modelli lineari producono sempre una superficie convessa. Di conseguenza, quando un modello di regressione lineare converge, sappiamo che ha trovato i pesi e il bias che producono la perdita più bassa.
Se rappresentiamo graficamente la superficie di perdita per un modello con una funzionalità, possiamo vedere la sua forma convessa. Di seguito è riportata la superficie di perdita per un ipotetico set di dati di miglia per gallone. Il peso è sull'asse x, il bias è sull'asse y e la perdita è sull'asse z:
Figura 16. Superficie di perdita che mostra la sua forma convessa.
In questo esempio, un peso di -5,44 e un bias di 35,94 producono la perdita più bassa a 5,54:
Figura 17. Superficie di perdita che mostra i valori di peso e bias che producono la perdita più bassa.
Un modello lineare converge quando trova la perdita minima. Pertanto, le iterazioni aggiuntive fanno sì che la discesa del gradiente sposti i valori di peso e bias di quantità molto piccole intorno al minimo. Se rappresentassimo graficamente i punti di ponderazione e bias durante la discesa del gradiente, i punti sembrerebbero una palla che rotola giù da una collina, per poi fermarsi nel punto in cui non c'è più pendenza verso il basso.
Figura 18. Grafico di perdita che mostra i punti di discesa del gradiente che si fermano nel punto più basso del grafico.
Nota che i punti di perdita neri creano la forma esatta della curva di perdita: un forte calo prima di scendere gradualmente fino a raggiungere il punto più basso della superficie di perdita.
È importante notare che il modello quasi mai trova il minimo esatto per ogni ponderazione e bias, ma trova un valore molto vicino. È anche importante notare che il minimo per i pesi e il bias non corrisponde a una perdita pari a zero, ma solo a un valore che produce la perdita più bassa per quel parametro.
Utilizzando i valori di peso e bias che producono la perdita più bassa, in questo caso un peso di -5,44 e un bias di 35,94, possiamo rappresentare graficamente il modello per vedere quanto si adatta bene ai dati:
Figura 19. Modello rappresentato graficamente utilizzando i valori di peso e bias che producono la perdita più bassa.
Questo sarebbe il modello migliore per questo set di dati perché nessun altro valore di peso e bias produce un modello con una perdita inferiore.