Quand utiliser GRU sur LSTM?

95

La principale différence entre une GRU et un LSTM réside dans le fait qu’une GRU a deux portes (portes de réinitialisation et de mise à jour ) alors qu’un LSTM a trois portes (à savoir les portes d’ entrée , de sortie et d’ oubli ).

Pourquoi utilisons-nous GRU alors que nous avons clairement plus de contrôle sur le réseau via le modèle LSTM (car nous avons trois portes)? Dans quel scénario le GRU est préféré au LSTM?

Sayali Sonawane
la source
1
Un GRU est légèrement moins complexe, mais est à peu près aussi bon qu'un LSTM en termes de performances. Une implémentation dans TensorFlow se trouve ici: data-blogger.com/2017/08/27/gru-implementation-tensorflow .
www.data-blogger.com

Réponses:

64

La GRU est liée au LSTM car les deux utilisent différentes manières de gating pour éviter le problème de gradient disparaissant. Voici quelques points à propos de GRU vs LSTM-

  • La GRU contrôle le flux d'informations comme l'unité LSTM, mais sans avoir à utiliser une unité de mémoire . Il expose simplement le contenu caché complet sans aucun contrôle.
  • GRU est relativement nouveau et, de mon point de vue, les performances sont comparables à celles de LSTM, mais leur calcul est plus efficace ( structure moins complexe, comme indiqué ). Donc, nous voyons qu'il est utilisé de plus en plus.

Pour une description détaillée, vous pouvez explorer ce document de recherche - Arxiv.org . Le papier explique tout cela brillamment.

De plus, vous pouvez également explorer ces blogs pour une meilleure idée-

J'espère que ça aide!

Abhishek Jaiswal
la source
1
En plus de votre réponse, vous trouverez un bon article évaluant la performance entre GRU et LSTM et leurs diverses permutations "Une exploration empirique des architectures de réseau récurrentes" de Google
mineraux
38

* Pour compléter déjà les bonnes réponses ci-dessus.

  • D'après mon expérience, les GRU s'entraînent plus rapidement et fonctionnent mieux que les LSTM avec moins de données de formation si vous modélisez le langage (vous n'êtes pas sûr des autres tâches).

  • Les GRU sont plus simples et donc plus faciles à modifier, par exemple en ajoutant de nouvelles portes en cas de saisie supplémentaire sur le réseau. C'est juste moins de code en général.

  • Les LSTM devraient en théorie mémoriser des séquences plus longues que les GRU et les surpasser dans les tâches nécessitant la modélisation de relations à longue distance.

* Quelques articles supplémentaires analysant les GRU et les LSTM.

minéraux
la source
9

Cette réponse repose en fait sur le jeu de données et le cas d'utilisation. Il est difficile de dire avec certitude lequel est le meilleur.

  • GRU expose la mémoire complète contrairement à LSTM, ainsi les applications qui agissent comme un avantage pourraient être utiles. En outre, en ajoutant pourquoi utiliser GRU, c’est plus facile en calcul que LSTM puisqu’il n’a que 2 portes et que ses performances sont équivalentes à celles de LSTM, pourquoi pas?
  • Cet article démontre très bien avec des graphiques la supériorité des réseaux gated sur un simple RNN, mais mentionne clairement qu'il ne peut en conclure lequel des deux est le meilleur. Donc, si vous ne savez pas lequel utiliser comme modèle, je vous suggérerais de former les deux et de prendre le meilleur d'eux-mêmes.
Hima Varsha
la source
8

Unité complète GRU

c~t=tanh(Wc[Grct1,xt]+bc)

Gu=σ(Wu[ct1,xt]+bu)

Gr=σ(Wr[ct1,xt]+br)

ct=Guc~t+(1Gu)ct1

at=ct

Unité LSTM

c~t=tanh(Wc[at1,xt]+bc)

Gu=σ(Wu[at1,xt]+bu)

Gf=σ(Wf[at1,xt]+bf)

Go=σ(Wo[at1,xt]+bo)

ct=Guc~t+Gfct1

at=Gotanh(ct)

Comme on peut le voir dans les équations, les LSTM ont une porte de mise à jour et une porte d’oubli distinctes. Cela rend clairement les LSTM plus sophistiqués mais en même temps plus complexes. Il n'y a pas de moyen simple de décider lequel utiliser pour votre cas d'utilisation particulier. Vous devez toujours faire des essais et des erreurs pour tester les performances. Cependant, étant donné que les GRU sont plus simples que les LSTM, leur formation demande beaucoup moins de temps et est plus efficace.

Crédits: Andrew Ng

balboa
la source
Sur la diapositive suivante, la dernière équation est différente: . Cette formule est confirmée correcte ici . a<t>=Γotanh(c~<t>)
Tom Hale
1

GRU est meilleur que LSTM car il est facile à modifier et n’a pas besoin d’unités de mémoire. Par conséquent, il est plus rapide à entraîner que LSTM et offre des performances optimales.

Vivek Khetan
la source
12
soutenez s'il vous plaît la demande de performance avec des références équitables
Kari
1

En réalité, la différence clé semble être plus que cela: les perceptrons à long terme (LSTM) sont constitués en utilisant les algorithmes de quantité de mouvement et de descente de gradient. Lorsque vous réconciliez des perceptrons de LSTM avec leurs RNN équivalents récursifs, vous obtenez GRU, qui est en réalité une simple unité récurrente généralisée ou une unité récurrente de gradient (selon le contexte) qui intègre plus étroitement les algorithmes d'élan et de descente de gradient. Si j'étais vous, je ferais plus de recherches sur AdamOptimizers.

GRU est un concept dépassé au fait. Cependant, je peux comprendre que vous recherchiez si vous voulez une connaissance approfondie de la TF de moyenne à avancée.

Andre Patterson
la source
8
Je suis curieux. Pouvez-vous expliquer pourquoi GRU est un concept obsolète?
random_user