Maison  >  Article  >  développement back-end  >  Comment les pas de temps et les fonctionnalités affectent-ils les performances de Keras LSTM ?

Comment les pas de temps et les fonctionnalités affectent-ils les performances de Keras LSTM ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-27 06:55:39237parcourir

How Do Time Steps and Features Affect Keras LSTM Performance?

Comprendre les pas de temps et les fonctionnalités dans les LSTM Keras

Pour répondre à vos questions, approfondissons les concepts de pas de temps et de fonctionnalités en relation aux LSTM implémentés dans Keras.

Pas de temps et Caractéristiques

Dans l'exemple Keras fourni, les données trainX sont remodelées sous la forme suivante :

(trainX.shape[0], look_back, 1)
  • Pas de temps : La valeur look_back représente le nombre de pas de temps dans chaque séquence. Ici, il est défini sur 3, ce qui signifie que chaque ligne de trainX contient les trois points de données précédents.
  • Caractéristiques : Le nombre de fonctionnalités dans une séquence correspond à la dernière dimension du tenseur de données. Dans ce cas, c'est 1, indiquant que les séquences ne contiennent qu'une seule caractéristique (par exemple, le cours d'une action).

Concernant l'image que vous avez liée depuis le blog de Karpathy, chaque rectangle "rose" représente une caractéristique, et les rectangles "verts" indiquent les pas de temps. Ainsi, le diagramme dans l'image correspondrait à une série chronologique avec trois pas de temps et deux caractéristiques.

Les LSTM avec état

Les LSTM avec état maintiennent un état interne qui leur permet de se souvenir de ce qu'ils ont appris lors du traitement d'une séquence donnée. Lorsque vous les utilisez avec Keras, vous définissez le paramètre stateful sur True.

Dans votre exemple, vous définissez batch_size sur 1 et utilisez model.fit() pour l'entraînement avec shuffle=False. Cela signifie que chaque lot contient une seule séquence et que le LSTM traite les séquences dans le même ordre dans lequel elles apparaissent dans les données d'entraînement. En conséquence, l'état du LSTM est préservé d'un lot à l'autre, ce qui lui permet d'apprendre à partir de la séquence entière.

En réinitialisant l'état du LSTM entre les époques d'entraînement, vous « recommencez » efficacement le processus d'apprentissage pour chaque époque. . Cependant, le LSTM se souvient toujours des modèles généraux qu'il a appris au fil des époques.

Remarques importantes

  • Si vous disposez de plusieurs séquences indépendantes (par exemple, la modélisation de deux actions prix simultanément), chaque séquence doit avoir sa propre couche LSTM.
  • Le nombre de pas de temps doit être déterminé en fonction du problème spécifique et les données avec lesquelles vous travaillez.
  • Les LSTM avec état peuvent être utiles lorsque vous souhaitez apprendre les dépendances sur de longues séquences, mais ils doivent être utilisés avec prudence car ils peuvent introduire un surapprentissage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn