Come può la discesa stocastica del gradiente evitare il problema di un minimo locale?


Risposte:


22

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.


4
Non ricorrere bene alla Sezione 4.1, in cui il secondo teorema riguarda un caso limitato di funzioni non convesse, dicendo che converge (con infiniti campioni) solo in un punto con gradiente 0. Potrebbe non essere un minimo globale o può anche essere un massimo . La SGD è più interessante per ragioni più pratiche come l'apprendimento distribuito, non sicuramente che "eviterà" il minimo locale.
zero

2

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.


Non è vero che la discesa gradiente stocastica non converge realmente e si meraviglia solo di un certo punto. Questo sarebbe il caso se il tasso di apprendimento fosse mantenuto costante. Tuttavia, i tassi di apprendimento tendono a zero perché in questo modo, quando l'algoritmo è vicino al minimo di una funzione convessa, smette di oscillare e converge. La chiave della prova della convergenza del gradiente stocastico sono le condizioni imposte alla serie di tassi di apprendimento. Vedi le equazioni (6) e (27) del documento originale di Robbins e Monro.
clara,

2

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:

inserisci qui la descrizione dell'immagine

In secondo luogo, discesa gradiente stocastica:

inserisci qui la descrizione dell'immagine

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


Perché dovresti mescolare il set di allenamento prima di ogni epoca? L'algoritmo di SGD seleziona gli esempi di allenamento in modo casuale.
Vladislavs Dovgalecs,

Il mescolamento è fondamentalmente un modo per farlo scegliere casualmente quei campioni di allenamento. Nelle mie implementazioni, di solito mischio il set di allenamento prima di ogni epoca e poi for-loops attraverso il set mischiato

2
Hm, su Wikipedia, l'algoritmo SGD è descritto come "senza sostituzione", tuttavia, Bottou lo descrive come hai fatto tu (Bottou, Léon. "Apprendimento automatico su larga scala con discesa gradiente stocastica." Atti del COMPSTAT'2010. Physica-Verlag HD, 2010. 177-186.), E penso che qui tenderei a fidarmi di Bottou più di questa voce di Wikipedia.

4
@xeon Dai un'occhiata a questo documento , in cui si sostiene che il campionamento senza sostituzione è migliore. La mia comprensione è che senza sostituzione tende ad essere empiricamente superiore, ma le analisi teoriche non erano disponibili fino a poco tempo fa.
Dougal,

1
@xeon Ho appena guardato le mie diapositive PDF dal corso di Andrew Ng, e sembra che lo abbia descritto su Wikipedia (la variante "senza sostituzione") non come Bottou. Ho caricato uno screenshot qui
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.