Keras extrem hohe Verluste, nicht sinkt mit jeder Epoche

Ich bin mit Keras zu bauen und Zug in einem rekurrenten neuronalen Netzwerk.

from keras.models import Sequential
from keras.layers.core import Dense, Activation, Masking
from keras.layers.recurrent import LSTM

#build and train model
in_dimension = 3
hidden_neurons = 300
out_dimension = 2

model = Sequential()
model.add(Masking([0,0,0], input_shape=(max_sequence_length, in_dimension)))
model.add(LSTM(hidden_neurons, return_sequences=True, input_shape=(max_sequence_length, in_dimension)))
model.add(LSTM(hidden_neurons, return_sequences=False))
model.add(Dense(out_dimension))
model.add(Activation('softmax'))

model.compile(loss="categorical_crossentropy", optimizer="rmsprop")
model.fit(padded_training_seqs, training_final_steps, nb_epoch=5, batch_size=1)

padded_training_seqs ist ein ein array von Sequenzen von [Breitengrad, Längengrad, Temperatur], die alle gepolstert, um die gleiche Länge mit den Werten von [0,0,0]. Wenn ich trainiere, in diesem Netzwerk, der ersten Epoche gibt mir einen Verlust von über 63, und erhöht nach mehr Epochen.
Dies bewirkt eine model.predict Gespräch zu einem späteren Zeitpunkt in den code zu geben, Werte, die sind völlig aus der Ausbildung Werte. Zum Beispiel, die meisten von der Ausbildung Werte in jeder Folge ist etwa [40, 40, 20], aber der RNN-Ausgänge Werte konstant bei rund [0.4, 0.5], die mich veranlasst, zu denken, dass etwas falsch ist mit dem masking layer.

Dem training X (padded_training_seqs) Daten sieht ungefähr so aus (nur viel größer):

[
[[43.103, 27.092, 19.078], [43.496, 26.746, 19.198], [43.487, 27.363, 19.092], [44.107, 27.779, 18.487], [44.529, 27.888, 17.768]], 
[[44.538, 27.901, 17.756], [44.663, 28.073, 17.524], [44.623, 27.83, 17.401], [44.68, 28.034, 17.601], [0,0,0]],
[[47.236, 31.43, 13.905], [47.378, 31.148, 13.562], [0,0,0], [0,0,0], [0,0,0]]
]

sowie die Ausbildung Y (training_final_steps) Daten sieht wie folgt aus:

[
[44.652, 39.649], [37.362, 54.106], [37.115, 57.66501]
]
Ein Zunehmender Verlust der Funktion, wenn die Ausbildung macht mich immer stutzig, läuft mit einer zu hohen lernraten. Haben Sie versucht, die Verringerung, die, Sie können diese anpassen, indem Sie übergeben eine keras.optimizers.RMSprop Instanz der model.compile nennen.
Danke, aber ich habe das problem behob, aber jetzt ein Modell.Vorhersagen nennen, ist die Rückgabe immer den gleichen Wert, unabhängig von der x-Daten, eingespeist in es. Wissen Sie, was könnte die Ursache sein? Das gesamte Projekt ist hier github.com/jeshaitan/migration-lstm
Hi, wie hast du dein problem lösen? Sind Sie wirklich mit hoher Lern-rate? Von Ihrem Programm, ich denke, Sie sind mit dem Standard-lernen-rate, das sind 0.01 Recht?
Ja, ich habe gerade eine dropout-Schicht und ordnete die Schichten im Modell als mir vorgeschlagen, von einem Keras Betreuer. Mein neues problem ist noch nicht gelöst werden, jedoch. Ich denke, es könnte sein, das Netzwerk überanpassung, weil Modell.Vorhersagen konvergiert auf einen Wert.
meine neue Frage ist im Grunde hier skizzierten stats.stackexchange.com/questions/204329/...

InformationsquelleAutor jeshaitan | 2016-03-16

Schreibe einen Kommentar