Ich versuche, ein sehr einfaches RNN Beispiel mit Keras zu codieren, aber die Ergebnisse sind nicht wie erwartet.Simple Recurrent Neural Network Eingabeform
Mein X_train ist eine wiederholte Liste mit Länge 6000 wie: (6000, 1, 1)
Meine y_train eine wiederholte Liste mit Länge 6000 wie ist: 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...
ich dies zu formen formatiert 1, 0.8, 0.6, 0, 0, 0, 1, 0.8, 0.6, 0, ...
ich diese formatiert zu formen: (6000, 1)
In meinem Verständnis sollte das rekurrente neuronale Netz lernen, die 0.8 und 0.6 richtig vorherzusagen, weil es c erinnere mich an die 1 in X_train vor 2 Zeitschritten.
Mein Modell:
model=Sequential()
model.add(SimpleRNN(input_dim=1, output_dim=50))
model.add(Dense(output_dim=1, activation = "sigmoid"))
model.compile(loss="mse", optimizer="rmsprop")
model.fit(X_train, y_train, nb_epoch=10, batch_size=32)
Das Modell erfolgreich mit minimalem Verlust trainiert werden kann ~ 0,1015, aber die Ergebnisse sind nicht wie erwartet.
test case --------------------------------------------- model result -------------expected result
model.predict(np.array([[[1]]])) --------------------0.9825--------------------1
model.predict(np.array([[[1],[0]]])) ----------------0.2081--------------------0.8
model.predict(np.array([[[1],[0],[0]]])) ------------0.2778 -------------------0.6
model.predict(np.array([[[1],[0],[0],[0]]]))---------0.3186--------------------0
Gibt es irgendwelche Hinweise, was ich hier falsch verstehe?