Différence entre les échantillons, les pas de temps et les caractéristiques du réseau neuronal

17

Je passe par le blog suivant sur le réseau de neurones LSTM: http://machinelearningmastery.com/understanding-stateful-lstm-recurrent-neural-networks-python-keras/

L'auteur remodèle le vecteur d'entrée X en [échantillons, pas de temps, caractéristiques] pour différentes configurations de LSTM.

L'auteur écrit

En effet, les séquences de lettres sont des pas de temps d'une caractéristique plutôt qu'un pas de temps de caractéristiques distinctes. Nous avons donné plus de contexte au réseau, mais pas plus de séquence que prévu

Qu'est-ce que ça veut dire?

Vipul Jain
la source

Réponses:

16

J'ai trouvé cela juste en dessous des [échantillons, pas de temps, fonctionnalités] qui vous intéressent.

X = numpy.reshape(dataX, (len(dataX), seq_length, 1))

Échantillons - Il s'agit du len (dataX) ou de la quantité de points de données dont vous disposez.

Pas de temps - Cela équivaut à la quantité de pas de temps que vous exécutez votre réseau neuronal récurrent. Si vous souhaitez que votre réseau ait une mémoire de 60 caractères, ce nombre doit être 60.

Caractéristiques - c'est la quantité de fonctionnalités à chaque pas de temps. Si vous traitez des images, il s'agit de la quantité de pixels. Dans ce cas, vous semblez avoir 1 fonctionnalité par pas de temps.

Joonatan Samuel
la source
1
pouvez-vous expliquer la différence entre: X = numpy.reshape (dataX, (len (dataX), 3, 1)) et X = numpy.reshape (dataX, (len (dataX), 1, 3)) Comment cela affecte-t-il le lstm?
Vipul Jain
1
(len (dataX), 3, 1) exécute LSTM pendant 3 itérations, saisissant un vecteur d'entrée de forme (1,). (len (dataX), 1, 3) exécute LSTM pour 1 itération. Ce qui signifie qu'il est tout à fait inutile d'avoir même des connexions récurrentes car il ne peut y avoir de retour des itérations précédentes. Dans ce cas, la forme d'entrée dans RNN est de forme (3,)
Joonatan Samuel
"(len (dataX), 3, 1) exécute LSTM pendant 3 itérations" ne pas utiliser epoch pour cela. cela signifie-t-il la même chose que epoch = 3?
Vipul Jain
1
Une époque de traduction approximative signifie que nous nous sommes formés une fois sur chaque point de données de notre ensemble de données. Pendant l'entraînement, avoir examiné des exemples de len (dataX) compte pour 1 époque. Cependant, les RNN prennent les données séquentiellement. Sur chaque exemple de formation, vous devez lui fournir des données sur plusieurs itérations. Par exemple, j'ai un mot "voiture" et à chaque itération je lui donne une lettre, je le laisse terminer le calcul puis je nourris la lettre suivante. Pour terminer le traitement du mot "voiture", il faut 3 itérations pour traiter le mot entier lettre par lettre.
Joonatan Samuel
@JoonatanSamuel salut, je sais que beaucoup de temps s'est écoulé mais j'ai beaucoup de mal à comprendre le même sujet. Votre réponse est très claire, mais je suis encore un peu confuse. Immagine, nous avions une série chronologique décrivant les ventes de chaque mois pendant plusieurs années (disons). Imaginez len (data) = 3000, data.shape = (3000,1) par exemple, nous avons donc 3000 mois enregistrés. Prédire la suivante : si je veux utiliser N observation précédente pour prédire la suivante (uniquement la suivante!), Quelle devrait être la forme des données d'entrée dans LSTM? Par exemple, si nous voulions utiliser t-n,..., t-2, t-1pour prédire t.
Euler_Salter
0

C'est un peu trop tard mais juste au cas où;
Un échantillon peut faire référence à des exemples de formation individuels. Une variable «batch_size» est donc le nombre d'échantillons que vous avez envoyés au réseau neuronal. Autrement dit, combien d'exemples différents vous alimentez à la fois sur le réseau neuronal.

TimeSteps sont des périodes de temps. C'est la durée de chacun de vos échantillons. Par exemple, un échantillon peut contenir 128 pas de temps, chaque pas de temps pouvant être un 30ème de seconde pour le traitement du signal. Dans le traitement du langage naturel (NLP), un pas de temps peut être associé à un caractère, un mot ou une phrase, selon la configuration.

Les fonctionnalités sont simplement le nombre de dimensions que nous alimentons à chaque pas de temps. Par exemple, dans la PNL, un mot peut être représenté par 300 entités à l'aide de word2vec. Dans le cas du traitement du signal, supposons que votre signal soit en 3D. Autrement dit, vous avez un signal X, Y et Z, comme les mesures d'un accéléromètre sur chaque axe. Cela signifie que vous auriez 3 fonctionnalités envoyées à chaque pas de temps pour chaque échantillon.

Par Guillaume

vert
la source
0

Ma réponse avec un exemple: ["bonjour c'est xyz", "comment allez-vous", "grand homme ..."]

dans ce cas, "[échantillons, pas de temps, caractéristiques]" signifie:

  • échantillon: 3 car il y a 3 éléments dans la liste
  • pas de temps: ici vous pouvez prendre max_length = 4 longueur ("bonjour c'est xyz") = 4; longueur ("comment allez-vous") = 4; longueur ("grand homme ...") = 2 (après avoir supprimé la ponctuation "."). La raison de dire que c'est un pas de temps est, dans le premier élément "bonjour c'est xyz" ==> t0 ("bonjour"), t1 ("ceci"), t2 ("est") et t3 ("xyz")
  • caractéristiques: la taille de l'intégration pour chaque mot. par exemple, "bonjour": tableau 50D, "ceci": tableau 50D et ainsi de suite
tintin
la source