¿Cuál es el significado de "El número de unidades en la celda LSTM"?


19

Desde el código de Tensorflow : Tensorflow. RnnCell.

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

No puedo entender qué significa esto. ¿Cuáles son las unidades de la celda LSTM? Entrada, salida y olvidar puertas? ¿Significa esto "número de unidades en la capa de proyección recurrente para Deep LSTM". Entonces, ¿por qué esto se llama "número de unidades en la celda LSTM"? ¿Qué es la celda LSTM y cuál es la diferencia del bloque VS LSTM?



Si la capa contiene múltiples unidades LSTM paralelas, ¿cómo maneja la entrada 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) Quizás haya otro caso como ResNet.
user1908842

Respuestas:


10

Como dicen los útiles comentarios en esa función,

La definición de célula en este paquete difiere de la definición utilizada en la literatura. En la literatura, la celda se refiere a un objeto con un solo resultado escalar. La definición en este paquete se refiere a una matriz horizontal de tales unidades.

En esencia, la capa contendrá múltiples unidades LSTM paralelas, estructuralmente idénticas pero cada una eventualmente "aprenderá a recordar" algo diferente.


1
Gracias :) Ese comentario fue agregado hace 7 días, después de esta pregunta. Después de investigar un poco, le pregunté al equipo de Tensorflow en el grupo de Google por qué su definición de celda LSTM difiere de la literatura de la celda LSTM ... y agregaron ese comentario :)
Brans Ds

7

La mayoría de los diagramas LSTM / RNN solo muestran las celdas ocultas pero nunca las unidades de esas celdas. De ahí la confusión. Cada capa oculta tiene celdas ocultas, tanto como el número de pasos de tiempo. Y además, cada celda oculta está compuesta de múltiples unidades ocultas, como en el diagrama a continuación. Por lo tanto, la dimensionalidad de una matriz de capa oculta en RNN es (número de pasos de tiempo, número de unidades ocultas).

ingrese la descripción de la imagen aquí


1

En Keras, que se encuentra encima de TensorFlow o Theano, cuando llamas model.add(LSTM(num_units)), num_units es la dimensionalidad del espacio de salida (desde aquí , línea 863). Para mí, eso significa num_unitses el número de unidades ocultas cuyas activaciones se envían al siguiente paso de tiempo.


0

El número de unidades en un RNN es el número de unidades de memoria RNN para cada entrada de la secuencia en forma vertical unida entre sí, y cada una está pasando la información filtrada a las siguientes unidades de memoria.

Recuerde que este concepto se inspiró en el concepto de informática del flujo de asignación de memoria a diferentes unidades del tamaño de bits.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.