Ich habe Q-Learning implementiert, wie in
http://web.cs.swarthmore.edu/~meeden/cs81/s12/papers/MarkStevePaper.pdf
Um ca. F (S, A) Ich verwende eine neuronale Netzwerkstruktur wie die folgende:
- Aktivierung Sigmoid
- Eingänge, Anzahl der Eingänge + 1 für Aktionsneuronen (alle Eingänge skaliert 0-1)
- Ausgänge, einzelner Ausgang. Q-Wert
- N Anzahl der M ausgeblendeten Ebenen.
- Explorationsmethode zufällig 0 <rand () <propExplore
Bei jeder Lerniteration unter Verwendung der folgenden Formel
Ich berechne einen Q-Target-Wert und berechne dann einen Fehler mit
error = QTarget - LastQValueReturnedFromNN
und den Fehler über das neuronale Netzwerk weitergeben.
Frage 1: Bin ich auf dem richtigen Weg? Ich habe einige Artikel gesehen, die eine NN mit einem Ausgangsneuron für jede Aktion implementieren.
F2, Meine Belohnungsfunktion gibt eine Zahl zwischen -1 und 1 zurück. Ist es in Ordnung, eine Zahl zwischen -1 und 1 zurückzugeben, wenn die Aktivierungsfunktion sigmoid ist (0 1)?
F3: Nach meinem Verständnis dieser Methode sollte sie unter Quarantäne gestellt werden, um ein optimales Vorgehen zu finden. Wenn es für XOR trainiert, lernt es es manchmal nach 2k-Iterationen, manchmal wird es auch nach 40k-50k-Iterationen nicht lernen.