So che la discesa gradiente stocastica ha un comportamento casuale, ma non so perché.
C'è qualche spiegazione al riguardo?
So che la discesa gradiente stocastica ha un comportamento casuale, ma non so perché.
C'è qualche spiegazione al riguardo?
Risposte:
L'algoritmo del gradiente stocastico (SG) si comporta come un algoritmo di ricottura simulato (SA), in cui il tasso di apprendimento dell'SG è correlato alla temperatura di SA. La casualità o il rumore introdotto da SG consente di sfuggire ai minimi locali per raggiungere un minimo migliore. Naturalmente, dipende dalla velocità con cui diminuisci il tasso di apprendimento. Leggi la sezione 4.2, di Stochastic Gradient Learning in Neural Networks (pdf) , dove è spiegato in modo più dettagliato.
Nella discesa del gradiente stocastico i parametri sono stimati per ogni osservazione, al contrario dell'intero campione nella discesa del gradiente regolare (discesa del gradiente in lotti). Questo è ciò che gli dà molta casualità. Il percorso della discesa gradiente stocastica si aggira su più luoghi, e quindi è più probabile che "salti fuori" da un minimo locale e trovi un minimo globale (Nota *). Tuttavia, la discesa gradiente stocastica può rimanere bloccata nel minimo locale.
Nota: è comune mantenere costante il tasso di apprendimento, in questo caso la discesa gradiente stocastica non converge; vaga solo per lo stesso punto. Tuttavia, se il tasso di apprendimento diminuisce nel tempo, diciamo, è inversamente correlato al numero di iterazioni, quindi la discesa gradiente stocastica convergerebbe.
Come già menzionato nelle risposte precedenti, la discesa del gradiente stocastico presenta una superficie di errore molto più rumorosa poiché si sta valutando ogni campione in modo iterativo. Mentre si sta compiendo un passo verso il minimo globale nella discesa gradiente batch ad ogni epoca (passare sopra il set di allenamento), i singoli passaggi del gradiente di discesa gradiente stocastico non devono sempre puntare verso il minimo globale a seconda del campione valutato.
Per visualizzarlo usando un esempio bidimensionale, ecco alcune figure e disegni della lezione di machine learning di Andrew Ng.
Prima discesa gradiente:
In secondo luogo, discesa gradiente stocastica:
Il cerchio rosso nella figura in basso indica che la discesa gradiente stocastica "continuerà ad aggiornarsi" da qualche parte nell'area intorno al minimo globale se si utilizza un tasso di apprendimento costante.
Quindi, ecco alcuni consigli pratici se si utilizza la discesa gradiente stocastica:
1) rimescola il set di allenamento prima di ogni epoca (o iterazione nella variante "standard")
2) utilizzare un tasso di apprendimento adattivo per "ricottura" più vicino al minimo globale
for
-loops attraverso il set mischiato