(3.40) |
L'eventuale discesa stocastica del gradiente del secondo ordine non porta normalmente a miglioramenti.
Dal punto di vista pratico spesso si esegue l'aggiornamento su un numero di campioni (batch size) piccolo ma maggiore di 1, per ridurre il rumore del singolo campione ma evitando di fornire contributi troppo mediati come nel caso di discesa del gradiente completo.
Infine, per simulare un'inerzia al cambiamento, viene aggiunto un termine chiamato momentum:
(3.41) |
Il momentum è la modifica ad SGD più semplice che permette di risolvere alcuni problemi tipici delle ottimizzazioni in machine learning. Oltre a SGD+momentum, esistono tantissime varianti per accelerare la convergenza negli algoritmi tipo di discesa del gradiente. Una lista, non esaustiva, è
AdaGrad ha per ogni parametro un learning-rate: questo è vantaggioso per quei problemi con gradienti sparsi. RMSProp ha anche esso un learning-rate per parametro ma che viene cambiato con la variazione della magnitudo del gradiente: questo algoritmo lavora bene online e su problemi non-stazionari.
Invece che aggiornare il learning-rate analizzando il momento di primo ordine (la media) come RMSProp, Adam sfrutta il momento di secondo ordine dei gradienti.
Paolo medici