L'algoritmo di discesa stocastica del gradiente (Stochastic Gradient Descent, SGD) è una semplificazione della discesa del gradiente classica.
Invece di calcolare il gradiente esatto della funzione obiettivo
, ad ogni iterazione si utilizza il gradiente di un singolo campione
scelto casualmente:
| (3.40) |
SGD è garantito convergere su funzioni convexe definite su domini convessi, ma viene comunemente utilizzato anche in contesti non convessi, come l'addestramento di reti neurali.
Una variante pratica consiste nell'utilizzare un piccolo gruppo di campioni (mini-batch) per ogni aggiornamento, riducendo il rumore rispetto al singolo campione ma mantenendo una buona efficienza computazionale.
Per simulare un'inerzia nel cambiamento dei parametri, si introduce un termine detto momentum:
| (3.41) |
Oltre a SGD con momentum, esistono numerose varianti progettate per accelerare la convergenza e migliorare la stabilità dell'ottimizzazione. Una lista non esaustiva include:
Paolo medici