Come abbiamo visto precedentemente il metodo della discesa del gradiente presenta alcune problematicità di efficienza nel caso di plateau e di disomogeneità rilevanti del gradiente nelle varie dimensioni.
Per rendere il metodo più efficiente vengono solitamente utilizzate delle versioni più evolute del metodo, in grado di accelerare la ricerca e contrastare i casi patologici.
Un metodo particolarmente efficiente nello smorzare ampie oscillazioni nei passi dovute a disomogeneità forti del gradiente lungo diverse dimensioni, è quello di utilizzare al posto del gradiente ∇f(x(t−1)) la media esponenziale vt sui valori del gradiente stesso:
{vt=βvt−1+(1−β)∇f(x(t−1)),v0=0x(t)=x(t−1)−αvt
dove il coefficiente β<1 indica il peso assegnato nella media ai gradienti precedenti. Generalmente viene utilizzato un β≈0.9 e la media viene calcolata biased come presentato nella formula, ovvero senza correttivo per i primi vt che avranno modulo ridotto.
L'utilizzo del momento smorzerà le oscillazioni e contribuirà ad una discesa verso il minimo con meno passi.
Un'altra variante consiste nell'armonizzare i passi nelle varie dimensioni, smorzando o amplificando le varie componenti del gradiente in ragione della loro media.
In particolare prenderemo in considerazione la radice della media esponenziale biased dei quadrati:
∀ i {s(t)i=βs(t−1)i+(1−β)[∂f∂xi(x(t−1))]2 , s(0)i=0x(t)i=x(t−1)i−α∂f∂xi(x(t−1))√s(t)i+ε
dove il coefficiente β<1 indica il peso assegnato nella media ai coefficienti si precedenti. Generalmente viene utilizzato un β≈0.99 e la media viene calcolata unbiased come presentato nella formula, ovvero senza correttivo per i primi si che avranno modulo ridotto.
Viene anche introdotto un ε≈10−8 al denominatore per evitare errori dovuti a si prossimi a zero.
RMSprop da un lato armonizza lo sviluppo dei passi tra le dimensioni non omogenee del gradiente, smorzando quelle di modulo maggiore e amplificando quelle di modulo minore, dall'altro "accelera" la fuga da zone di plateau, dove le componenti del gradiente diventano prossime allo zero.
L' algoritmo Adam combina la discesa con Momento e RMSprop per integrare in modo efficace i benefici di entrambi gli algoritmi.
A differenza degli algoritmi singoli, Adam utilizza generalmente le medie esponenziali unbiased ovvero normalizzate dividendole per un fattore (1−βt) che riequilibri in particolare i primi valori della media.
Per ogni dimensione avremo quindi:
∀ i {v(t)i=β1v(t−1)i+(1−β1)[∂f∂xi(x(t−1))] , v(0)i=0s(t)i=β2s(t−1)i+(1−β2)[∂f∂xi(x(t−1))]2 , s(0)i=0x(t)i=x(t−1)i−αv(t)i(1−βt1)√s(t)i(1−βt2)+ε
Dove valori tipici dei parametri sono β1=0.9 , β2=0.99 , ε=10−8
Adam è frequentemente utilizzato come algoritmo di discesa del gradiente in ambito di deep learning