J'ai une séquence binaire d'entiers {0,1} et j'aimerais créer un modèle LSTM pour prédire le terme binaire suivant en fonction des 3 nombres précédents de la séquence. Ainsi, par exemple, compte tenu de la séquence de train [0,1,1,0,1,0,0,1], pour les 3 premiers chiffres [0,1,1], le modèle doit sortir le numéro 0, pour la séquence suivante [1,1,0] le modèle devrait sortir 1 et pour la séquence suivante [1,0,1] sortir 0 et ainsi de suite.Keras Modèle LSTM n'apprenant pas la séquence binaire
Pour ce faire, compte tenu de l'exemple ci-dessus, j'ai créé l'ensemble d'entrée de formation suivante nommée VECX
array([[[0],
[1],
[1]],
[[1],
[1],
[0]],
[[1],
[0],
[1]],
[[0],
[1],
[0]],
[[1],
[0],
[0]]])
et la formation correspondante ouput ensemble nommé vecY:
array([[0],
[1],
[0],
[0],
[1]])
J'ai aussi créé les keras suivants Réseau LSTM pour un plus grand ensemble d'entraînement
LSTM_net = Sequential()
LSTM_net.add(LSTM(1,input_shape=(3,1)))
LSTM_net.add(Dense(1,activation="softmax"))
LSTM_net.compile(optimizer="adagrad", loss="binary_crossentropy",metrics=["accuracy"])
LSTM_net.fit(vecX,vecY,batch_size=256,epochs=100,verbose=2)
Quand je m'entraîne thi modèle s il est bloqué avec une précision constante pendant le processus de formation
1s - loss: 0.7534 - acc: 0.4992
Epoch 2/1000
0s - loss: 0.7533 - acc: 0.4992
Epoch 3/1000
0s - loss: 0.7534 - acc: 0.4992
Epoch 4/1000
0s - loss: 0.7534 - acc: 0.4992
Epoch 5/1000
0s - loss: 0.7534 - acc: 0.4992
Le a donné le modèle qualifié donne seulement 0 prévisions constantes pour toutes les entrées dans le jeu de train ou d'un test et il semble qu'il a rien appris du tout sur le séquence.
J'ai essayé d'autres activations comme le softmax, le sigmoïde et le linéaire mais je n'ai pas réussi à voir une amélioration de la précision. J'ai même essayé de l'ajuster avec shuffle = False mais j'ai obtenu les mêmes résultats.
Qu'est-ce que je fais mal?
Si cette question concerne plus les méthodes d'apprentissage automatique que la programmation réelle, peut-être que les gars de https://stats.stackexchange.com peuvent vous aider – Sentry
avez-vous utilisé relu ou l'une de ses variantes? –