Quels sont les avantages d'empiler plusieurs LSTM?

25

Quels sont les avantages, pourquoi utiliserait-on plusieurs LSTM, empilés côte à côte, dans un réseau profond? J'utilise un LSTM pour représenter une séquence d'entrées en tant qu'entrée unique. Donc, une fois que j'ai cette représentation unique - pourquoi la repasserais-je?

Je pose la question parce que je l'ai vu dans un programme de génération en langage naturel.

wordSmith
la source
1
Vouliez-vous vraiment dire les LSTM empilés côte à côte comme horizontalement (le long des pas de temps) ou vouliez-vous dire empilés verticalement (plusieurs cellules LSTM pour chaque pas de temps)?
wabbit

Réponses:

18

Je pense que vous faites référence à des couches LSTM empilées verticalement (en supposant que les axes horizontaux sont l'axe du temps.

Dans ce cas, la raison principale de l'empilement de LSTM est de permettre une plus grande complexité du modèle. Dans le cas d'un simple réseau à action directe, nous empilons des couches pour créer une représentation hiérarchique des données d'entrée à utiliser ensuite pour certaines tâches d'apprentissage automatique. Il en va de même pour les LSTM empilés.

A chaque pas de temps un LSTM, en plus de l'entrée récurrente. Si l'entrée est déjà le résultat d'une couche LSTM (ou d'une couche à action directe), le LSTM actuel peut créer une représentation d'entité plus complexe de l'entrée actuelle.

Maintenant, la différence entre avoir une couche à action directe entre l'entrée d'entité et la couche LSTM et avoir une autre couche LSTM est qu'une couche à action directe (disons une couche entièrement connectée) ne reçoit pas de rétroaction de son pas de temps précédent et ne peut donc pas tenir compte de certains modèles. Avoir un LSTM à la place (par exemple en utilisant une représentation LSTM empilée) des modèles d'entrée plus complexes peuvent être décrits à chaque couche

Sjoerd
la source
4
Les cellules LSTM au sein d'une couche sont déjà entièrement connectées les unes aux autres (les sorties d'une couche sont connectées à toutes les entrées de la même couche). Par conséquent, les cellules individuelles peuvent déjà combiner des entités au-dessus des sorties d'autres cellules, le tout dans une même couche. Pourriez-vous expliquer pourquoi plusieurs couches produisent des motifs plus complexes, s'il vous plaît?
danijar
6

À partir de 1}:

Bien qu'il ne soit pas théoriquement clair quelle est la puissance supplémentaire acquise par l'architecture plus profonde, il a été observé empiriquement que les RNN profonds fonctionnent mieux que les RNN moins profonds pour certaines tâches. En particulier, Sutskever et al (2014) rapportent qu'une architecture profonde à 4 couches était cruciale pour obtenir de bonnes performances de traduction automatique dans un cadre codeur-décodeur. Irsoy et Cardie (2014) signalent également des résultats améliorés du passage d'un BI-RNN à une couche à une architecture à plusieurs couches. De nombreux autres travaux signalent des résultats utilisant des architectures RNN en couches, mais ne se comparent pas explicitement aux RNN à une couche.

Pour info:


Les références:

Franck Dernoncourt
la source
2

En jouant avec LSTM pour la classification des séquences, cela a eu le même effet que l'augmentation de la capacité du modèle dans les CNN (si vous les connaissez). Donc, vous obtenez certainement des gains, surtout si vous sous-adaptez vos données.

Bien sûr, à double tranchant car vous pouvez également sur-ajuster et obtenir de moins bonnes performances. Dans mon cas, je suis passé de 1 LSTM à une pile de 2 et j'ai obtenu une amélioration à peu près instantanée.

InKodeWeTrust
la source