Per problemi convessi, il gradiente in Discesa gradiente stocastica (SGD) indica sempre il valore estremo globale?


25

Data una funzione di costo convesso, usando SGD per l'ottimizzazione, avremo un gradiente (vettore) ad un certo punto durante il processo di ottimizzazione.

La mia domanda è, dato il punto sul convesso, il gradiente punta solo nella direzione in cui la funzione aumenta / diminuisce più velocemente, oppure il gradiente punta sempre nel punto ottimale / estremo della funzione di costo ?

Il primo è un concetto locale, il secondo è un concetto globale.

SGD può eventualmente convergere all'estremo valore della funzione di costo. Mi chiedo quale sia la differenza tra la direzione del gradiente dato un punto arbitrario sul convesso e la direzione che punta al valore estremo globale.

La direzione del gradiente dovrebbe essere la direzione in cui la funzione aumenta / diminuisce più velocemente su quel punto, giusto?


6
Hai mai camminato dritto in discesa da una dorsale montuosa, solo per ritrovarti in una valle che continua in discesa in una direzione diversa? La sfida è immaginare una situazione del genere con una topografia convessa: pensa a un bordo del coltello in cui la cresta è la più ripida in alto.
whuber

4
No, perché è la discesa gradiente stocastica, non la discesa gradiente. L'intero punto di SGD è che si eliminano alcune delle informazioni sul gradiente in cambio di una maggiore efficienza computazionale - ma ovviamente nel gettare via alcune delle informazioni sul gradiente non si avrà più la direzione del gradiente originale. Questo sta già ignorando la questione se i punti gradiente regolari nella direzione della discesa ottimale o no, ma il punto è, anche se la discesa gradiente regolare lo ha fatto, non c'è motivo di aspettarsi che la discesa gradiente stocastica lo faccia.
Chill2Macht,

3
@Tyler, perché la tua domanda è specifica sulla discesa gradiente stocastica . Immagina in qualche modo qualcosa di diverso rispetto alla discesa gradiente standard?
Sesto Empirico

2
Il gradiente punta sempre verso l'ottimale nel senso che l'angolo tra il gradiente e il vettore rispetto all'ottimale avrà un angolo inferiore a , e camminando nella direzione del gradiente una quantità infinitesimale avvicinarti all'ottimale. π2
Ripristina Monica il

5
Se il gradiente puntava direttamente su un minimizer globale, l'ottimizzazione convessa diventerebbe super facile, perché potremmo quindi fare una ricerca di linee unidimensionale per trovare un minimizer globale. Questo è troppo da sperare.
littleO

Risposte:


36

Dicono che un'immagine valga più di mille parole. Nel seguente esempio (per gentile concessione di MS Paint, uno strumento utile sia per gli statistici dilettanti che per quelli professionisti) è possibile vedere una superficie di funzione convessa e un punto in cui la direzione della discesa più ripida differisce chiaramente dalla direzione verso l'ottimale.

Un'immagine di una funzione convessa allungata e frecce che mostrano che la direzione della discesa più ripida non è la stessa direzione verso l'ottimale globale

Una nota seria: ci sono risposte di gran lunga superiori in questo thread che meritano anche un voto.


27
E il controesempio di oggi è ... un avocado!
JDL,

11
Vedi che mentre tagli un avocado, dovresti tagliare nella direzione di discesa più ripida per evitare il seme e una possibile lesione .
Jan Kukacka,

28
  • I metodi di discesa a gradiente utilizzano la pendenza della superficie.
  • Questo non necessariamente (o molto probabilmente no) punta direttamente verso il punto estremo.

Una visione intuitiva è immaginare un percorso di discesa che sia un percorso curvo. Vedi ad esempio gli esempi seguenti.

Come analogia: immagina di averti bendato e di metterti da qualche parte su una montagna con il compito di tornare all'estremo (basso) punto. Sulla collina, se hai solo informazioni locali , non sai in quale direzione si troverà il fondo del lago.

Se puoi assumere convessità

  • Allora sai che c'è solo un punto estremo.
  • Allora sai che sicuramente raggiungerai il punto estremo finché ti sposterai verso il basso.
  • E poi sai anche che l'angolo tra la direzione di discesa più ripida e la direzione ottimale è sempre al massimoπ/2 , come menzionato nei commenti da Solomonoff's Secret.

convesso

Senza convessità

  • L'angolo può superareπ/2 . Nell'immagine seguente questo è enfatizzato disegnando una freccia della direzione di discesa per un punto particolare in cui la soluzione finale è dietro la linea perpendicolare alla direzione di discesa.

    Nel problema convesso questo non è possibile. Questo potrebbe essere correlato agli isoline per la funzione di costo che ha una curvatura nella stessa direzione quando il problema è convesso.

non convesso

In Discesa con gradiente stocastico

  • Segui la direzione più ripida per un singolo punto (e fai ripetutamente un passo per un altro punto). Nell'esempio il problema è convesso, ma potrebbero esserci più soluzioni. Nell'esempio i valori estremi sono su una linea (anziché su un singolo punto), e da questo particolare punto di vista si potrebbe dire che la direzione di discesa più ripida, può puntare direttamente al "ottimale" (sebbene sia solo l'ottimale per la funzione di quel particolare punto di addestramento)

punto singolo

Di seguito è un'altra vista per quattro punti dati . Ognuna delle quattro immagini mostra la superficie per un singolo punto diverso. Ad ogni passo viene scelto un punto diverso lungo il quale viene calcolato il gradiente. Questo fa sì che ci siano solo quattro direzioni lungo le quali viene fatto un passo, ma le misure diminuiscono quando ci avviciniamo alla soluzione.

discesa gradiente stocastica



Le immagini sopra sono per 4 punti dati generati dalla funzione:

yi=e0.4xie0.8xi+ϵi

x = 0      2      4      6           
y = 0.006  0.249  0.153  0.098

che si traduce in:

  • un problema di ottimizzazione non convessa quando minimizziamo la funzione di costo (non lineare)

    S(a,b)=i=1(yi(eaxiebxi))2
    S(a,b)=[i=12xieaxi(yieaxiebxi)i=12xiebxi(yieaxiebxi)]

  • un problema di ottimizzazione convessa (come tutti i minimi quadrati lineari) quando minimizziamo

    S(a,b)=i=1(yi(ae0.4xibe0.8xi))2
    S(a,b)=[i=12e0.4xi(yiae0.4xibe0.8xi)i=12e0.8xi(yiae0.4xibe0.8xi)]

  • un problema di ottimizzazione convessa (ma non con un minimo minimo) quando minimizziamo per alcuni specifici con gradiente questo ha minimi multipla (ci sono più e per cui )i

    S(a,b)=(yi(ae0.4bxibe0.8xi))2
    S(a,b)=[2e0.4xi(yiae0.4xibe0.8xi)2e0.8xi(yiae0.4xibe0.8xi)]
    abS=0


Scritto da StackExchangeStrike



17

La discesa più ripida può essere inefficiente anche se la funzione obiettivo è fortemente convessa.

Discesa gradiente ordinaria

Intendo "inefficiente", nel senso che la discesa più ripida può compiere passi che oscillano selvaggiamente lontano dall'ottimale, anche se la funzione è fortemente convessa o addirittura quadratica.

Considera . Questo è convesso perché è un quadratico con coefficienti positivi. Dall'ispezione, possiamo vedere che ha un minimo globale in . Ha un gradiente f(x)=x12+25x22x=[0,0]

f(x)=[2x150x2]

Con un tasso di apprendimento di e ipotesi iniziale abbiamo l'aggiornamento del gradienteα=0.035x(0)=[0.5,0.5],

x(1)=x(0)αf(x(0))

che mostra questo progresso selvaggiamente oscillante verso il minimo.

inserisci qui la descrizione dell'immagine

In effetti, l'angolo formato tra e decade gradualmente solo fino a 0. Cosa significa è che la direzione dell'aggiornamento a volte è sbagliata - al massimo, è sbagliata di quasi 68 gradi - anche se l'algoritmo sta convergendo e funziona correttamente.θ(x(i),x)(x(i),x(i+1))

inserisci qui la descrizione dell'immagine

Ogni passaggio oscilla selvaggiamente perché la funzione è molto più ripida nella direzione rispetto alla direzione . Per questo motivo, possiamo dedurre che il gradiente non punta sempre, o addirittura di solito, verso il minimo. Questa è una proprietà generale della discesa del gradiente quando gli autovalori dell'Assia sono su scale diverse. Il progresso è lento nelle direzioni corrispondenti agli autovettori con i più piccoli autovalori corrispondenti e più veloce nelle direzioni con gli autovalori più grandi. È questa proprietà, in combinazione con la scelta del tasso di apprendimento, che determina la velocità con cui procede la discesa gradiente.xx2x12f(x)

Il percorso diretto al minimo sarebbe quello di spostarsi "in diagonale" anziché in questo modo che è fortemente dominato dalle oscillazioni verticali. Tuttavia, la discesa del gradiente contiene solo informazioni sulla ripidezza locale, quindi "non sa" che la strategia sarebbe più efficiente ed è soggetta ai capricci dell'Assia che hanno autovalori su scale diverse.

Discesa gradiente stocastica

SGD ha le stesse proprietà, con l'eccezione che gli aggiornamenti sono rumorosi, il che implica che la superficie del contorno appare diversa da un'iterazione alla successiva e quindi anche i gradienti sono diversi. Ciò implica che anche l'angolo tra la direzione del gradiente e l'ottimale avrà rumore - immagina solo gli stessi grafici con un po 'di jitter.

Maggiori informazioni:


Questa risposta prende in prestito questo esempio e questa figura dal Neural Networks Design (2a edizione), capitolo 9, di Martin T. Hagan, Howard B. Demuth, Mark Hudson Beale, Orlando De Jesús.


13

La direzione più ripida locale non è la stessa della direzione globale ottimale. Se lo fosse, la direzione del gradiente non cambierebbe; perché se vai sempre verso il tuo ottimale, il tuo vettore di direzione punta sempre in modo ottimale. Ma non è così. Se così fosse, perché preoccuparsi di calcolare il gradiente ad ogni iterazione?


3

Le altre risposte evidenziano alcuni fastidiosi problemi di velocità di convergenza per GD / SGD, ma il tuo commento "SGD alla fine può convergere ..." non è sempre corretto (ignorando le osservazioni sull'uso pedante della parola "can" poiché sembra che tu intendessi "volontà").

Un bel trucco per trovare contro-esempi con SGD è notare che se ogni punto dati è lo stesso, la tua funzione di costo è deterministica. Immagina l'esempio estremamente patologico in cui abbiamo un punto dati e abbiamo un modello per il funzionamento del nostro sistema basato su un singolo parametro

(x0,y0)=(1,0)
α
f(x,α)=α2αx.

Con MSE come nostra funzione di costo, questo semplifica in una funzione convessa. Supponiamo di scegliere male il nostro tasso di apprendimento modo che la nostra regola di aggiornamento sia la seguente:Ora, la nostra funzione di costo ha un minimo a , ma se iniziamo letteralmente da qualsiasi parte diversa da SGD rimbalzerà semplicemente tra il ciclo tra il punto iniziale e e non converge mai .

(f(x0,α)y0)2=α2α,
β
αn+1=αnβ(2αn1)=αn(2αn1)=1αn.
α=12p=12p1p

Non sono sicuro che la convessità sia sufficiente per interrompere un comportamento peggiore che esiste per SGD generale, ma se si consentono funzioni anche complesse come i cubi per la funzione di costo, SGD può rimbalzare su un sottoinsieme denso del dominio e non convergere mai da nessuna parte o avvicinarsi a qualsiasi ciclo.

SGD può anche avvicinarsi / ottenere cicli di qualsiasi lunghezza finita, divergere verso , oscillare verso (scusa la notazione) e avere tonnellate di altri comportamenti patologici.± ±

Una cosa interessante dell'intera situazione è che esistono innumerevoli funzioni (come SGD) che accettano funzioni convesse arbitrarie come input e quindi generano una regola di aggiornamento che converge sempre rapidamente al minimo globale (se presente). Anche se concettualmente ne esistono molti, i nostri migliori tentativi di ottimizzazione convessa hanno tutti controesempi patologici. In qualche modo l'idea di una regola di aggiornamento semplice / intuitiva / performante è in contrasto con l'idea di una regola di aggiornamento dimostrabilmente corretta.


1
+1 per questa osservazione. Ma questo è un po 'di cattiva scelta e sarebbe anche cattivo in caso di discesa gradiente regolare. È un buon commento ma in realtà non riguarda il problema se il percorso di discesa più ripido punta verso la soluzione o meno, si riferisce invece al problema di passi troppo grandi che possono portare ad aggiornamenti divergenti. β=1
Sesto Empirico,

1
Si noti che la prova di convergenza SGD presuppone una dimensione del gradino decrescente ...
Jan Kukacka,

@MartijnWeterings Buona osservazione. Immagino che il mio esempio indichi effettivamente la direzione corretta. Dovrei aggiornarlo con un esempio 2D che non indica mai la giusta direzione e diverge?
Hans Musgrave,

@MartijnWeterings Concordato, è una scelta sbagliata. Per ogni , tuttavia, esiste una funzione di costo patologico per la quale tale fallisce. Uno dei più semplici deriva daβ > 0 β f ( x , α ) = β=1β>0βf(x,α)=α2αxβ.
Hans Musgrave,

@JanKukacka Questa è una modifica comune a SGD che soffre di un difetto simile. Invece che la funzione di costo sia una parabola, si sceglie modo che la funzione di costo sia una funzione convessa simmetrica che aumenta abbastanza rapidamente in entrambe le direzioni dal minimo per contrastare la velocità di raffreddamento di . Le prove di convergenza SGD che ho visto sono solo con probabilità 1 e si basano su funzioni di costo così mal scelte esistenti con probabilità 0 con misure tipiche nello spazio delle funzioni di costo. βfβ
Hans Musgrave,

2

Forse le risposte a questa domanda richiedono un rapido aggiornamento. Sembra che SGD fornisca un minimo globale anche nel caso non convesso (convesso è solo un caso speciale):

SGD converge al minimo globale nell'apprendimento approfondito tramite Star-Convex Path, autori anonimi , documento sotto revisione in doppio cieco all'ICLR 2019

https://openreview.net/pdf?id=BylIciRcYQ

Gli autori stabiliscono la convergenza della SGD a un minimo globale per i problemi di ottimizzazione non convessa che si incontrano comunemente nella formazione della rete neurale. L'argomento sfrutta le seguenti due importanti proprietà: 1) la perdita di allenamento può raggiungere il valore zero (approssimativamente); 2) SGD segue un percorso stella-convesso. In tale contesto, sebbene SGD sia stato a lungo considerato un algoritmo randomizzato, il documento rivela che converge in modo intrinsecamente deterministico a un minimo globale.

Questo dovrebbe essere preso con un granello di sale però. Il documento è ancora in fase di revisione.

La nozione di percorso stella-convesso fornisce un suggerimento su dove il gradiente indicherebbe ad ogni iterazione.

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.