¿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.

rnn  machine-learning  r  predictive-modeling  random-forest  python  language-model  sentiment-analysis  encoding  machine-learning  deep-learning  neural-network  dataset  caffe  classification  xgboost  multiclass-classification  unbalanced-classes  time-series  descriptive-statistics  python  r  clustering  machine-learning  python  deep-learning  tensorflow  machine-learning  python  predictive-modeling  probability  scikit-learn  svm  machine-learning  python  classification  gradient-descent  regression  research  python  neural-network  deep-learning  convnet  keras  python  tensorflow  machine-learning  deep-learning  tensorflow  python  r  bigdata  visualization  rstudio  pandas  pyspark  dataset  time-series  multilabel-classification  machine-learning  neural-network  ensemble-modeling  kaggle  machine-learning  linear-regression  cnn  convnet  machine-learning  tensorflow  association-rules  machine-learning  predictive-modeling  training  model-selection  neural-network  keras  deep-learning  deep-learning  convnet  image-classification  predictive-modeling  prediction  machine-learning  python  classification  predictive-modeling  scikit-learn  machine-learning  python  random-forest  sampling  training  recommender-system  books  python  neural-network  nlp  deep-learning  tensorflow  python  matlab  information-retrieval  search  search-engine  deep-learning  convnet  keras  machine-learning  python  cross-validation  sampling  machine-learning 

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.

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.