Abandon sur quelles couches de LSTM?

11

En utilisant un multicouche LSTMavec dropout, est-il conseillé de mettre le dropout sur tous les calques cachés ainsi que sur les calques Denses en sortie? Dans l'article de Hinton (qui proposait Dropout), il ne plaçait Dropout que sur les couches Denses, mais c'était parce que les couches internes cachées étaient convolutives.

Évidemment, je peux tester mon modèle spécifique, mais je me demandais s'il y avait un consensus à ce sujet?

BigBadMe
la source
3
une bonne discussion sur le décrochage dans les réseaux récurrents dans cet article si vous êtes intéressé: arxiv.org/abs/1512.05287 Gal, Yarin et Zoubin Ghahramani. "Une application théorique du décrochage dans les réseaux de neurones récurrents." Progrès dans les systèmes de traitement de l'information neuronale. 2016.
redhqs
2
Semble confirmer ce que @Media a dit ci
BigBadMe

Réponses:

12

Je préfère ne pas ajouter d'abandon dans les LSTMcellules pour une raison précise et claire. LSTMssont bons pour le long terme mais une chose importante à leur sujet est qu'ils ne sont pas très bons pour mémoriser plusieurs choses simultanément. La logique du décrochage consiste à ajouter du bruit aux neurones afin de ne pas dépendre d'un neurone spécifique. En ajoutant des abandons pour les LSTMcellules, il y a une chance d'oublier quelque chose qui ne doit pas être oublié. Par conséquent, comme CNNsje préfère toujours utiliser le décrochage en couches denses après les LSTMcouches.

Médias
la source
1
Je comprends ce que vous dites, et cela a du sens, mais alors, pourquoi l'implémentation de cellules LSTM dans Keras ou Tensorflow offre-t-elle la possibilité de spécifier le décrochage (et le décrochage récurrent) si cela, en fait, sape la façon dont un LSTM est censé une fonction?
BigBadMe
3
Il CNNsest tout à fait acceptable de ne pas les utiliser dans les couches conv en raison du petit nombre de poids dans les couches convolutionnelles. En LSTMsrevanche, le nombre de poids n'est pas petit. Comme je l'ai mentionné dans les tâches, il y a beaucoup de choses à mémoriser, j'essaie de ne pas utiliser le décrochage, mais comme le temps des verbes, vous n'avez pas beaucoup de dépendances, je suppose que ce n'est pas très mauvais. Au fait, c'était mon expérience. Il peut y avoir d'autres réponses pour différents domaines d'application.
Média
1
Grande explication par les deux réponses! (+ 1)
Aditya
5

Il n'y a pas de consensus qui puisse être prouvé pour tous les types de modèles.

Le fait de considérer le décrochage comme une forme de régularisation, la quantité de celui-ci à appliquer (et où), dépendra intrinsèquement du type et de la taille de l'ensemble de données, ainsi que de la complexité de votre modèle construit (sa taille).

n1k31t4
la source