2017-10-18 6 views
1

je en ai deux séries temporelles A et B:force LSTM Keras utiliser les dépendances de séries temporelles

A: 1,2,3,1,2,3,3,3,1,2,3,3,3 
B: 0,0,1,0,0,1,1,1,0,0,1,1,1 

Cet ensemble de formation simple indique que le signal B est corrélé à A. En fait chaque fois que A est égal à 3, en même temps estampille, en B, la valeur est 1.

J'ai présenté l'exemple ci-dessus juste pour expliquer mon problème. Quand je prévois des données en utilisant LSTM avec Keras, je veux que le modèle comprenne ce genre de dépendances de la série.

Maintenant, j'utiliser cette configuration:

model.add(keras.layers.LSTM(hidden_nodes, activation='sigmoid', input_dim=num_features, input_length=window, consume_less="mem")) 
model.add(keras.layers.Dense(num_features, activation='sigmoid')) 

optimizer = keras.optimizers.SGD(lr=learning_rate, decay=1e-6, momentum=0.9, nesterov=True) 

Mais je vois valeur prévisions LSTM sans utiliser apparemment entre les séries de dépendances temps. Si je fais une prédiction avec une fenêtre de 5, afin de prévoir le prochain point:

A: [1,2,3,1,2] 
B: [0,0,1,0,0] 

Je pense que LSTM me donne de la valeur 3 A et 1 B, parce que la formation mis en dit en dessous.

Le problème est que mon réseau semble utiliser les signaux sans donner le bon poids aux dépendances des signaux.

Répondre

1

Vous ne devriez avoir qu'une seule série avec deux fonctions.

Si A et B sont des listes (pas de tableaux numpy):

fullSeq = np.array(A + B) 
#this shape is (lenA + lenB,) 

fullSeq = fullSeq.reshape((2,len(A))) 
fullSeq = fullSeq.swapaxes(0,1).reshape((1,len(A),2)) 

#make sure that the resulting array is something like [[[1,0],[2,0],[3,1],...]] 

Maintenant vous avez une seule séquence avec num_features=2. A et B deviennent totalement dépendants maintenant.

+0

Oui, mais est-ce lié aux dépendances de signaux? – Ghemon

+0

Je ne comprends pas votre question. –

+0

Ok, j'essaie de mieux l'expliquer. Aussi, si je fais ce que vous avez écrit plus haut, il semble que le réseau ne prenne pas en compte les dépendances entre le signal A et le signal B. Par exemple je ne peux pas utiliser un algorithme de régression sur B (ou A), car ils sont corrélés . – Ghemon