Quelles méthodes d'optimisation fonctionnent le mieux pour les LSTM?

20

J'ai utilisé theeano pour expérimenter avec des LSTM et je me demandais quelles méthodes d'optimisation (SGD, Adagrad, Adadelta, RMSprop, Adam, etc.) fonctionnent le mieux pour les LSTM? Existe-t-il des documents de recherche sur ce sujet?

De plus, la réponse dépend-elle du type d'application pour laquelle j'utilise le LSTM? Si c'est le cas, j'utilise des LSTM pour la classification de texte (où le texte est d'abord converti en vecteurs de mots).

Enfin, les réponses seraient-elles identiques ou différentes pour les RNN? Tous les pointeurs vers des documents de recherche ou des informations personnelles seraient très appréciés!

Les LSTM semblent être assez puissants et je souhaite en savoir plus sur la meilleure façon de les utiliser.

Cidre
la source

Réponses:

7

Ironiquement, les meilleurs optimiseurs pour les LSTM sont eux-mêmes des LSTM: https://arxiv.org/abs/1606.04474 Apprendre à apprendre par descente de gradient par descente de gradient.

L'idée de base est d'utiliser un réseau de neurones (spécifiquement ici un réseau LSTM) pour co-apprendre et enseigner les gradients du réseau d'origine. C'est ce qu'on appelle le méta-apprentissage.

Cette méthode, bien que proposée par Juergen Schmidhuber en 2000, ne s'est révélée que récemment plus performante que les autres optimiseurs dans la formation RNN. (voir le papier original pour un joli graphique)

Anona112
la source
Pouvez-vous développer en nous disant ce que dit le lien?
mdewey
modifié pour votre plaisir. Étant donné que la question d'origine était "Quelles méthodes d'optimisation fonctionnent le mieux pour les LSTM?" pas "Comment fonctionnent les meilleures méthodes d'optimisation pour les LSTM" Je reste là.
Anona112
4

Il n'y a en général aucune preuve claire quant à la méthode d'optimisation à utiliser dans quel scénario. Il y a eu une analyse du comportement de ces méthodes dans différents scénarios, mais rien n'est concluant. Si vous voulez plonger dans ce genre de choses, je vous recommande: http://papers.nips.cc/paper/5486-identifying-and-attacking-the-saddle-point-problem-in-high-dimensional-non-convex- optimisation.pdf

Afin de vous fournir au moins une réponse, je dirais que souvent la configuration de votre routine d'optimisation est plus importante que la routine elle-même.

De plus, je vous recommande de regarder dans les papiers pour voir quelles techniques sont utilisées. Alex Graves, par exemple, a pu utiliser RMSprop dans la plupart de ses publications sur la génération de séquences.

Sjoerd
la source