La discesa del gradiente converge sempre in un ottimale?


21

Mi chiedo se esiste uno scenario in cui la discesa del gradiente non converge al minimo.

Sono consapevole che la discesa gradiente non è sempre garantita per convergere in un ottimale globale. Sono anche consapevole che potrebbe divergere da un ottimale se, diciamo, la dimensione del passo è troppo grande. Tuttavia, mi sembra che, se differisce da un ottimo, alla fine andrà a un altro ottimale.

Quindi, la discesa gradiente sarebbe garantita per convergere in un ottimale locale o globale. È giusto? In caso contrario, potresti fornire un controesempio approssimativo?


1
Spero che questo link possa aiutare in futuro .. datascience.stackexchange.com/a/28417/35644
Aditya

1
Vedi questa risposta per 3 esempi concreti e semplici, tra cui prove, immagini e codice che creano un'animazione della discesa del gradiente
Oren Milman,

Risposte:


28

La pendenza del gradiente è un algoritmo progettato per trovare i punti ottimali, ma questi punti ottimali non sono necessariamente globali. E sì, se succede che si discosta da una posizione locale può convergere in un altro punto ottimale ma la sua probabilità non è troppo. Il motivo è che la dimensione del gradino potrebbe essere troppo grande per indurre a recedere da un punto ottimale e la probabilità che oscilli è molto più della convergenza.

A proposito della discesa gradiente ci sono due prospettive principali, l'era dell'apprendimento automatico e l'era dell'apprendimento profondo. Durante l'era del machine learning è stato considerato che la discesa gradiente troverà l'ottimale locale / globale, ma nell'era del deep learning in cui la dimensione delle funzioni di input è eccessiva, viene mostrato in pratica che la probabilità che tutte le funzionalità si trovino in quel valore ottimale in un singolo punto non è troppo e piuttosto vedendo di avere posizioni ottimali nelle funzioni di costo, il più delle volte si osservano punti di sella. Questo è uno dei motivi per cui l'addestramento con molti dati e le epoche di addestramento fanno sì che i modelli di apprendimento profondo superino gli altri algoritmi. Quindi, se alleni il tuo modello, troverà una deviazione o troverà la sua strada per scendere e non rimanere bloccato nei punti della sella, ma devi avere le misure appropriate.

Per ulteriori intuizioni ti consiglio di fare riferimento qui e qui .


3
Esattamente. Questi problemi si presentano sempre in teoria, ma raramente nella pratica reale. Con così tante dimensioni, questo non è un problema. Avrai un minimo locale in una variabile, ma non in un'altra. Inoltre, la discesa gradiente mini-batch o stocastica assicura anche di evitare qualsiasi minimo locale.
Ricardo Cruz,

3
@RicardoCruz sì, sono d'accordo signore
Media

12

A parte i punti che hai citato (convergenza ai minimi non globali e grandi passi che potrebbero condurre ad algoritmi non convergenti), anche gli "intervalli di flesso" potrebbero essere un problema.

Considerare il seguente tipo di funzione "sedia reclinabile".

inserisci qui la descrizione dell'immagine

Ovviamente, questo può essere costruito in modo che ci sia un intervallo nel mezzo in cui il gradiente è il vettore 0. In questo intervallo, l'algoritmo può essere bloccato indefinitamente. I punti di flesso di solito non sono considerati estremi locali.



3

[Nota 5 aprile 2019: una nuova versione del documento è stata aggiornata su arXiv con molti nuovi risultati. Introduciamo anche versioni backtracking di Momentum e NAG e dimostriamo la convergenza con gli stessi presupposti di Backtracking Gradient Descent.

I codici sorgente sono disponibili su GitHub al link: https://github.com/hank-nguyen/MBT-optimizer

Abbiamo migliorato gli algoritmi per l'applicazione a DNN e ottenuto prestazioni migliori rispetto agli algoritmi all'avanguardia come MMT, NAG, Adam, Adamax, Adagrad, ...

La caratteristica più speciale dei nostri algoritmi è che sono automatici, non è necessario eseguire la regolazione manuale dei tassi di apprendimento come pratica comune. La nostra messa a punto automatica è di natura diversa da Adam, Adamax, Adagrad, ... e così via. Maggiori dettagli sono nel documento.

]

Sulla base di risultati molto recenti: nel mio lavoro congiunto in questo documento https://arxiv.org/abs/1808.05160

f

Sulla base di quanto sopra, abbiamo proposto un nuovo metodo di apprendimento profondo che è alla pari degli attuali metodi all'avanguardia e non necessita di una regolazione manuale dei tassi di apprendimento. (In poche parole , l'idea è di correre indietro nel gradiente di discesa per un certo periodo di tempo, fino a quando non si vede che i tassi di apprendimento, che cambiano ad ogni iterazione, diventano stabilizzati. Ci aspettiamo questa stabilizzazione, in particolare in un punto critico che è C ^ 2 ed è non degenerato, a causa del risultato di convergenza di cui ho parlato sopra. A quel punto, si passa al metodo di discesa gradiente standard. Per ulteriori dettagli, consultare la carta citata. Questo metodo può essere applicato anche ad altri algoritmi ottimali .)

PS Per quanto riguarda la tua domanda originale sul metodo di discesa gradiente standard, a mia conoscenza solo nel caso in cui la derivata della mappa sia globalmente Lipschitz e il tasso di apprendimento sia abbastanza piccolo da dimostrare che il metodo di discesa gradiente standard converge. [Se queste condizioni non sono soddisfatte, ci sono semplici contro-esempi che dimostrano che non è possibile alcun risultato di convergenza, vedere l'articolo citato per alcuni.] Nel documento sopra citato, abbiamo sostenuto che a lungo termine il metodo di discesa del gradiente di backtracking diventerà il metodo di discesa gradiente standard, che fornisce una spiegazione del perché il metodo di discesa gradiente standard di solito funziona bene nella pratica.

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.