2017-12-26 8 views
1

ich mit Verstärkung Lernen eine KI zu tun, und ich bin immer seltsame Ergebnisse, zeigt der Verlust wie folgt aus: Tensorflow Verlust: https://imgur.com/a/TwacmTensorflow Verlust bereits niedrig ist

Und während es Training ist, nach jedem Spiel, es ist gegen einen zufälligen Spieler und nach einem Spieler mit einer gewichteten Matrix zu spielen, aber es geht rauf und runter: Ergebnisse: https://imgur.com/a/iGuu2

Grundsätzlich mache ich eine Verstärkung Lernagenten, der lernt, Othello zu spielen. Verwenden Sie E-Greedy, Erleben Sie Replay und tiefe Netzwerke mit Keras über Tensorflow. Versuchte verschiedene Architekturen wie Sigmoid, Reluous und in den oben gezeigten Bildern, tanh. Alle haben einen ähnlichen Verlust, aber die Ergebnisse sind ein bisschen anders. In diesem Beispiel lernt der Agent von 100k professionellen Spielen. Hier ist die Architektur, die mit Standard-Lernrate als 0,005:

model.add(Dense(units=200,activation='tanh',input_shape=(64,))) 
model.add(Dense(units=150,activation='tanh')) 
model.add(Dense(units=100,activation='tanh')) 
model.add(Dense(units=64,activation='tanh')) 
optimizer = Adam(lr=lr, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0) 
model.compile(loss=LOSS,optimizer=optimizer) 

Originalcode: https://github.com/JordiMD92/thellia/tree/keras

Also, warum bekomme ich diese Ergebnisse? Jetzt ist meine Eingabe 64 Neuronen (8 * 8 Matrix), mit 0 void Quadrat, 1 schwarzes Quadrat und -1 weißes Quadrat. Ist es schlecht negative Eingaben zu verwenden?

Antwort

1

Es könnte das Problem Ihrer Aktivierungsfunktion sein. Versuchen Sie, statt tanh Relust zu verwenden, und wenn Sie das Deep-Q-Learning verwenden, benötigen Sie möglicherweise keine Aktivierungsfunktion oder kümmern sich um den Optimierer, der die Gewichte zurücksetzt.

+0

Ich werde das versuchen. Glauben Sie, dass die Anzahl der Schichten und Neuronen für dieses Problem korrekt erscheint? – user2335427

+0

@ user2335427 Ich denke, es ist Ihr Modell mit Ihrem Design. Cuz, die Neuronen werden die Informationen jeder Eingabedaten für das tiefe q-Lernen speichern, so dass Sie alle möglichen Zustände berücksichtigen könnten. Ich sitze immer verschiedene Arten von Informationen in verschiedenen Schichten. Beispielsweise können Sie Zustände in einer Ebene und Aktionen in einer anderen Ebene speichern. – hdD

+0

Ich habe Keras los und jetzt benutze ich nur Tensorflow. Implementiert das Double DQN und versucht mit verschiedenen Activate-Funktionen und nun geht es Relust gut. Vielen Dank. Über die letzte Frage: ¿Ist es schlecht, negative Eingänge zu verwenden? – user2335427

Verwandte Themen