È possibile addestrare una rete neurale senza backpropagation?


94

Molti libri e tutorial sulla rete neurale impiegano molto tempo nell'algoritmo di backpropagation, che è essenzialmente uno strumento per calcolare il gradiente.

Supponiamo che stiamo costruendo un modello con ~ 10K parametri / pesi. È possibile eseguire l'ottimizzazione utilizzando alcuni algoritmi di ottimizzazione senza gradiente?

Penso che calcolare il gradiente numerico sarebbe troppo lento, ma che ne dici di altri metodi come Nelder-Mead, Simulation Annealing o un algoritmo genetico?

Tutti gli algoritmi dovrebbero soffrire di minimi locali, perché ossessionati dal gradiente?



6
@FranckDernoncourt Ho interpretato l'altra domanda come "perché non usare le tecniche di ottimizzazione globale per addestrare le reti neurali?", Mentre questa è più "perché non usare ottimizzatori senza derivati ​​...".
GeoMatt22,

6
Con 3 risposte votate, questo non sembra troppo ampio per essere responsabile per me.
gung - Ripristina Monica

5
Sì, non devi preoccuparti molto che Nelder-Mead rimanga bloccato al minimo locale, perché sarai fortunato se diventerà utile.
Mark L. Stone,

1
A proposito, ultra L-BFGS, dai un vortice. potrebbe essere buono, ma è così oscuro probabilmente nessuno l'ha mai provato su reti neurali. Vedi equazione 2.9 a pag. 12 (è necessario leggere le pagine precedenti per capire la formula, però) di maths.dundee.ac.uk/nasc/na-reports/NA149_RF.pdf (non chiamato ultra BFGS nel documento), che quindi dovrebbe entrare in una versione "L" (memoria limitata) per essere ultra L-BFGS, piuttosto che ultra BFGS. La versione non-L è presentata nel documento. Ultra BFGS è fondamentalmente un BFGS truccato ("hot rod") - può essere più veloce, ma potrebbe essere un po 'più selvaggio.
Mark L. Stone,

Risposte:


80

I primi due algoritmi che menzioni (Nelder-Mead e Simulated Annealing) sono generalmente considerati praticamente obsoleti nei circoli di ottimizzazione, in quanto esistono alternative molto migliori che sono sia più affidabili che meno costose. Gli algoritmi genetici coprono un'ampia gamma e alcuni di questi possono essere ragionevoli.

Tuttavia, nella più ampia classe di algoritmi di ottimizzazione senza derivati ​​(DFO), ce ne sono molti che sono significativamente migliori di questi "classici", in quanto questa è stata un'area di ricerca attiva negli ultimi decenni. Quindi, alcuni di questi approcci più recenti potrebbero essere ragionevoli per l'apprendimento profondo?

Un documento relativamente recente che confronta lo stato dell'arte è il seguente:

Rios, LM e Sahinidis, NV (2013) Ottimizzazione senza derivati: una revisione degli algoritmi e un confronto delle implementazioni software. Journal of Global Optimization.

Questo è un bel documento che ha molte interessanti intuizioni sulle tecniche recenti. Ad esempio, i risultati mostrano chiaramente che i migliori ottimizzatori locali sono tutti "basati su modelli", utilizzando diverse forme di programmazione quadratica sequenziale (SQP).

Tuttavia, come indicato nel loro abstract "Troviamo che la capacità di tutti questi risolutori di ottenere buone soluzioni diminuisce con l'aumentare della dimensione del problema". Per dare un'idea dei numeri, per tutti i problemi ai solutori è stato dato un budget di 2500 valutazioni delle funzioni e le dimensioni del problema erano un massimo di ~ 300 parametri da ottimizzare. Oltre ai parametri O [10], pochissimi di questi ottimizzatori hanno funzionato molto bene, e anche i migliori hanno mostrato un notevole decadimento delle prestazioni all'aumentare della dimensione del problema.

Quindi, per problemi di dimensione molto elevata, gli algoritmi DFO non sono competitivi con quelli basati su derivati. Per dare una prospettiva, l' ottimizzazione basata su PDE (equazione differenziale parziale) è un'altra area con problemi dimensionali molto elevati (ad esempio diversi parametri per ogni cella di una grande griglia di elementi finiti 3D). In questo ambito, il " metodo aggiunto " è uno dei metodi più utilizzati. Questo è anche un ottimizzatore di discesa gradiente basato sulla differenziazione automatica di un codice di modello forward.

Il più vicino a un ottimizzatore DFO ad alta dimensione è forse l' Ensemble Kalman Filter , utilizzato per assimilare i dati in complesse simulazioni PDE, ad esempio modelli meteorologici. È interessante notare che questo è essenzialmente un approccio SQP, ma con un'interpretazione bayesiana-gaussiana (quindi il modello quadratico è definito positivo, cioè senza punti di sella). Ma non credo che il numero di parametri o osservazioni in queste applicazioni sia paragonabile a quello che si vede nell'apprendimento profondo.

Nota a margine (minimi locali): dal poco che ho letto sull'apprendimento profondo, penso che il consenso sia che sono i punti di sella piuttosto che i minimi locali, che sono più problematici per gli spazi di parametri NN ad alta dimensione.

Ad esempio, la recente recensione su Nature afferma che "I recenti risultati teorici ed empirici suggeriscono fortemente che i minimi locali non sono un problema serio in generale. Al contrario, il paesaggio è pieno di un gran numero combinatorio di punti di sella in cui il gradiente è zero, e il le curve di superficie verso l'alto nella maggior parte delle dimensioni e le curve verso il basso nel resto. "

Una preoccupazione correlata riguarda l'ottimizzazione locale e globale (ad esempio, questa domanda sottolineata nei commenti). Anche se non faccio un apprendimento approfondito, nella mia esperienza il sovradimensionamento è sicuramente una preoccupazione valida. A mio avviso, i metodi di ottimizzazione globale sono più adatti a problemi di progettazione tecnica che non dipendono fortemente da dati "naturali". Nei problemi di assimilazione dei dati, eventuali minimi globali attuali potrebbero facilmente cambiare con l'aggiunta di nuovi dati (avvertenza: la mia esperienza è concentrata nei problemi di geoscienza, in cui i dati sono generalmente "scarsi" rispetto alla capacità del modello).

Una prospettiva interessante è forse

O. Bousquet & L. Bottou (2008) I compromessi dell'apprendimento su larga scala. NIPS.

che fornisce argomenti semi-teorici sul perché e quando l'ottimizzazione approssimativa può essere preferibile nella pratica.

Nota finale (meta-ottimizzazione): mentre le tecniche basate sul gradiente sembrano essere dominanti per le reti di addestramento, potrebbe esserci un ruolo per il DFO nelle attività di meta-ottimizzazione associate.

Un esempio potrebbe essere la sintonizzazione di iperparametri. (È interessante notare che gli ottimizzatori DFO basati su modelli di successo di Rios & Sahinidis potrebbero essere visti come essenzialmente risolvendo una sequenza di problemi di progettazione di esperimenti / superficie di risposta .)

Un altro esempio potrebbe essere la progettazione di architetture, in termini di impostazione dei livelli (ad esempio numero, tipo, sequenza, nodi / livello). In questo contesto di ottimizzazione discreta, gli algoritmi in stile genetico possono essere più appropriati. Si noti che qui sto pensando al caso in cui la connettività è determinata in modo implicito da questi fattori (ad esempio livelli completamente connessi, livelli convoluzionali, ecc.). In altre parole, la connettività è esplicitamente ottimizzata per meta. (La forza della connessione cadrebbe sotto allenamento, dove ad esempio la scarsità potrebbe essere promossa dalla regolarizzazione di e / o dalle attivazioni ReLU ... queste scelte potrebbero essere comunque meta-ottimizzate.)O[N2]notL1


1
La "recensione" che citi proviene dai principali sostenitori delle reti neurali; Metterei in dubbio l'affermazione sui minimi locali - una nota critica teorica delle NN è precisamente che qualsiasi modello complesso non può essere ottimizzato dalla discesa del gradiente perché rimarrà bloccato nei minimi locali. Non è chiaro se sono solo i successi di nns che possono essere risolti con lo sfondo e non si sente parlare dei fallimenti.
seanv507,

2
@ GeoMatt22 La divergenza contrastiva è un'approssimazione speciale del gradiente di una classe speciale di modelli, cui rientrano gli RBM. Va notato che gli RBM sono modelli probabilistici che implicano un certo tipo di distribuzione, per i quali il gradiente della stima della massima verosimiglianza è intrattabile. Le reti neurali sono modelli computazionali, che possono essere utilizzati senza alcun punto di partenza probabilistico, ad esempio ottimizzando una perdita di cerniera. Per farla breve, il CD non è un mezzo generale per ottimizzare le reti neurali.
Bayerj,

2
@ seanv507 Sebbene le affermazioni siano state avanzate dai principali sostenitori, ci sono articoli sottoposti a peer review dalle principali conferenze di machine learning che valutano rigorosamente tali affermazioni, ad esempio arxiv.org/abs/1406.2572 . Ormai, tale affermazione è ampiamente accettata nella più ampia comunità ML, principalmente a causa dei suoi argomenti teorici superiori e prove empiriche. Non penso che una discussione ad hominem sia adeguata qui.
Bayerj,

1
Sono d'accordo che manca la teoria DL. Devi ancora riconoscere che articoli come questo lo stanno facendo avanzare. Se ritieni che l'articolo stia affermando risultati errati e le conclusioni (come "i minimi locali sono meno un problema dei punti di sella") non sono valide, devi fare di meglio che dichiarare un altro attacco ad hominem, questa volta mirato al Comunità ML nel suo complesso.
Bayerj,

1
Lavori recenti mostrano che con l'inizializzazione casuale, la discesa del gradiente converge in un minimo locale (anziché in un punto di sella). Articolo qui: arxiv.org/abs/1602.04915 e post di blog qui: offconvex.org/2016/03/24/saddles-again D'altra parte, c'è un'ipotesi (meno) recente che nelle reti neurali di grandi dimensioni, i minimi locali sono circa quanto il globale, discusso qui: stats.stackexchange.com/questions/203288/…
David R

12

Esistono tutti i tipi di algoritmi di ricerca locale che è possibile utilizzare, la backpropagation si è appena dimostrata la più efficiente per le attività più complesse in generale ; ci sono circostanze in cui altre ricerche locali sono migliori.

Potresti usare l'arrampicata in salita casuale su una rete neurale per trovare rapidamente una soluzione ok, ma non sarebbe possibile trovare una soluzione quasi ottimale.

Wikipedia (lo so, non la più grande fonte, ma ancora) dice

Per problemi in cui trovare l'esatto ottimale globale è meno importante che trovare un ottimale locale accettabile in un determinato periodo di tempo, la ricottura simulata può essere preferibile a alternative come la discesa del gradiente.

fonte

Per quanto riguarda gli algoritmi genetici, vedrei Backpropagation vs Genetic Algorithm for Neural Network training

Il caso principale che farei per il backprop è che è molto usato e ha avuto molti miglioramenti . Queste immagini mostrano davvero alcuni degli incredibili progressi nella backpropagazione della vaniglia.

Non penserei al backprop come a un algoritmo, ma a una classe di algoritmi.

Vorrei anche aggiungere che per le reti neurali, i parametri 10k sono piccoli fagioli. Un'altra ricerca funzionerebbe alla grande, ma su una rete profonda con milioni di parametri, è quasi pratica.


12

Bene, le reti neurali originali, prima della rivoluzione della backpropagation negli anni '70, erano "addestrate" a mano. :)

Detto ciò:

Esiste una "scuola" di machine learning chiamata machine di apprendimento estremo che non utilizza la backpropagation.

Quello che fanno è creare una rete neurale con molti, molti, molti nodi - con pesi casuali - e quindi allenare l'ultimo strato usando i minimi quadrati (come una regressione lineare). Successivamente eliminano la rete neurale o applicano la regolarizzazione nell'ultimo passaggio (come il lazo) per evitare un eccesso di adattamento. Ho visto questo applicato alle reti neurali con un solo livello nascosto. Non c'è allenamento, quindi è super veloce. Ho fatto alcuni test e sorprendentemente, queste reti neurali "addestrate" in questo modo sono abbastanza precise.

Molte persone, almeno quelle con cui lavoro, trattano questa "scuola" di machine learning con derisione e sono un gruppo emarginato con le loro conferenze e così via, ma in realtà penso che sia un po 'ingenuo.


Un altro punto: all'interno della backpropagation, ci sono alternative che sono raramente menzionate come backproagation resiliente , che sono implementate in R nel neuralnetpacchetto, che usano solo l'entità della derivata. L'algoritmo è fatto di condizioni if-else invece di algebra lineare. Hanno alcuni vantaggi rispetto alla tradizionale backpropagation, vale a dire che non è necessario normalizzare i dati perché non soffrono del problema del gradiente evanescente .


Cab fai lo spiel (quasi o tutti) nel tuo quarto paragrafo, e poi usi il risultato come punto di partenza per un'ottimizzazione basata su derivati ​​per "perfezionarlo".
Mark L. Stone,

1
@ MarkL.Stone Non conosco nessuno che abbia fatto backpropagation applicando prima una regressione lineare a quest'ultimo strato. Sembra interessante però.
Ricardo Cruz,

1
Per quanto ne so, la controversia relativa agli ELM è dovuta principalmente agli aspetti etici, non all'implementazione. Schmidt et al. Avevano già toccato l'argomento nel 1992, con la loro rete Feedforward con pesi casuali.
Firebug,

3

È possibile utilizzare praticamente qualsiasi algoritmo di ottimizzazione numerica per ottimizzare i pesi di una rete neurale. Puoi anche utilizzare algoritmi misti di ottimizzazione continua-discreta per ottimizzare non solo i pesi, ma il layout stesso (numero di strati, numero di neuroni in ogni strato, persino tipo di neurone). Tuttavia non esiste un algoritmo di ottimizzazione che non soffra in qualche modo della "maledizione della dimensionalità" e delle ottimas locali


3

È inoltre possibile utilizzare un'altra rete per consigliare come aggiornare i parametri.

Esistono le interfacce neurali disaccoppiate (DNI) di Google Deepmind. Invece di utilizzare la backpropagation, utilizza un altro set di reti neurali per prevedere come aggiornare i parametri, che consente l'aggiornamento dei parametri parallelo e asincrono.

Il documento mostra che DNI aumenta la velocità di addestramento e la capacità del modello di RNN e fornisce risultati comparabili sia per RNN che per FFNN su varie attività.


L'articolo ha anche elencato e confrontato molti altri metodi di non backpropagation

Il nostro modello di gradiente sintetico è analogo a una funzione di valore utilizzata per la salita del gradiente [2] o a una funzione di valore utilizzata per il bootstrap. La maggior parte delle altre opere che mirano a rimuovere la backpropagation lo fanno con l'obiettivo di eseguire assegnazioni di credito biologicamente plausibili, ma ciò non elimina il blocco degli aggiornamenti tra i livelli. Ad esempio, la propagazione del bersaglio [3, 15] elimina la dipendenza dal passaggio dei gradienti tra i livelli, generando invece attivazioni del bersaglio che dovrebbero essere adattate. Tuttavia, questi target devono ancora essere generati in sequenza, la propagazione all'indietro attraverso la rete e i layer sono quindi ancora aggiornati e bloccati all'indietro. Altri algoritmi rimuovono il blocco all'indietro consentendo la trasmissione di perdite o ricompense direttamente su ciascun livello, ad esempio REINFORCE [21] (considerando che tutte le attivazioni sono azioni),1e Policy Gradient Coagent Networks [20] - ma rimangono ancora bloccati per l'aggiornamento poiché richiedono che i premi vengano generati da un output (o da un critico globale). Sebbene l'apprendimento ricorrente in tempo reale [22] o approssimazioni come [17] possano sembrare un modo promettente per rimuovere il blocco degli aggiornamenti, questi metodi richiedono il mantenimento del gradiente completo (o approssimativo) dello stato corrente rispetto ai parametri. Questo non è intrinsecamente scalabile e richiede anche che l'ottimizzatore abbia una conoscenza globale dello stato della rete. Al contrario, inquadrando l'interazione tra i livelli come un problema di comunicazione locale con DNI, eliminiamo la necessità di una conoscenza globale del sistema di apprendimento. Altre opere come [4, 19] consentono l'allenamento di strati in parallelo senza backpropagation,


2

Finché si tratta di una domanda della comunità, ho pensato di aggiungere un'altra risposta. "Back Propagation" è semplicemente l'algoritmo di discesa gradiente. Implica l'utilizzo solo della prima derivata della funzione per la quale si sta cercando di trovare i minimi o i massimi locali. Esiste un altro metodo chiamato metodo di Newton o Newton-Raphson che prevede il calcolo dell'Assia e quindi utilizza secondi derivati. Può avere successo nei casi in cui la discesa del gradiente fallisce. Mi è stato detto da altri più esperti di me, e sì, questo è un appello di seconda mano all'autorità, che non viene utilizzato nelle reti neurali perché il calcolo di tutti i derivati ​​secondari è troppo costoso in termini di calcolo.

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.