Perché il metodo di Newton non è ampiamente utilizzato nell'apprendimento automatico?


132

Questo è qualcosa che mi ha infastidito per un po 'e non ho trovato risposte soddisfacenti online, quindi ecco qui:

Dopo aver esaminato una serie di lezioni sull'ottimizzazione convessa, il metodo di Newton sembra essere un algoritmo di gran lunga superiore alla discesa del gradiente per trovare soluzioni ottimali a livello globale, poiché il metodo di Newton può fornire una garanzia per la sua soluzione, è invariante affine e soprattutto converge in molti meno passaggi. Perché gli algoritmi di ottimizzazione del secondo ordine, come il metodo di Newton, non sono così ampiamente utilizzati come la discendenza stocastica del gradiente nei problemi di apprendimento automatico?


24
Per le reti neurali, la sezione "8.6 Metodi approssimativi del secondo ordine" di deeplearningbook.org offre una buona panoramica. In sintesi "Al di là delle sfide create da alcune caratteristiche della funzione obiettivo, come i punti di sella, l'applicazione del metodo di Newton per l'addestramento di grandi reti neurali è limitata dal significativo onere computazionale che impone". Esistono alternative che tentano di ottenere alcuni dei vantaggi del metodo di Newton mentre fanno un passo avanti agli ostacoli computazionali, ma hanno i loro problemi.
Franck Dernoncourt,

1
vedere questa domanda e commenti correlati, stats.stackexchange.com/questions/232305/…
Haitao Du

1
Si noti che gli altri commenti hanno una più ampia applicabilità all'apprendimento automatico oltre al "deep learning". Tuttavia, mentre tutti i problemi di ML possono essere tendenzialmente "big data", non tutti i problemi di ML sono necessariamente "grandi caratteristiche" (cioè molti parametri da mettere a punto), anche se l'apprendimento approfondito lo è sempre.
GeoMatt22,

1
Vale la pena notare che nell'apprendimento automatico al di fuori del deep learning, L-BFGS (che, approssimativamente, si avvicina al metodo di Newton) è un algoritmo di ottimizzazione abbastanza comune.
Dougal,

2
Il metodo di Newton presuppone la convessità, i moderni problemi di ML (reti neutre) non sono probabilmente da nessuna parte vicini al convesso, sebbene sia certamente un'area di ricerca aperta lì. Quindi il metodo di Newton è probabilmente uno stimatore tanto cattivo quanto lineare ovunque ma vicino al punto di calcolo. Probabilmente otterrai molto poco per un aumento quadratico del calcolo. Detto questo, in una recente conferenza a Berkeley un presentatore ha continuato a mostrare progressi nell'uso dei metodi del 2 ° ordine, quindi non è affatto morto.
David Parks,

Risposte:


95

La discesa gradiente massimizza una funzione usando la conoscenza del suo derivato. Il metodo di Newton, un algoritmo di ricerca delle radici, massimizza una funzione usando la conoscenza del suo secondo derivato. Ciò può essere più veloce quando la seconda derivata è nota e facile da calcolare (l'algoritmo Newton-Raphson viene utilizzato nella regressione logistica). Tuttavia, l'espressione analitica per il secondo derivato è spesso complicata o intrattabile, che richiede molto calcolo. Metodi numerici per calcolare la derivata seconda richiedono anche un sacco di computazione - se sono necessari valori per calcolare la derivata prima, N 2 sono necessari per la derivata seconda.NN2


5
Vale la pena notare che (le cose basate su) il metodo Gauss-Newton sono probabilmente più comuni. Questa è una specializzazione di Newton ai minimi quadrati non lineari.
GeoMatt22,

4
Non definirei Gauss-Newton una specializzazione di Newton in minimi quadrati non lineari. La definirei un'approssimazione bastardata di Newton per i minimi quadrati non lineari, che utilizza un'approssimazione dell'Assia più imprecisa, più grandi sono i residui nelle equazioni adattate e, di conseguenza, più l'argomento è dall'ottimalità.
Mark L. Stone,

1
@ MarkL.Stone, stavo cercando di non entrare nei tecnicismi :) È vero che i metodi in stile Gauss-Newton cercano di "falsificare" il 2 ° ordine con solo le informazioni del 1 ° ordine. Personalmente non ho mai usato i metodi di Newton per l'ottimizzazione, solo i metodi di Gauss-Newton (o LM, o simili UKF) o DFO-SQP (ad es. BOBYQA ). "L'ottimalità" è una domanda delicata che direi ... per un problema di ML, invece di dire un problema di ottimizzazione del progetto di ingegneria, l'affidabilità / informatività di un "Assia locale" può essere dubbia. Forse DFO-SQP non locale è ~ "Newton stocastico"? (es. "online")
GeoMatt22

1
Ripensandoci, gli approcci DFO-SQP tendono ad essere non locali nello spazio dei parametri , piuttosto che in lotti di dati. L' UKF potrebbe essere il più vicino al sapore di "Newton stocastico" in quanto è in linea con memoria limitata ... ma assume effettivamente un hessiano definito positivo (cioè circa gaussiano).
GeoMatt22,

1
In realtà questa è una ragione fuorviante poiché esistono metodi del secondo ordine come CG che non richiedono il calcolo dell'assia. k iterazioni di CG costeranno solo kN. È corretto che CG corrisponderebbe teoricamente a Newton solo in k = N, ma in realtà non sono necessarie così tante iterazioni.
user25322

40

Più persone dovrebbero usare il metodo di Newton nell'apprendimento automatico *. Lo dico come qualcuno con un background nell'ottimizzazione numerica, che si è dilettato nell'apprendimento automatico negli ultimi due anni.

Gli svantaggi delle risposte qui (e persino in letteratura) non sono un problema se si utilizza correttamente il metodo di Newton. Inoltre, gli svantaggi che contano rallentano anche la discesa del gradiente della stessa quantità o più, ma attraverso meccanismi meno ovvi.

  • L'uso di lineearch con le condizioni di Wolfe o l'utilizzo o la fiducia delle regioni impedisce la convergenza ai punti di sella. Anche una corretta implementazione della discesa del gradiente dovrebbe fare questo. Il documento a cui fa riferimento la risposta di Cam.Davidson.Pilon evidenzia problemi con il "metodo di Newton" in presenza di punti di sella, ma la correzione che sostengono è anche un metodo di Newton.

  • L'uso del metodo di Newton non richiede la costruzione dell'intera (densa) Assia; puoi applicare l'inverso dell'Assia a un vettore con metodi iterativi che usano solo prodotti a matrice vettoriale (ad esempio, metodi di Krylov come il gradiente coniugato). Vedere, ad esempio, il metodo della regione di fiducia CG-Steihaug.

  • È possibile calcolare in modo efficiente i prodotti matrice-vettore hessiana risolvendo due equazioni aggiuntive di ordine superiore della stessa forma dell'equazione aggiunta già utilizzata per calcolare il gradiente (ad esempio, il lavoro di due fasi di backpropagation nell'allenamento della rete neurale).

  • Il mal condizionamento rallenta la convergenza dei solutori lineari iterativi, ma rallenta ugualmente o peggio la discesa del gradiente. L'uso del metodo di Newton invece della discesa del gradiente sposta la difficoltà dallo stadio di ottimizzazione non lineare (dove non si può fare molto per migliorare la situazione) allo stadio di algebra lineare (dove possiamo attaccarlo con l'intero arsenale di tecniche precondizionate di algebra lineare numerica).

  • Inoltre, il calcolo si sposta da "molti molti passaggi economici" a "alcuni passaggi costosi", aprendo maggiori opportunità di parallelismo a livello di sottofase (algebra lineare).

Per informazioni di base su questi concetti, raccomando il libro "Ottimizzazione numerica" di Nocedal e Wright.

* Naturalmente, il metodo di Newton non ti aiuterà con L1 o altre simili funzioni di penalità di sensing / sparsità compresse simili, poiché mancano della fluidità richiesta.


2
Penso che siamo in violento accordo l'uno con l'altro, non con tutti gli altri.
Mark L. Stone,

1
È come confrontare se il Regno Unito o gli Stati Uniti producono migliori matematici di ricerca confrontando le capacità matematiche degli abbandoni delle scuole superiori di 26 anni tossicodipendenti, piuttosto che confrontando il livello più alto di studenti laureati in matematica che escono dalle migliori scuole di ogni paese. Il documento è firmato, sigillato e consegnato, nessuno, e intendo che nessuno lo sta cambiando o ritirando ora. Incroyable.
Mark L. Stone,

3
@ MarkL.Stone Sembra che ci sia stata una conversazione qui ed è stata eliminata mentre ero via. Ad ogni modo, penso che tu abbia ragione sul fatto che siamo d'accordo tra noi e nessun altro. Immagino che ci si debba aspettare in base al nostro background rispetto alle altre persone qui. Come probabilmente ti aspetti, non penso molto al documento collegato. D'altra parte, penso che il metodo di Newton, molteplice di Riemann , in cui si scatta una traiettoria geodetica in una direzione di ricerca di Newton, sia una tecnica con molte promesse per problemi molto difficili.
Nick Alger,

2
Come gestiresti un grande set di allenamento? Se hai ad esempio 1 milione di campioni di addestramento, per valutare l'attuale obiettivo di ottimizzazione devi testare 1 milione di campioni. E devi farlo più volte durante una ricerca di linea. Quindi, dopo aver completato 1 passaggio di Newton, Discesa gradiente stocastica avrà effettuato alcuni milioni di aggiornamenti.
Nikie

2
Nick e @ MarkL.Stone: Stai parlando essenzialmente di questo approccio ? Questo è qualcosa che è stato brevemente popolare nell'apprendimento approfondito, specialmente per le reti ricorrenti, ma da allora non ho favorito perché suppongo che non funzionasse empiricamente molto meglio dei metodi di gradiente adattivo. Se stessero solo facendo qualcosa di sbagliato, e risolvi qualunque cosa sia e lo mostri in genere supera l'attuale variante SGD standard Adam, potresti avere un grande impatto: il documento Adam ha avuto 1345 citazioni in due anni ....
Dougal

33

Di recente l'ho imparato da solo: il problema è la proliferazione di punti di sella nello spazio ad alta dimensione, a cui i metodi di Newton vogliono convergere. Vedi questo articolo: Identificazione e attacco del problema del punto di sella nell'ottimizzazione non convessa ad alta dimensione .

In effetti il ​​rapporto tra il numero di punti di sella e minimi locali aumenta esponenzialmente con la dimensionalità N.

Mentre la dinamica della discesa del gradiente viene respinta da un punto a sella per ridurre l'errore seguendo le direzioni di curvatura negativa, ... il metodo Newton non tratta i punti a sella in modo appropriato; come spiegato di seguito, i punti di sella diventano invece attraenti sotto la dinamica di Newton.


3
Potresti aggiungere qualche spiegazione al perché sia ​​così? In teoria, il metodo di Newton preforma una discesa gradiente ponderata con pesi "ottimali" per ciascuno degli autovettori.
nbubis,

4
Ciò che quell'articolo dice sui metodi di Newton "voler" convergere in punti di sella è vero solo per l'implementazione di immondizia del metodo di Newton.
Mark L. Stone il

Il documento ricompare il problema in termini di autovalori e autovettori e lo utilizza per mostrare che la discesa del gradiente si allontana da un punto di sella: si sposta verso il punto di sella nella direzione di vettori elettronici negativi, ma si allontana nella direzione di vettori elettronici positivi, quindi alla fine lascia il punto di sella. Newton, d'altra parte, non ha tale garanzia.
Elizabeth Santorella,

Il nuovo algoritmo per cui sostengono in questo documento è (una variante del) metodo di Newton. è sostanzialmente il metodo di Newton per le direzioni di curvatura positiva e il metodo di Newton negativo per le direzioni di curvatura negativa.
Nick Alger,

26

Una combinazione di due motivi:

  • Il metodo Newton attira i punti di sella;
  • i punti di sella sono comuni nell'apprendimento automatico, o di fatto in qualsiasi ottimizzazione multivariabile.

f=x2y2
inserisci qui la descrizione dell'immagine

xn+1=xn[Hf(xn)]1f(xn)

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

H=[2002]

[Hf]1=[1/2001/2]

f=[2x2y]

[xy]n+1=[xy]n[1/2001/2][2xn2yn]=[xy]n[xy]n=[00]

x=0,y=0 .

Al contrario, il metodo di discesa del gradiente non porterà al punto di sella. Il gradiente è zero nel punto della sella, ma un piccolo passo in avanti allontanerebbe l'ottimizzazione come puoi vedere dal gradiente sopra - il suo gradiente sulla variabile y è negativo.


1
Grazie a te ho davvero capito come funziona questo metodo dalla A alla Z, quindi grazie mille per questo chiaro esempio!
Greenoldman,

Quale sarebbe il punto preferito qui?
Ben

14

Hai fatto due domande: perché più persone non usano il metodo di Newton e perché così tante persone usano la discesa gradiente stocastica? Queste domande hanno risposte diverse, perché ci sono molti algoritmi che riducono l'onere computazionale del metodo di Newton ma spesso funzionano meglio di SGD.

HO(N2)NgO(N)H1gO(N3)calcolare. Quindi, mentre calcolare l'Assia è costoso, capovolgerlo o risolvere i minimi quadrati è spesso anche peggio. (Se si dispone di funzionalità sparse, gli asintotici sembrano migliori, ma anche altri metodi funzionano meglio, quindi la scarsità non rende Newton relativamente più attraente.)

Secondo, molti metodi, non solo la discesa gradiente, sono usati più spesso di Newton; sono spesso knockoff del metodo di Newton, nel senso che si avvicinano a un passo di Newton a un costo computazionale più basso per passo ma richiedono più iterazioni per convergere. Qualche esempio:

  • H1

  • O(N2)

  • Quando non si desidera affrontare affatto i derivati ​​secondari approssimativi, la discesa gradiente è allettante perché utilizza solo informazioni del primo ordine. La discesa gradiente sta approssimando implicitamente l'Assia inversa come il tasso di apprendimento moltiplicato per la matrice dell'identità. Personalmente, raramente uso la discesa del gradiente: L-BFGS è altrettanto facile da implementare, poiché richiede solo di specificare la funzione e il gradiente oggettivi; ha una migliore approssimazione inversa dell'Assia rispetto alla discesa del gradiente; e perché la discesa gradiente richiede l'ottimizzazione del tasso di apprendimento.

  • A volte hai un numero molto grande di osservazioni (punti dati), ma puoi imparare anche da un numero minore di osservazioni. In tal caso, è possibile utilizzare i "metodi batch", come la discesa gradiente stocastica, che scorre attraverso i sottoinsiemi delle osservazioni.


(+1) Vale la pena notare che L-BFGS è dello stesso ordine di complessità della discesa del gradiente rispetto al numero di parametri. Questo non è il caso di BFGS. Quindi non è solo la parte limitata della memoria di L-BFGS a renderlo attraente.
Cliff AB

12

La direzione di discesa del gradiente più economica da calcolare ed eseguire una ricerca di linea in quella direzione è una fonte più affidabile e costante di progresso verso un ottimale. In breve, la discesa in pendenza è relativamente affidabile.

Il metodo di Newton è relativamente costoso in quanto è necessario calcolare l'Assia alla prima iterazione. Quindi, ad ogni successiva iterazione, puoi ricalcolare completamente l'Assia (come nel metodo di Newton) o semplicemente "aggiornare" l'assia dell'iterazione precedente (in metodi quasi-Newton) che è più economica ma meno robusta.

Nel caso estremo di una funzione ben educata, in particolare di una funzione perfettamente quadratica, il metodo di Newton è il chiaro vincitore. Se è perfettamente quadratico, il metodo di Newton converge in un'unica iterazione.

Nel caso estremo opposto di una funzione molto mal condotta, la discesa del gradiente tenderà a vincere. Sceglierà una direzione di ricerca, cercherà in quella direzione e alla fine farà un passo piccolo ma produttivo. Al contrario, il metodo di Newton tenderà a fallire in questi casi, specialmente se si tenta di utilizzare le approssimazioni quasi-Newton.

Tra la discesa del gradiente e il metodo di Newton, ci sono metodi come l'algoritmo Levenberg-Marquardt (LMA), anche se ho visto i nomi un po 'confusi. L'essenziale è usare una ricerca più informata sulla pendenza quando le cose sono caotiche e confuse, quindi passare a una ricerca più informata sul metodo Newton quando le cose stanno diventando più lineari e affidabili.


3
Ragazzo, devi usare terribili implementazioni di Newton e Quasi-Newton. Se si utilizza uno con un'Assia definita non positiva, utilizzare le aree di fiducia o eseguire la ricerca della linea lungo una o più direzioni di curvatura negativa. In tal caso, sono PIÙ affidabili della discesa più ripida (ad es. Discesa a gradiente con ricerca della linea o regione di fiducia). In breve, la discesa gradiewnt è molto meno affidabile di un metodo Quasi-Newton correttamente implementato, che è meno affidabile di un metodo Newton correttamente implementato. I tempi di calcolo e i requisiti di memoria per iterazione sono tuttavia una questione diversa.
Mark L. Stone,

4
Penso che intendi la funzione perfettamente quadratica. Cioè, il metodo di Newton converge in una singola iterazione con una funzione quadratica dell'obiettivo, che ha un gradiente lineare.
Elizabeth Santorella,

1
@ElizabethSantorella: Sì, hai ragione! Ho aggiornato la risposta.
Nat

2
1/2xTx

1
Ho fatto il mio caso. se vuoi pensare alla discesa più ripida, la discesa a gradiente è meravigliosa, specialmente per le funzioni scarsamente educate, sono affari tuoi. Buttati fuori.
Mark L. Stone il

7

Hd=g

Il metodo di Newton funziona bene quando è vicino a una soluzione, o se l'Assia sta lentamente variando, ma ha bisogno di alcuni trucchi per affrontare la mancanza di convergenza e la mancanza di chiarezza.

Spesso si cerca un miglioramento, piuttosto che una soluzione esatta, nel qual caso il costo aggiuntivo dei metodi simili a Newton o Newton non è giustificato.

Esistono vari modi per migliorare quanto sopra come metrica variabile o metodi della regione di fiducia.

Come nota a margine, in molti problemi un problema chiave è il ridimensionamento e l'Assia fornisce eccellenti informazioni sul ridimensionamento, anche se a un costo. Se si può approssimare l'Assia, spesso può migliorare notevolmente le prestazioni. In una certa misura, il metodo di Newton fornisce il ridimensionamento "migliore" in quanto è invariante affine.


0

Ci sono molte difficoltà riguardo all'uso del metodo di Newton per la SGD, in particolare:

  • ha bisogno della matrice hessiana: come stimarla, ad esempio, da gradienti rumorosi con una precisione sufficiente a un costo ragionevole?

  • full Hessian è troppo costoso - piuttosto abbiamo bisogno di alcune sue restrizioni, ad esempio a un sottospazio (quale sottospazio?),

  • H1λ=0

  • Il metodo di Newton attira direttamente il punto di chiusura con gradiente zero ... che di solito è una sella qui. Come respingerli invece? Ad esempio , Newton senza selleria inverte le direzioni di curvatura negativa, ma richiede il controllo dei segni di autovalori,

  • sarebbe bene farlo online - invece di fare molti calcoli in un unico punto, prova a dividerlo in molti piccoli passi sfruttando più informazioni locali.

Possiamo passare dal 1 ° ordine al 2 ° ordine a piccoli passi, ad esempio aggiungendo un aggiornamento di sole 3 medie al metodo momentum, possiamo contemporaneamente MSE adattare la parabola nella sua direzione per una scelta più intelligente della dimensione del passo ... Modellazione del 2 ° ordine in un sottospazio di dimensioni ridotte può ancora utilizzare le restanti coordinate per la discesa gradiente simultanea.

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.