Quelle est la signification de «Le nombre d'unités dans la cellule LSTM»?

19

Du code Tensorflow : Tensorflow. RnnCell.

num_units: int, The number of units in the LSTM cell.

Je ne peux pas comprendre ce que cela signifie. Quelles sont les unités de la cellule LSTM. Entrée, sortie et oublier les portes? Cela signifie-t-il «nombre d'unités dans la couche de projection récurrente pour Deep LSTM». Alors pourquoi cela s'appelle-t-il "nombre d'unités dans la cellule LSTM"? Qu'est-ce qu'une cellule LSTM et quelle est la différence par rapport au bloc LSTM, quelle est l'unité LSTM minimale sinon la cellule?

Brans Ds
la source
Si la couche contient plusieurs unités LSTM parallèles, comment gère-t-elle l'entrée x? cas 1: h (1) = f (x) h (t) = f (h (t-1), x) h (t + 1) = f (h (t), x) cas 2: h (1 ) = f (x) h (t) = h (t-1) Peut-être qu'il y a un autre cas comme ResNet.
user1908842

Réponses:

10

Comme le disent les commentaires utiles de cette fonction,

La définition de cellule dans ce package diffère de la définition utilisée dans la littérature. Dans la littérature, cellule fait référence à un objet avec une seule sortie scalaire. La définition de ce package fait référence à un tableau horizontal de ces unités.

Essentiellement, la couche contiendra plusieurs unités LSTM parallèles, structurellement identiques, mais chacune finira par «apprendre à se souvenir» de quelque chose de différent.

Peter est
la source
1
Merci :) Ce commentaire a été ajouté il y a 7 jours, après cette question. Après quelques recherches, j'ai demandé à l'équipe Tensorflow du groupe Google pourquoi la définition de la cellule LSTM diffère de la littérature LSTM cell .. et ils ont ajouté ce commentaire :)
Brans Ds
7

La plupart des diagrammes LSTM / RNN montrent simplement les cellules cachées mais jamais les unités de ces cellules. D'où la confusion. Chaque couche cachée a des cellules cachées, autant que le nombre de pas de temps. Et de plus, chaque cellule cachée est composée de plusieurs unités cachées, comme dans le diagramme ci-dessous. Par conséquent, la dimensionnalité d'une matrice de couche cachée dans RNN est (nombre de pas de temps, nombre d'unités cachées).

entrez la description de l'image ici

Garima Jain
la source
1

Dans Keras, qui se trouve au-dessus de TensorFlow ou Theano, lorsque vous appelez model.add(LSTM(num_units)), num_units est la dimensionnalité de l'espace de sortie (d' ici , ligne 863). Pour moi, cela signifie que num_unitsle nombre d'unités cachées dont les activations sont envoyées au pas de temps suivant.

StatsSorcière
la source
0

Le nombre d'unités dans un RNN est le nombre d'unités de mémoire RNN à chaque entrée de la séquence attachées les unes aux autres verticalement, et chacune transmet les informations filtrées aux unités de mémoire suivantes.

Rappelez-vous que ce concept a été inspiré du concept informatique du flux d'allocation de mémoire à différentes unités de taille de bit.

Raj
la source