2016-07-28 5 views
0

Ich habe ein Spiel mit nur 10x2 Pixeln als Eingabe und es lernt nach einer Stunde selbständig das Training. Jetzt möchte ich eine Float-Value-Ausgabe des Modells anstelle von drei Classifier-Ausgaben verwenden. Die drei Klassifikatorausgänge sind Stopp, 1-Schritt rechts, 1-Schritt-links. Jetzt möchte ich einen Ausgabewert erzeugen, der mir z.B. -4 => 4 Schritte-links, +2 => 2 Schritte-rechts und so weiter.Einfach Ausgangsverbrauch umschalten?

Aber nach dem Training für 1-2 Stunden, produziert es nur Zahlen um 0,001, aber es sollte Zahlen zwischen -10.0 -> + 10.0 produzieren?

Muss ich es komplett anders machen, oder kann ich ein Klassifikatormodell verwenden, um einen echten Wert auszugeben, ohne viel Code zu ändern?

Dank für Hilfe

game code link

Antwort

0

ein Klassifikator Ausbildung ist viel einfacher als mit einer guten Verlustfunktion kommen, die Sie Wert geben scalaer den Sinn machen. Viel (!) Einfacher.

Machen Sie es zu einem Klassifikator mit 21 Klassen (0 = 10 links, 1 = 9 links, 2 = 8 links, ..., 10 = bleiben, 11 = 1 rechts, ..., 20 = 10 rechts)

+0

das ist nicht gut, denn ich habe 1024 Geschwindigkeitswerte. Und mein Ziel ist es, noch mehr zu haben, also brauche ich eine echte Wertausgabe. Die Verlustfunktion ist die q-Funktion von deepminds dqn. Ich denke, es ist verallgemeinert genug, um für diese Aufgabe gut zu sein, oder liege ich falsch? –

+0

Entschuldigung, die Verlustfunktion ist nicht die q-Funktion. Die Verlustfunktion ist target - read_action. –

+0

Ja, dann bin ich der Falsche. Ich gab gute Skalarvorhersagen auf. Aber neugierig, ob jemand anders antworten könnte, der eine Idee hat. – friesel