Quelle est la longueur de séquence possible pour un RNN à modéliser?


15

Je cherche à utiliser une version LSTM ( mémoire à court terme à long terme ) d'un réseau neuronal récurrent (RNN) pour modéliser les données de la série temporelle. À mesure que la longueur de séquence des données augmente, la complexité du réseau augmente. Je suis donc curieux de savoir quelle longueur de séquences serait-il possible de modéliser avec une bonne précision?

Je voudrais utiliser une version relativement simple du LSTM sans aucune approche de pointe difficile à mettre en œuvre. Chaque observation dans ma série temporelle aurait probablement 4 variables numériques et le nombre d'observations serait d'environ 100 000 à 1 000 000.

Réponses:


8

Cela dépend totalement de la nature de vos données et des corrélations internes, il n'y a pas de règle d'or. Cependant, étant donné que vous avez une grande quantité de données, un LSTM à 2 couches peut modéliser un grand nombre de problèmes / repères de séries chronologiques.

De plus, vous ne rétropolez pas dans le temps à l'ensemble de la série mais généralement aux (200-300) dernières étapes. Pour trouver la valeur optimale, vous pouvez effectuer une validation croisée à l'aide de la recherche dans la grille ou de l'optimisation bayésienne. De plus, vous pouvez consulter les paramètres ici: https://github.com/wojzaremba/lstm/blob/master/main.lua .

Ainsi, la longueur de la séquence n'affecte pas vraiment la formation de votre modèle, mais c'est comme avoir plus d'exemples de formation, que vous gardez simplement l'état précédent au lieu de le réinitialiser.


Disons que je dois faire une analyse des sentiments, qui est une approche à plusieurs (voir karpathy.github.io/2015/05/21/rnn-effectiveness ). Chacune de ces senteces est très longue (> 200 mots). Si je rétropropacte dans le temps les 35 étapes habituelles, ne serait-ce pas un problème? Comme il est , je suppose que l' apprentissage supervisé il ne peut backpropagate quand il « hits » la cible de classification binaire, y. De cette façon, comment le RNN ajusterait-il les poids en fonction de quoi que ce soit avant les 35 étapes sélectionnées pour BPTT?
pir

1
Eh bien, ce ne serait pas un problème car les mêmes poids sont réutilisés dans la prochaine étape de formation. De plus, si vous voyez le code source à l'étape 36 (disons), le vecteur d'initialisation n'est pas le zéro, mais les états de l'étape 35. Ainsi, en faisant de petites étapes, vous optimisez votre fonction de coût en utilisant BPTT.
Yannis Assael

1
Juste pour clarifier: le BPTT est-il exécuté une seule fois ou plusieurs fois pour une seule phrase? S'il est exécuté une seule fois, les modèles affectant uniquement les deux premiers mots de la phrase n'affecteront que l'état caché, non? Je veux dire .. les gradients ne seront jamais calculés en ce qui concerne cette partie de l'entrée.
pir

1
J'ai posé cette question séparément que j'espère que vous regarderez :) stats.stackexchange.com/questions/167482/…
pir

2
"étant donné que vous avez une grande quantité de données, un LSTM à 2 couches peut modéliser à peu près n'importe quelle série chronologique." où est la preuve?
nbro
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.