Quali sono le alternative di Discesa gradiente?


47

La Discesa a Gradiente ha il problema di rimanere bloccati nei Minimi Locali. Dobbiamo eseguire tempi esponenziali di discesa gradiente per trovare minimi globali.

Qualcuno può parlarmi di qualsiasi alternativa alla discesa gradiente applicata nell'apprendimento della rete neurale, insieme ai suoi pro e contro.

Risposte:


39

Questo è più un problema che ha a che fare con la funzione minimizzata rispetto al metodo utilizzato, se è importante trovare il vero minimo globale, quindi utilizzare un metodo come una ricottura simulata . Questo sarà in grado di trovare il minimo globale, ma potrebbe richiedere molto tempo per farlo.

Nel caso delle reti neurali, i minimi locali non rappresentano necessariamente un grosso problema. Alcuni dei minimi locali sono dovuti al fatto che è possibile ottenere un modello funzionalmente identico permutando le unità di livello nascoste o negando gli ingressi e i pesi di uscita della rete ecc. Inoltre, se i minimi locali sono solo leggermente non ottimali, allora la differenza nelle prestazioni sarà minima e quindi non avrà molta importanza. Infine, e questo è un punto importante, il problema chiave nell'adattamento di una rete neurale è eccessivo, quindi la ricerca aggressiva dei minimi globali della funzione di costo può comportare un eccesso di adattamento e un modello che funziona male.

L'aggiunta di un termine di regolarizzazione, ad esempio il decadimento del peso, può aiutare a smussare la funzione di costo, che può ridurre un po 'il problema dei minimi locali ed è qualcosa che consiglierei comunque come mezzo per evitare un eccesso di adattamento.

Il metodo migliore tuttavia per evitare i minimi locali nelle reti neurali consiste nell'utilizzare un modello di processo gaussiano (o una rete neurale con funzione di base radiale), che ha meno problemi con i minimi locali.


9
Verissimo. Il problema di non trovare il minimo globale è sopravvalutato.
Bayerj,

2
Overfitting accade quando si utilizzano molti parametri in un modello (tipico caso d'uso NN), è non è legato alla minimi locali - almeno non in modo evidente. Puoi rimanere bloccato in un minimo locale negativo anche con un piccolo NN, cioè con pochissimi parametri gratuiti.
carlosayam,

1
@DikranMarsupial, puoi avere molti minimi locali, anche con un singolo parametro del modello. Dipende dalla forma della funzione di perdita. Esempio semplice ma contrastato: , dove sono i vicini più vicini e il secondo più vicino a . È facile vedere che c'è un minimo locale tra ogni due punti consecutivi, cioè più dati sono i minimi locali! Il globale viene raggiunto tra i punti più vicini nel set di dati. Questo è estremo, lo so, ma ho visto comportamenti simili risolvere problemi di cambiamento. x ( 1 ) , x ( 2 ) ωL(ω)=(x(1)ω)2+(x(2)ω)2x(1),x(2)ω
carlosayam,

1
@DikranMarsupial - Non avevo abbastanza caratteri per terminare la mia frase :) Ho visto comportamenti simili risolvere problemi di cambiamento ... usando le reti neurali. In questo tipo di problemi, un minimo locale è generalmente negativo; quindi non sono d'accordo sul fatto che questo problema sia sopravvalutato.
carlosayam,

1
@carlosayam "sopravvalutato" non significa "non importante", solo che si tratta di un problema con le reti neurali generalmente sopravvalutato. Ci saranno sempre problemi con tutti i metodi di apprendimento, non c'è panacea per tutto e devi sempre diagnosticare i problemi con qualsiasi modello.
Dikran Marsupial,

24

La discesa gradiente è un algoritmo di ottimizzazione .

Esistono molti algoritmi di ottimizzazione che operano su un numero fisso di valori reali che sono correlati ( non separabili ). Possiamo dividerli approssimativamente in 2 categorie: ottimizzatori basati sul gradiente e ottimizzatori senza derivati. Di solito si desidera utilizzare il gradiente per ottimizzare le reti neurali in un'impostazione controllata perché è significativamente più veloce dell'ottimizzazione senza derivati. Esistono numerosi algoritmi di ottimizzazione basati sul gradiente che sono stati utilizzati per ottimizzare le reti neurali:

  • Discesa gradiente stocastica (SGD) , SGD minibatch, ...: non è necessario valutare il gradiente per l'intero set di addestramento ma solo per un campione o un minibatch di campioni, di solito è molto più veloce della discesa gradiente batch. I minibatch sono stati utilizzati per smussare il gradiente e parallelizzare avanti e backpropagation. Il vantaggio rispetto a molti altri algoritmi è che ogni iterazione è in O (n) (n è il numero di pesi nella tua NN). SGD di solito non si blocca nei minimi locali (!) Perché è stocastico.
  • Gradiente coniugato non lineare : sembra avere molto successo nella regressione, O (n), richiede il gradiente batch (quindi, potrebbe non essere la scelta migliore per enormi set di dati)
  • L-BFGS : sembra avere molto successo nella classificazione, usa l'approssimazione dell'Assia, richiede il gradiente batch
  • Algoritmo di Levenberg-Marquardt (LMA) : questo è in realtà il miglior algoritmo di ottimizzazione che io conosca. Ha lo svantaggio che la sua complessità è all'incirca O (n ^ 3). Non usarlo per reti di grandi dimensioni!

E ci sono stati molti altri algoritmi proposti per l'ottimizzazione delle reti neurali, si potrebbe google per l'ottimizzazione senza hessiana o v-SGD (ci sono molti tipi di SGD con tassi di apprendimento adattivo, vedi ad esempio qui ).

L'ottimizzazione per NNs non è un problema risolto! Nelle mie esperienze la sfida più grande non è quella di trovare un buon minimo locale. Tuttavia, le sfide sono uscire da regioni molto piatte, gestire funzioni di errore non condizionate, ecc. Questo è il motivo per cui LMA e altri algoritmi che usano approssimazioni dell'Assia di solito funzionano così bene nella pratica e le persone cercano di sviluppare versioni stocastiche che utilizzano informazioni di secondo ordine con bassa complessità. Tuttavia, spesso un set di parametri molto ben regolato per il minibatch SGD è migliore di qualsiasi algoritmo di ottimizzazione complesso.

Di solito non vuoi trovare un ottimo globale. Perché questo di solito richiede un adattamento eccessivo dei dati di allenamento.


16

Un'alternativa interessante alla discesa gradiente sono gli algoritmi di addestramento basati sulla popolazione come gli algoritmi evolutivi (EA) e l'ottimizzazione dello sciame di particelle (PSO). L'idea alla base degli approcci basati sulla popolazione è che viene creata una popolazione di soluzioni candidate (vettori di peso NN) e le soluzioni candidate esplorano iterativamente lo spazio di ricerca, scambiando informazioni e alla fine convergendo su minimi. Poiché vengono utilizzati molti punti di partenza (soluzioni candidate), le possibilità di convergere sui minimi globali sono aumentate in modo significativo. PSO ed EA hanno dimostrato di funzionare in modo molto competitivo, spesso (anche se non sempre) sovraperformando la pendenza del gradiente su complessi problemi di allenamento NN.


+1 Vale la pena ricordare, tuttavia, che l'ottimizzazione aggressiva del criterio di formazione può portare a un eccesso di adattamento, a meno che non vengano prese misure per prevenirlo, quindi eviterei PSO ed EA a meno che il criterio di addestramento non includa una qualche forma di regolarizzazione o altra base basata sulla complessità pena.
Dikran Marsupial,

5
@ anna-earwen, potresti fornire alcuni riferimenti in cui PSO si comporta in modo competitivo rispetto a SGD?
emrea,

8

So che questo thread è piuttosto vecchio e altri hanno fatto un ottimo lavoro per spiegare concetti come minimi locali, overfitting ecc. Tuttavia, poiché OP stava cercando una soluzione alternativa, cercherò di contribuire con uno e spero che ispirerà idee più interessanti.

L'idea è di sostituire ogni peso da w a w + t, dove t è un numero casuale che segue la distribuzione gaussiana. L'output finale della rete è quindi l'output medio su tutti i possibili valori di t. Questo può essere fatto analiticamente. È quindi possibile ottimizzare il problema con discesa gradiente o LMA o altri metodi di ottimizzazione. Una volta eseguita l'ottimizzazione, hai due opzioni. Un'opzione è ridurre il sigma nella distribuzione gaussiana ed eseguire l'ottimizzazione ancora e ancora fino a quando sigma raggiunge lo 0, quindi si avrà un minimo locale migliore (ma potenzialmente potrebbe causare un overfitting). Un'altra opzione è continuare a usare quello con il numero casuale nei suoi pesi, di solito ha una migliore proprietà di generalizzazione.

Il primo approccio è un trucco di ottimizzazione (lo chiamo tunneling convoluzionale, poiché usa la convoluzione sui parametri per modificare la funzione target), leviga la superficie del panorama della funzione di costo e elimina alcuni dei minimi locali, quindi rendere più facile trovare il minimo globale (o un minimo locale migliore).

Il secondo approccio è legato all'iniezione di rumore (sui pesi). Si noti che ciò viene eseguito in modo analitico, il che significa che il risultato finale è una singola rete, anziché più reti.

I seguenti sono esempi di output per problemi a due spirali. L'architettura di rete è la stessa per tutti e tre: esiste un solo livello nascosto di 30 nodi e il livello di output è lineare. L'algoritmo di ottimizzazione utilizzato è LMA. L'immagine a sinistra è per l'impostazione vaniglia; il mezzo sta usando il primo approccio (ovvero riducendo ripetutamente sigma verso 0); il terzo sta usando sigma = 2.

Risultato di un problema a due spirali con tre approcci

Puoi vedere che la soluzione alla vaniglia è la peggiore, il tunnel convoluzionale fa un lavoro migliore e l'iniezione di rumore (con tunnel convoluzionale) è la migliore (in termini di proprietà di generalizzazione).

Sia il tunneling convoluzionale che il modo analitico di iniezione del rumore sono le mie idee originali. Forse sono l'alternativa che qualcuno potrebbe essere interessato. I dettagli sono disponibili nel mio articolo Combinare il numero infinito di reti neurali in uno . Avvertenza: non sono uno scrittore accademico professionista e il documento non è sottoposto a revisione paritaria. Se hai domande sugli approcci che ho citato, lascia un commento.


1

Macchine per l'apprendimento estremo Essenzialmente sono una rete neurale in cui i pesi che collegano gli input ai nodi nascosti vengono assegnati in modo casuale e non vengono mai aggiornati. I pesi tra i nodi nascosti e gli output vengono appresi in un unico passaggio risolvendo un'equazione lineare (matrice inversa).


0

Quando si tratta di attività di ottimizzazione globale (vale a dire il tentativo di trovare un minimo globale di una funzione obiettiva) potresti voler dare un'occhiata a:

  1. Ricerca pattern (nota anche come ricerca diretta, ricerca senza derivati ​​o ricerca in black box), che utilizza un pattern (set di vettori) per determinare i punti da cercare alla successiva iterazione.{vi}
  2. Algoritmo genetico che utilizza il concetto di mutazione, crossover e selezione per definire la popolazione di punti da valutare alla successiva iterazione dell'ottimizzazione.
  3. Particle Swarm Optimization che definisce un insieme di particelle che "camminano" attraverso lo spazio alla ricerca del minimo.
  4. Ottimizzazione surrogata che utilizza unmodello surrogato per approssimare la funzione obiettivo. Questo metodo può essere utilizzato quando la funzione obiettivo è costosa da valutare.
  5. Ottimizzazione multi-obiettivo (nota anche come ottimizzazione di Pareto ) che può essere utilizzata per il problema che non può essere espresso in una forma che ha una singola funzione obiettivo (ma piuttosto un vettore di obiettivi).
  6. Ricottura simulata , che utilizza il concetto di ricottura (o temperatura) per bilanciare esplorazione e sfruttamento. Propone nuovi punti per la valutazione ad ogni iterazione, ma all'aumentare del numero di iterazioni, la "temperatura" diminuisce e l'algoritmo diventa sempre meno probabile esplorare lo spazio "convergendo" verso l'attuale miglior candidato.

Come accennato in precedenza, la ricottura simulata, l'ottimizzazione dello sciame di particelle e gli algoritmi genetici sono buoni algoritmi di ottimizzazione globale che navigano bene attraverso enormi spazi di ricerca e, a differenza della discesa del gradiente , non hanno bisogno di informazioni sul gradiente e potrebbero essere utilizzati con successo con funzioni e problemi dell'obiettivo black-box che richiedono simulazioni in esecuzione.

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.