Perché l'algoritmo di discesa "Saddle-Freeton Newton" non viene utilizzato nella pratica?


13

Di recente ho letto un articolo di Yann Dauphin et al. Identificazione e attacco del problema del punto di sella nell'ottimizzazione non convessa ad alta dimensione , in cui introducono un interessante algoritmo di discesa chiamato Saddle-Free Newton , che sembra essere esattamente su misura per l'ottimizzazione della rete neurale e non dovrebbe soffrire di rimanere bloccato nei punti di sella come i metodi del primo ordine come SGD vaniglia.

Il documento risale al 2014, quindi non è niente di nuovo, tuttavia, non ho visto che viene utilizzato "in the wild". Perché questo metodo non viene utilizzato? Il calcolo dell'Assia è troppo proibitivo per problemi / reti di dimensioni reali? Esiste anche qualche implementazione open source di questo algoritmo, forse da utilizzare con alcuni dei principali framework di deep learning?

Aggiornamento febbraio 2019: ora è disponibile un'implementazione: https://github.com/dave-fernandes/SaddleFreeOptimizer )


Bella domanda, non sono riuscito a trovare nulla. Tuttavia, lo pseudocodice è molto semplice, quindi puoi provarlo tu stesso, nel qual caso ci sono alcuni utili dettagli di implementazione in una delle tesi di dottorato degli autori (pagina 103, papyrus.bib.umontreal.ca/xmlui/bitstream/handle / 1866/13710 /… )
galoosh33

1
Ho trovato riferimento a questo stesso articolo in un post sul blog di Uber Deep-Neuroevolution. Link: eng.uber.com/deep-neuroevolution Potresti chiedere all'autore se ha implementazioni online / condivise tramite GitHub.
Cantren,

ecco un'implementazione per TensorFlow: github.com/dave-fernandes/SaddleFreeOptimizer
Dave F

Se dovessi indovinare, la mia ipotesi sarebbe che l'informatica + l'inversione dell'Assia sia poco pratica quando il tuo modello ha milioni di parametri.
Sycorax dice di reintegrare Monica il

1
Puoi affinare la tua domanda da "c'è un'implementazione"? Ciò sembra permettere, sì / no risposte e / o suona come una richiesta di software (che è fuori tema qui). La tua domanda potrebbe essere elaborata in qualcosa del tipo, "quali difficoltà spiegano perché non sembrano esserci state più implementazioni"?
gung - Ripristina Monica

Risposte:


2

Una migliore ottimizzazione non significa necessariamente un modello migliore. Alla fine, ciò a cui teniamo è quanto bene generalizza il modello e non necessariamente quanto è buono il rendimento sul set di allenamento. Le tecniche di ottimizzazione più sofisticate di solito funzionano meglio e convergono più velocemente sul set di allenamento, ma non sempre generalizzano così come gli algoritmi di base. Ad esempio, questo documento mostra che SGD può generalizzare meglio dell'ottimizzatore ADAM. Questo può succedere anche con alcuni algoritmi di ottimizzazione del secondo ordine.


[Modifica] Rimosso il primo punto in quanto non applicabile qui. Grazie a bayerj per averlo segnalato.


1
Anche se concordo con il secondo punto, il primo non è valido qui. Gli autori propongono di eseguire l'ottimizzazione solo nel sottospazio di Krylov, che non richiede complessità quadratica.
Bayerj,
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.