Perché usare la discesa gradiente con le reti neurali?


22
  1. Durante l'allenamento di una rete neurale mediante l'algoritmo di retro-propagazione, il metodo di discesa del gradiente viene utilizzato per determinare gli aggiornamenti del peso. La mia domanda è: anziché utilizzare il metodo di discesa gradiente per individuare lentamente il punto minimo rispetto a un determinato peso, perché non impostare semplicemente la derivata e trova il valore di pesowche minimizza l'errore?d(Error)dw=0w

  2. Inoltre, perché siamo sicuri che la funzione di errore nella retro-propagazione sarà minima? Non si scopre invece che la funzione di errore è un massimo? Esiste una proprietà specifica delle funzioni di compressione che garantisce che una rete con un numero qualsiasi di nodi nascosti con pesi e vettori di input arbitrari fornirà sempre una funzione di errore con alcuni minimi?


2
Tutti i titoli dei tappi non sono standard qui (per favore guardati intorno) e qui e altrove ampiamente deprecati come SHOUTING sgraditi.
Nick Cox,

@ Nick Cox mi scuso
Minaj,

È interessante vedere ogni volta che vengono utilizzate variabili nascoste o latenti nei modelli di Machine Learning, l'ottimizzazione (quasi?) Diventa sempre non lineare, non convessa e solo più difficile da ottimizzare.
Vladislavs Dovgalecs,

Risposte:


30
  1. Perché non possiamo. La superficie di ottimizzazione in funzione dei pesi w è non lineare e non esiste una soluzione in forma chiusa per d S ( w )S(w)w.dS(w)dw=0

  2. La discesa gradiente, per definizione, scende. Se si raggiunge un punto fermo dopo la discesa, deve essere un minimo (locale) o un punto di sella, ma mai un massimo locale.


Se la funzione fosse concava, il gradiente decente discenderebbe per sempre poiché l'unica via da percorrere è verso il basso. Stai dicendo che la superficie di errore è garantita per non essere concava? Inoltre, non mi è chiaro perché la derivata della funzione di errore non avrebbe una soluzione in forma chiusa. Non è l'errore del modulo dove K è una costante? Quella funzione sembra abbastanza differenziabile e l'espressione risultante è risolvibile analiticamente. Ti prego, aiutami a chiarire perché c'è qualcosa che chiaramente non riesco a vedere. K11+eΣwx
Minaj,

8
Ciò non può accadere, poiché tutte le funzioni di errore comunemente utilizzate hanno un minimo teorico rigoroso di 0. Gli errori non possono mai diventare negativi.
Marc Claesen,

2
Un'altra possibile interpretazione di 1. è "Questo è esattamente ciò che facciamo, l'equazione viene risolta usando la discesa del gradiente".
Matthew Drury,

1
c'è chiaramente una forma chiusa per il gradiente (è così che facciamo discesa gradiente in modo efficiente). Il problema non è una radice chiusa da gradiente = 0
seanv507

@ seanv507 è quello che volevo dire, scusami per la confusione. Ho modificato il mio post.
Marc Claesen,

10

Per quanto riguarda la risposta di Marc Claesen, credo che la discesa gradiente potrebbe fermarsi al massimo locale in situazioni in cui si inizializza al massimo locale o vi capita di finire lì a causa di sfortuna o di un parametro di frequenza non corretto. Il massimo locale avrebbe gradiente zero e l'algoritmo avrebbe pensato che fosse convergente. Questo è il motivo per cui eseguo spesso più iterazioni da diversi punti di partenza e tengo traccia dei valori lungo il percorso.


1
Ho modificato il tuo commento al preambolo, poiché sembra che tu stia già attirando alcuni voti! Benvenuti nel sito!
Matthew Drury,

Grazie! Non ero sicuro che si trattasse di un commento o di una risposta e non volevo che la mia prima risposta venisse ridotta all'oblio basandosi solo su questo.
Jared Becksfort,

6

Nei metodi di tipo Newton, ad ogni passo si risolve per unaversionelinearizzatao approssimativa del problema. Quindi il problema viene linearizzato sul nuovo punto e il processo si ripete fino alla convergenza. Alcune persone lo hanno fatto per le reti neurali, ma presenta i seguenti svantaggi,d(error)dw=0

  • È necessario trattare con i derivati ​​secondari (i prodotti di iuta, in particolare i vettori di iuta).
  • Il "passo di risoluzione" è molto costoso dal punto di vista computazionale: nel tempo necessario per eseguire una risoluzione si sarebbero potute eseguire molte iterazioni di discesa gradiente.

Se si utilizza un metodo Krylov per la risoluzione dell'Assia e non si utilizza un buon precondizionatore per l'Assia, i costi si bilanciano più o meno - le iterazioni di Newton richiedono molto più tempo ma fanno più progressi, in modo che il tempo totale sia approssimativamente uguale o più lento della discesa gradiente. D'altra parte, se uno ha un buon precondizionatore dell'Assia, il metodo di Newton vince alla grande.

Detto questo, i metodi Newton-Krylov della regione fiduciaria sono il gold standard nell'ottimizzazione moderna su larga scala, e mi aspetterei solo che il loro uso aumentasse nelle reti neurali nei prossimi anni poiché le persone vogliono risolvere problemi sempre più grandi. (e anche quando più persone nell'ottimizzazione numerica si interessano all'apprendimento automatico)


Penso che ti sbagli. Le persone usano le reti dagli anni '90 e conoscono bene i metodi del secondo ordine. il problema è precisamente che le reti hanno successo quando ci sono molti dati, che quindi supportano molti parametri, nel qual caso i vincoli di tempo e memoria dei metodi del secondo ordine sono inefficaci. vedi ad esempio leon.bottou.org/publications/pdf/compstat-2010.pdf
seanv507

@ seanv507 Non proprio. La discussione sui metodi del secondo ordine in quel documento ha molti difetti, in quanto presumono che si debbano costruire e invertire l'intero denso Assia per usare i metodi del secondo ordine. Semplicemente non è così che si fa nella moderna ottimizzazione numerica su larga scala. Nei moderni metodi del secondo ordine si calcola l'azione dell'Assia sui vettori risolvendo i problemi aggiunti e li utilizza all'interno di un solutore iterativo (Krylov). Generalmente la prima iterazione interna restituisce la direzione del gradiente e le iterazioni successive la migliorano.
Nick Alger,

Anche se non sono un fan particolare di quel documento, non penso sia vero. In precedenza ha discusso / implementato approssimazioni diagonali e di rango ridotto di iuta. E che dire della moltiplicazione esatta e veloce del 1994 di pearlmutter per la tela di iuta?
seanv507,

Destra. Una volta che hai applicazioni veloci dell'Assia (sia attraverso Pearlmutter o che cosa hai), puoi fare inesatte soluzioni dell'Assia con metodi di Krylov come il gradiente coniugato. In questo modo, si trasferiscono efficacemente le difficoltà di mal condizionamento dall'ottimizzatore iterativo non lineare, al solutore iterativo algebrico lineare in cui si hanno molte macchine e tecniche di precondizionamento disponibili per affrontare il problema. Un buon riferimento è la sezione sulla regione di fiducia CG-Steihaug nel classico "Ottimizzazione numerica" ​​di Nocedal e Wright.
Nick Alger,

Il mio punto è che questa moltiplicazione per gradienti di iuta e coniugato era nota nella comunità delle reti dal 1994. Quindi credo che ci sia sicuramente un motivo per cui SGD viene utilizzato piuttosto che metodi del secondo ordine (e vorrei certamente una chiara risoluzione del perché questo è )
seanv507,
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.