Quante celle LSTM dovrei usare?


12

Esistono delle regole empiriche (o regole effettive) relative alla quantità minima, massima e "ragionevole" di celle LSTM che dovrei usare? In particolare mi riferisco a BasicLSTMCell di TensorFlow e num_unitsproprietà.

Si prega di supporre che ho un problema di classificazione definito da:

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

È vero, ad esempio, che il numero di esempi di addestramento dovrebbe essere maggiore di:

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

dov'è il cnumero di celle? L'ho basato su questo: come calcolare il numero di parametri di una rete LSTM? A quanto ho capito, questo dovrebbe fornire il numero totale di parametri, che dovrebbe essere inferiore al numero di esempi di addestramento.

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
Darei un'occhiata a questo documento che affronta bene l'argomento del confronto tra modelli sequenziali di deep learning e messa a punto dell'iperparametro: arxiv.org/pdf/1503.04069.pdf In sintesi suggeriscono l'ovvio, che aumentando il numero di blocchi LSTM per nascosto il livello migliora le prestazioni ma ha rendimenti decrescenti e aumenta i tempi di allenamento.
CubeBot88,

Risposte:


4

Il numero minimo di esempi di allenamento è quello che hai lassù:

4(nm+n2)

Per ulteriori informazioni, consultare questo articolo: Fare riferimento a questo collegamento se si necessita di aiuto visivo: Numero di parametri in un modello LSTM

Il numero di unità in ciascun livello della pila può variare. Ad esempio in translate.py di Tensorflow può essere configurato su 1024, 512 o praticamente su qualsiasi numero. La gamma migliore può essere trovata tramite validazione incrociata. Ma ho visto sia il numero 1000 che 500 di unità in ogni strato della pila. Personalmente ho provato anche con numeri più piccoli.

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.