Come può essere intrappolato in un punto di sella?


14

Al momento sono un po 'perplesso da come la discesa del gradiente mini-batch possa essere intrappolata in un punto di sella.

La soluzione potrebbe essere troppo banale per non averla.

Si ottiene un nuovo campione ad ogni epoca e calcola un nuovo errore basato su un nuovo batch, quindi la funzione di costo è statica solo per ciascun batch, il che significa che anche il gradiente dovrebbe cambiare per ogni mini batch .. ma secondo questo dovrebbe un'implementazione alla vaniglia ha problemi con i punti di sella?

Un'altra sfida chiave per ridurre al minimo le funzioni di errore altamente non convesse comuni per le reti neurali è evitare di rimanere intrappolati nei loro numerosi minimi locali non ottimali. Dauphin et al. [19] sostengono che la difficoltà non deriva in realtà da minimi locali ma da punti di sella, cioè punti in cui una dimensione si inclina verso l'alto e un'altra in pendenza. Questi punti di sella sono generalmente circondati da un plateau dello stesso errore, il che rende notoriamente difficile la fuga di SGD, poiché il gradiente è vicino allo zero in tutte le dimensioni.

Vorrei dire che soprattutto SGD avrebbe un chiaro vantaggio rispetto ai punti di sella, poiché fluttua verso la sua convergenza ... Le fluttuazioni e il campionamento casuale, e la funzione di costo diversa per ogni epoca dovrebbero essere ragioni sufficienti per non rimanere intrappolati in uno.

Per un gradiente di batch completo, ha senso che possa essere intrappolato nel punto di sella, poiché la funzione di errore è costante.

Sono un po 'confuso sulle altre due parti.


1
Moti lo capisce. Il punto di sella con pendenze molto alte e circondato da pendenza zero avvia una discesa gradiente con grandi passi verso "i calanchi" da cui non può recuperare. Pensa a cercare un pozzo su una pianura essenzialmente piatta. Ora pensa al pozzo come all'asciutto e con una formica-collina al centro. Una discesa gradiente che atterra sulla collina della formica, ma non nella parte superiore esatta, sparerà radialmente alla ricerca. Ora immagina che la dimensione del passo per la ricerca sia mille volte più grande del diametro del pozzo. Se la ricerca trova mai il pozzo, il formicaio lo spara a Montana
EngrStudent - Ripristina Monica

Sono confuso da ciò che stai chiedendo. Sei confuso perché SGD non è in grado di rimanere intrappolato nel punto di sella a causa del rumore ereditario che ha SGD, quindi secondo te dovrebbe essere in grado di scappare? (a differenza di GD pieno batch, quindi se il gradiente è zero e nessun rumore, allora non può sfuggire, è questo che stai chiedendo?)
Pinocchio,

Risposte:


16

Dai un'occhiata all'immagine qui sotto da Off Convex . In una funzione convessa (immagine più a sinistra), esiste solo un minimo locale, che è anche il minimo globale. Ma in una funzione non convessa (immagine più a destra), possono esserci più minimi locali e spesso unire due minimi locali è un punto di sella. Se ti avvicini da un punto più alto, il gradiente è relativamente più piatto e rischi di rimanere bloccato lì, specialmente se ti stai muovendo solo in una direzione.

Rappresentazione schematica di un punto di sella

Ora il problema è se stai ottimizzando usando il mini-batcho discesa gradiente stocastica, la funzione non convessa sottostante è la stessa e il gradiente è una proprietà di questa funzione. Quando si esegue il mini-batch, si considerano molti campioni alla volta e si esegue il gradiente gradiente in media su tutti. Questo riduce la varianza. Ma se la direzione del gradiente medio punta ancora nella stessa direzione del punto della sella, rischi comunque di rimanere bloccato lì. L'analogia è che, se stai facendo 2 passi avanti e 1 passo indietro, facendo una media su quelli, alla fine si finisce per fare 1 passo avanti. Se invece esegui SGD, esegui tutti i passaggi uno dopo l'altro, ma se ti stai ancora muovendo in una sola direzione, puoi raggiungere il punto di sella e scoprire che la pendenza su tutti i lati è abbastanza piatta e la dimensione del passo è troppo piccolo per andare oltre questa parte piatta. Questo non

Dai un'occhiata alla visualizzazione qui . Anche con SGD, se le fluttuazioni si verificano solo lungo una dimensione, con i gradini sempre più piccoli, converrebbe nel punto della sella. In questo caso, il metodo mini-batch ridurrebbe semplicemente la quantità di fluttuazione ma non sarebbe in grado di cambiare la direzione del gradiente.

L'SGD può talvolta fuoriuscire da semplici punti di sella, se le fluttuazioni si trovano in altre direzioni e se la dimensione del gradino è abbastanza grande da consentire il superamento della planarità. Ma a volte le regioni della sella possono essere abbastanza complesse, come nell'immagine qui sotto.

Regioni di selle complesse

Il modo in cui metodi come lo slancio, ADAGRAD, Adam ecc. Sono in grado di uscire da questo, è considerando i gradienti passati. Considera lo slancio,

vt=γvt-1+ηthetun'J(θ)

vt-1


Bene, non esattamente! Per una risposta in pratica vedi: stats.stackexchange.com/a/284399/117305
alifornia

@AliAbbasinasab Penso che Antimonio spieghi bene. Certo, rimanere bloccati in un normale punto di sella non è certo come dici nella tua risposta, ma ha appena mostrato la possibilità che l'SGD possa essere catturato. E per me, ha appena mostrato alcuni punti di sella insoliti ai quali SGD non può sfuggire.
Kazuya Tomita,

2

Non dovrebbe.

[ 1 ] ha dimostrato che la discesa del gradiente con inizializzazione casuale e dimensioni graduali costanti appropriate non converge in un punto di sella. È una lunga discussione ma per darti un'idea del perché vedi il seguente esempio:

f(X,y)=12X2+14y4-12y2

inserisci qui la descrizione dell'immagine

z1=[00],z2=[01],z3=[0-1]

z2z3z1

z0=[X0]z1z1XR2

2f(X,y)=[1003y2-1]

2f(z1)XXz1


Potresti anche scegliere facilmente una contro-esempio in cui
rimarrai

1
Non sono stato in grado di raggiungere il tuo link [1] - potresti fornire una citazione completa? Nel frattempo, è possibile costruire controesempi al reclamo, indicando che deve essere basato su ipotesi non dichiarate aggiuntive.
whuber

@whuber puoi facilmente preparare controesempi. Ad esempio se hai solo una linea come spazio. Ho appena provato ad aggiungere un punto che potrebbe non essere ovvio per molti (inizialmente non era troppo ovvio per me perché). Riguardo al riferimento, non ho idea del perché non puoi raggiungerlo. Ho ricontrollato, il link è valido e anche aggiornato. Puoi cercare "Gradient Descent Converges to Minimizers, Jason D. Lee, Max Simchowitz, Michael I. Jordan † e Benjamin Recht † ♯ Department of Electrical Engineering and Computer Sciences † Dipartimento di Statistcs University of California, Berkeley, 19 aprile 2019 "
alifornia,

Grazie per il riferimento. Una rapida occhiata (il collegamento ora funziona) mostra che l'analisi è limitata a "selle rigide" (dove ci sono autovalori sia positivi che negativi dell'Assia), che preclude molte possibilità. Le dichiarazioni finali del documento includono "notiamo che ci sono problemi di ottimizzazione senza vincoli molto difficili in cui la rigorosa condizione della sella fallisce" e offrono come esempio la minimizzazione quartica.
whuber

0

Se vai al documento di riferimento (mostrano anche in modo empirico come il loro approccio senza sella migliora effettivamente su SGD mini-batch) dichiarano:

Un passo del metodo di discesa del gradiente punta sempre nella giusta direzione vicino a un punto di sella ... e così vengono fatti piccoli passi in direzioni corrispondenti a autovalori di piccolo valore assoluto.

Notano anche la presenza di "altopiani" vicino ai punti della sella (in altre parole, la sella non è ripida) - in questi casi, fare passi troppo piccoli comporterebbe in effetti una convergenza prematura prima di sfuggire alla regione della sella. Poiché si tratta di un'ottimizzazione non convessa, la convergenza del tasso di apprendimento peggiorerebbe le cose.

Sembra possibile che si possa provare un approccio iterativo, in cui si riavvia il SGD mini-batch una volta completato (ovvero, reimpostando il tasso di apprendimento) per vedere se si può sfuggire alla regione problematica.


0

Penso che il problema sia che quando ti avvicini a un punto a sella entri in un altopiano, cioè un'area con gradienti bassi (in valore assoluto). Soprattutto quando ti stai avvicinando dalla cresta. Quindi il tuo algoritmo riduce la dimensione del passo. Con una dimensione del passo ridotta ora tutti i gradienti (in tutte le direzioni) sono piccoli in valore assoluto. Quindi l'algoritmo si interrompe, pensando che sia al minimo.

Se non diminuisci i passaggi, salterai oltre il minimo e ti mancheranno molto. È necessario ridurre le dimensioni del gradino in qualche modo.

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.