Número de parámetros en un modelo LSTM


43

¿Cuántos parámetros tiene un único LSTM apilado? El número de parámetros impone un límite inferior en el número de ejemplos de entrenamiento requeridos y también influye en el tiempo de entrenamiento. Por lo tanto, conocer el número de parámetros es útil para entrenar modelos que usan LSTM.

Respuestas:


29

El LSTM tiene un conjunto de 2 matrices: U y W para cada una de las (3) puertas. El (.) En el diagrama indica la multiplicación de estas matrices con la entrada salida .xh

  • U tiene dimensionesn×m
  • W tiene dimensionesn×n
  • hay un conjunto diferente de estas matrices para cada una de las tres puertas (como para la puerta de olvidar , etc.)Uforget
  • hay otro conjunto de estas matrices para actualizar el estado de la celda S
  • Además de las matrices mencionadas, debe contar los sesgos (no en la imagen)

Por lo tanto, # parámetros totales =4(nm+n2+n)

Bloque abstracto LSTM


2
Me enfrenté a esta pregunta cuando tomé decisiones prácticas sobre la estimación de los requisitos de hardware y la planificación de proyectos para un proyecto de aprendizaje profundo. PD: No respondí mi propia pregunta para ganar puntos de reputación. Quiero saber si mi respuesta es correcta de la comunidad.
wabbit

1
Has ignorado las unidades de sesgo. Vea la respuesta de Adam Oudad a continuación.
Arun

1
Los prejuicios no están ahí. He editado la respuesta.
Escachator

21

Siguiendo las respuestas anteriores, el número de parámetros de LSTM, tomando vectores de entrada de tamaño dando vectores de salida de tamaño es:mn

4(nm+n2)

Sin embargo, en caso de que su LSTM incluya vectores de sesgo ( este es el valor predeterminado en keras, por ejemplo ), el número se convierte en:

4(nm+n2+n)

2
Esta es la única respuesta completa. Cualquier otra respuesta parece contenta con ignorar el caso de las neuronas sesgadas.
Restablece a Mónica

1
Para dar un ejemplo concreto, si su entrada tiene m = 25 dimensiones y se utiliza una capa LSTM con n = 100 unidades, entonces el número de params = 4 * (100 * 25 + 100 ** 2 + 100) = 50400.
Arun

1
Supongamos que estoy usando datos de paso de tiempo, ¿es correcto mi entendimiento a continuación? n = 100: significa que tendré 100 pasos en cada muestra (ejemplo), así que necesito 100 unidades. m = 25 promedio en cada paso de tiempo, tengo 25 características como [peso, altura, edad ...].
Jason Zhang

2
@jasonzhang El número de pasos de tiempo no es relevante, porque la misma celda LSTM se aplicará recursivamente a sus vectores de entrada (un vector para cada paso de tiempo). lo que se llama "unidades" también es el tamaño de cada vector de salida, no el número de pasos de tiempo.
Adam Oudad

12

De acuerdo a esto :

Estructura celular LSTM

Estructura celular LSTM

Ecuaciones LSTM

Ecuaciones LSTM

Incorporación de no linealidades

Incorporación de no linealidades

Si la entrada x_t es de tamaño n × 1, y hay d celdas de memoria, entonces el tamaño de cada uno de W ∗ y U ∗ es d × n , y d × d resp. El tamaño de W será entonces 4d × (n + d) . Tenga en cuenta que cada una de las celdas de memoria dd tiene sus propios pesos W ∗ y U ∗ , y que el único momento en que los valores de las celdas de memoria se comparten con otras unidades LSTM es durante el producto con U ∗ .

Gracias a Arun Mallya por su excelente presentación.

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.