¿Cuántas celdas LSTM debo usar?

12

¿Existen reglas generales (o reglas reales) relacionadas con la cantidad mínima, máxima y "razonable" de celdas LSTM que debo usar? Específicamente me relaciono con BasicLSTMCell de TensorFlow y la num_unitspropiedad.

Suponga que tengo un problema de clasificación definido por:

t - number of time steps
n - length of input vector in each time step
m - length of output vector (number of classes)
i - number of training examples

¿Es cierto, por ejemplo, que el número de ejemplos de entrenamiento debería ser mayor que:

4*((n+1)*m + m*m)*c

¿Dónde cestá el número de celdas? Basé esto en esto: ¿Cómo calcular el número de parámetros de una red LSTM? Según tengo entendido, esto debería dar el número total de parámetros, que debería ser menor que el número de ejemplos de entrenamiento.

Comunidad
fuente
1
Revisaría este documento que aborda muy bien el tema de la comparación de modelos secuenciales de aprendizaje profundo, así como el ajuste de hiperparámetros: arxiv.org/pdf/1503.04069.pdf En resumen, sugieren lo obvio, que aumentar el número de bloques LSTM por oculto La capa mejora el rendimiento pero tiene rendimientos decrecientes y aumenta el tiempo de entrenamiento.
CubeBot88

Respuestas:

4

El número mínimo de ejemplos de entrenamiento es lo que tienes ahí arriba:

4 4(nortemetro+norte2)

Para obtener más información, consulte este artículo: Consulte este enlace si necesita ayuda visual: Número de parámetros en un modelo LSTM

El número de unidades en cada capa de la pila puede variar. Por ejemplo, en translate.py de Tensorflow se puede configurar a 1024, 512 o prácticamente cualquier número. El mejor rango se puede encontrar a través de la validación cruzada. Pero he visto 1000 y 500 unidades en cada capa de la pila. Personalmente, también he probado con números más pequeños.

Ali
fuente