Per quanto riguarda le risorse:
Ecco alcune citazioni centrali di ADADELTA: un metodo di tasso di apprendimento adattivo , insieme ad alcuni esempi e brevi spiegazioni:
ADAGRAD
La regola di aggiornamento per ADAGRAD è la seguente:
ΔXt= -ηΣtτ= 1g2τ√gt( 5 )
Qui il denominatore calcola il l 2norma di tutti i gradienti precedenti in base alla dimensione e η è un tasso di apprendimento globale condiviso da tutte le dimensioni.
Mentre esiste un tasso di apprendimento globale sintonizzato a mano, ogni dimensione ha un proprio tasso dinamico.
Vale a dire se i gradienti nei primi tre passaggi sono g1=⎛⎝un'1B1c1⎞⎠,g2=⎛⎝un'2B2c2⎞⎠,g3=⎛⎝un'3B3c3⎞⎠, poi:
ΔX3= -ηΣ3τ= 1g2τ-------√g3= -η⎛⎝⎜un'21+un'22+un'23B21+B22+B23c21+c22+c23⎞⎠⎟--------------⎷⎛⎝un'3B3c3⎞⎠↓ΔX3= -⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜ηun'21+un'22+un'23----------√un'3ηB21+B22+B23---------√B3ηc21+c22+c23---------√c3⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟
Qui è più facile vedere che ogni dimensione ha il suo tasso di apprendimento dinamico, come promesso.
Problemi di ADAGRAD che ADADELTA tenta di contrastare
L'idea presentata in questo documento è stata derivata da ADAGRAD al fine di migliorare i due principali svantaggi del metodo: 1) il continuo decadimento dei tassi di apprendimento durante l'addestramento e 2) la necessità di un tasso di apprendimento globale selezionato manualmente.
Il secondo inconveniente è abbastanza autoesplicativo.
Ecco un esempio di quando il primo inconveniente è un problema: si
consideri un caso in cui il valore assoluto di ciascun componente dig2è molto più grande del valore assoluto del rispettivo componente del gradiente in qualsiasi altro passaggio.
Per ognit > 2, sostiene che ogni componente di Σtτ= 1g2τ-------√ è maggiore del valore assoluto del rispettivo componente di g2. Ma il valore assoluto di ogni componente dig2 è molto più grande del valore assoluto del rispettivo componente di gt, e così ΔXtè molto piccolo.
Inoltre, man mano che l'algoritmo avanza, si avvicina al minimo, quindi il gradiente si riduce e così viaΔXtdiventa sempre più piccolo.
Pertanto, potrebbe essere che l'algoritmo si fermi praticamente prima di raggiungere un minimo.
ADADELTA
Invece di considerare tutti i gradienti calcolati, ADADELTA considera solo l'ultimo w gradienti.
Dal momento della memorizzazione wi gradienti quadrati precedenti sono inefficienti, i nostri metodi implementano questo accumulo come media esponenzialmente decadente dei gradienti quadrati. Assumi al momentot questa media corrente è E[g2]t quindi calcoliamo:
E[g2]t= ρ E[g2]t - 1+ ( 1 - ρ )g2t( 8 )
dove ρè una costante di decadimento [...]. Dato che abbiamo bisogno della radice quadrata di questa quantità negli aggiornamenti dei parametri, questa diventa effettivamente laRMS
dei gradienti quadrati precedenti fino a tempo t:
RMS[ g]t=E[g2]t+ ϵ--------√( 9 )
dove una costante ε viene aggiunto per migliorare la condizione del denominatore
(RMSsta per Root Mean Square .)
Allo stesso modo:
E[ ΔX2]t - 1= ρ E[ ΔX2]t - 2+ ( 1 - ρ ) ΔX2t - 1
RMS[ Δ x ]t - 1=E[ ΔX2]t - 1+ ϵ------------√
E infine:
[...] approssimativo ΔXt calcolando il decadimento esponenziale RMS sopra una finestra di dimensioni w del precedente Δ x per dare il metodo ADADELTA:
ΔXt= -RMS[ Δ x ]t - 1RMS[ g]tgt( 14 )
dove la stessa costante ε viene aggiunto al numeratore RMSanche. Questa costante serve allo scopo sia di iniziare la prima iterazione in cuiΔX0= 0e per garantire che continuino a essere fatti progressi anche se gli aggiornamenti precedenti diventano piccoli.
[...]
Il numeratore agisce come un termine di accelerazione, accumulando gradienti precedenti in una finestra di tempo [...]
Cioè se il gradiente al passo r è gr=⎛⎝un'rBrcr⎞⎠ e ΔXr=⎛⎝iorjrKr⎞⎠, poi:
ΔXt= -RMS[ Δ x ]t - 1RMS[ g]tgt= -E[ ΔX2]t - 1+ ϵ-----------√E[g2]t+ ϵ--------√gt=-ρ E[ ΔX2]t - 2+ ( 1 - ρ ) ΔX2t - 1+ ϵ-------------------------√ρ E[g2]t - 1+ ( 1 - ρ )g2t+ ϵ--------------------√gt=-ρ ( ρ E[ ΔX2]t - 3+ ( 1 - ρ ) ΔX2t - 2) + ( 1 - ρ ) ΔX2t - 1+ ϵ----------------------------------------√ρ ( ρ E[g2]t - 2+ ( 1 - ρ )g2t - 1) + ( 1 - ρ )g2t+ ϵ----------------------------------√gt=-ρ2E[ ΔX2]t - 3+p1( 1 - ρ ) ΔX2t - 2+p0( 1 - ρ ) ΔX2t - 1+ ϵ------------------------------------------√ρ2E[g2]t - 2+p1( 1 - ρ )g2t - 1+p0( 1 - ρ )g2t+ ϵ------------------------------------√gt=-ρt - 1E[ ΔX2]0+Σr = 1t - 1ρt - 1 - r( 1 - ρ ) ΔX2r+ ϵ-------------------------------√ρt - 1E[g2]1+Σr = 2tρt - r( 1 - ρ )g2r+ ϵ---------------------------√gt
ρ è una costante di decadimento, quindi la scegliamo tale ρ ∈ ( 0 , 1 ) (tipicamente ρ ≥ 0.9).
Pertanto, moltiplicando per un alto potere diρrisulta in un numero molto piccolo.
Permetterew essere l'esponente più basso in modo tale da considerare il prodotto moltiplicando i valori sani per ρwtrascurabile.
Ora possiamo approssimareΔXt rilasciando termini trascurabili:
ΔXt≈ -Σr = t - wt - 1ρt - 1 - r( 1 - ρ ) ΔX2r+ ϵ---------------------√Σr = t + 1 - wtρt - r( 1 - ρ )g2r+ ϵ--------------------√gt=-Σr = t - wt - 1ρt - 1 - r( 1 - ρ )⎛⎝⎜io2rj2rK2r⎞⎠⎟+ ϵ------------------------⎷Σr = t + 1 - wtρt - r( 1 - ρ )⎛⎝⎜un'2rB2rc2r⎞⎠⎟+ ϵ------------------------⎷⎛⎝un'tBtct⎞⎠↓ΔXt≈ -⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜Σr = t - wt - 1ρt - 1 - r( 1 - ρ )io2r+ ϵ--------------------√Σr = t + 1 - wtρt - r( 1 - ρ )un'2r+ ϵ--------------------√un'tΣr = t - wt - 1ρt - 1 - r( 1 - ρ )j2r+ ϵ--------------------√Σr = t + 1 - wtρt - r( 1 - ρ )B2r+ ϵ--------------------√BtΣr = t - wt - 1ρt - 1 - r( 1 - ρ )K2r+ ϵ--------------------√Σr = t + 1 - wtρt - r( 1 - ρ )c2r+ ϵ--------------------√ct⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟