2017-05-03 1 views
0

Je suis confus comment exactement coder une séquence de données comme une entrée à un RNN LSTM.Format de données d'entrée pour RNN

Dans un DNN vanillé, il existe une entrée pour chaque étiquette. Quelle est "l'entrée" dans un RNN? Ne doit-il pas être un ensemble (ou une séquence) de données, afin de former des événements séquentiels associés à une étiquette? Je ne sais pas comment encoder les informations séquentielles, car il semble qu'il devrait y avoir plus d'une seule entrée associée à une étiquette donnée.

Répondre

1

Dressons un exemple dans le code. Disons que nous avons quelques phrases où chaque mot de la phrase est codé comme un vecteur (vecteurs de word2vec peut-être). Supposons que nous voulions classer chaque phrase dans l'une des deux classes (0, 1). Nous pourrions construire un classificateur simple comme ceci:

import numpy as np 
from keras.models import Sequential 
from keras.layers import LSTM, Dense 

# each example (of which we have a 100) is a sequence of 10 words and 
# each words is encoded as 16 element vectors 

X = np.random.rand(100, 10, 16) 
y = np.random.choice(2, 100) 

model = Sequential() 
model.add(LSTM(128, input_shape=(10, 16)) 
model.add(Dense(1, activation='sigmoid')) 
model.compile(loss='binary_crossentropy', optimizer='sgd') 

# fit model 
model.fit(X, y, epochs=3, batch=16) 
1

il semble qu'il devrait y avoir plus d'une entrée associée à une étiquette donnée

Oui, vous avez raison. En fait, votre contribution doit être une matrice 3D. Par exemple si vous avez n séquences, chaque séquence est de longueur m et chacune de vos données de séquence a d caractéristiques l'entrée de votre RNN doit être de dimension (n, m, d).

0

Par exemple, si vous avez un timeseries (X1,..,Xt) et que vous voulez former un facteur prédictif de prédire à l'horizon de +1 et utiliser séquence de longueur 3, votre entrée et de sortie seront:

[[X1,X2,X3]] [X4] 
[[X2,X3,X4]] [X5] 
... 
[[Xt-3,Xt-2,Xt-1]] [Xt] 

Ainsi, il y a des séquences t-3, chacune de ces séquences a une longueur de 3 et a 1 caractéristiques. La dimension devrait être (t-3,3,1).