Qual è il significato di "Il numero di unità nella cella LSTM"?


19

Dal codice Tensorflow : Tensorflow. RnnCell.

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

Non riesco a capire cosa significa questo. Quali sono le unità della cella LSTM. Input, Output e dimenticare le porte? Significa "numero di unità nel livello di proiezione ricorrente per Deep LSTM". Allora perché questo si chiama "numero di unità nella cella LSTM"? Cos'è la cella LSTM e qual è la differenza rispetto al blocco LSTM, qual è l'unità LSTM minima se non la cella?



Se il layer contiene più unità LSTM parallele, come gestisce l'ingresso x? caso 1: h (1) = f (x) h (t) = f (h (t-1), x) h (t + 1) = f (h (t), x) caso 2: h (1 ) = f (x) h (t) = h (t-1) Forse ci sono altri casi come ResNet.
user1908842

Risposte:


10

Come dicono i commenti utili in quella funzione,

La definizione di cellula in questo pacchetto differisce dalla definizione usata in letteratura. In letteratura, cell si riferisce a un oggetto con un singolo output scalare. La definizione in questo pacchetto si riferisce ad una matrice orizzontale di tali unità.

In sostanza, il layer conterrà più unità LSTM parallele, strutturalmente identiche ma ognuna alla fine "imparerà a ricordare" qualcosa di diverso.


1
Grazie :) Questo commento è stato aggiunto 7 giorni fa, dopo questa domanda. Dopo alcuni scavi ho chiesto al team Tensorflow nel gruppo di Google perché la loro definizione di cellula LSTM è diversa dalla letteratura LSTM cell .. e hanno aggiunto quel commento :)
Brans Ds

7

La maggior parte dei diagrammi LSTM / RNN mostra solo le celle nascoste ma mai le unità di quelle celle. Da qui la confusione. Ogni livello nascosto ha celle nascoste, pari al numero di passaggi temporali. Inoltre, ogni cella nascosta è composta da più unità nascoste, come nel diagramma seguente. Pertanto, la dimensionalità di una matrice di livelli nascosti in RNN è (numero di passi temporali, numero di unità nascoste).

inserisci qui la descrizione dell'immagine


1

In Keras, che si trova sopra TensorFlow o Theano, quando chiami model.add(LSTM(num_units)), num_units è la dimensionalità dello spazio di output (da qui , linea 863). Per me, ciò significa che num_unitsè il numero di unità nascoste le cui attivazioni vengono inviate al passaggio successivo.


0

Il numero di unità in un RNN è il numero di unità di memoria RNN a ciascun ingresso della sequenza in modo verticale collegate l'una all'altra, e ciascuna passa le informazioni filtrate alle successive unità di memoria.

Ricorda che questo concetto è stato ispirato dal concetto di informatica del flusso di allocazione della memoria a unità diverse della dimensione dei bit.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.