Nombre de paramètres dans un modèle LSTM

43

Combien de paramètres a un seul LSTM empilé? Le nombre de paramètres impose une limite inférieure au nombre d'exemples de formation requis et influence également le temps de formation. Par conséquent, connaître le nombre de paramètres est utile pour l'apprentissage de modèles utilisant des LSTM.

wabbit
la source

Réponses:

29

Le LSTM a un ensemble de 2 matrices: U et W pour chacune des (3) portes. Le (.) Dans le diagramme indique la multiplication de ces matrices avec l'entrée x et la sortie h .

  • U a des dimensions n×m
  • W a les dimensions n×n
  • il y a un ensemble différent de ces matrices pour chacun des trois portes (comme Uforget pour l' oublier porte etc.)
  • il existe un autre ensemble de ces matrices pour la mise à jour de l'état de la cellule S
  • en plus des matrices mentionnées, vous devez compter les biais (pas dans l'image)

Donc total # paramètres = 4(nm+n2+n)

Bloc abstrait LSTM

wabbit
la source
2
J'ai moi-même été confronté à cette question lorsque j'ai pris des décisions pratiques concernant l'estimation des besoins en matériel et la planification d'un projet d'apprentissage en profondeur. PS: Je n'ai pas répondu à ma propre question pour simplement gagner des points de réputation. Je veux savoir si ma réponse vient de la communauté.
Wabbit
1
Vous avez ignoré les unités de biais. Voir la réponse d'Adam Oudad ci-dessous.
arun
1
Les biais ne sont pas là. J'ai édité la réponse.
Escachator
21

mn

4(nm+n2)

Cependant, dans le cas où votre LSTM inclut des vecteurs biais ( par exemple , kera par défaut ), le nombre devient:

4(nm+n2+n)
Adam Oudad
la source
2
C'est la seule réponse complète. Toute autre réponse semble se contenter d'ignorer le cas des neurones à biais.
Rétablir Monica
1
Pour donner un exemple concret, si votre entrée a m = 25 dimensions et que vous utilisez un calque LSTM avec n = 100 unités, nombre de paramètres = 4 * (100 * 25 + 100 ** 2 + 100) = 50400.
arun
1
Supposons que j'utilise des données de pas de temps, ma compréhension ci-dessous est-elle correcte? n = 100: moyenne, je vais avoir 100 pas dans chaque échantillon (exemple), donc il me faut 100 unités. m = 25 signifie à chaque pas, j'ai 25 caractéristiques comme [poids, taille, âge ...].
jason zhang
2
@jasonzhang Le nombre de pas de temps n'est pas pertinent, car la même cellule LSTM sera appliquée de manière récursive à vos vecteurs d'entrée (un vecteur pour chaque pas de temps). Ce qui est appelé "unités" est aussi la taille de chaque vecteur de sortie, pas le nombre de pas de temps.
Adam Oudad
12

Selon ceci :

Structure cellulaire LSTM

Structure cellulaire LSTM

Équations LSTM

Équations LSTM

Non-linéarités d'ingénierie

Non-linéarités d'ingénierie

Si l'entrée x_t est de taille n × 1 et qu'il y a d cellules mémoire, alors la taille de chacun de W ∗ et de U ∗ est d × n , et d × d resp. La taille de W sera alors 4d × (n + d) . Notez que chacune des cellules de mémoire dd a ses propres poids W ∗ et U ∗ , et que les seules valeurs de cellules de mémoire temporelles partagées avec d'autres unités LSTM sont pendant le produit avec U ∗ .

Merci à Arun Mallya pour son excellente présentation.

ichernob
la source