Ich versuche, ein Ratespiel zu implementieren, bei dem der Benutzer Coinflip und neuronales Netzwerk versucht, seine Vermutung vorherzusagen (ohne natürlich Rückblick). Das Spiel soll in Echtzeit sein, es passt sich dem Benutzer an. Ich habe synaptische js verwendet, wie es solide schien.
Aber ich scheine nicht in der Lage zu sein, einen Stolperstein zu überwinden: Das neuronale Netzwerk bleibt mit seinen Vermutungen ständig zurück. Zum Beispiel, wenn der Benutzer
drückt %Vor%Es erkennt zwar das Muster, ist aber durch zwei Bewegungen wie
zurückgefallen %Vor%Ich habe unzählige Strategien ausprobiert:
Architektur:
Ich habe 10-30 Neuronen in den versteckten Schichten und der Vielfalt der Trainingsepochen probiert, aber ich stoße ständig auf das gleiche Problem!
Ich poste den Bucklescript-Code, mit dem ich das mache.
Was mache ich falsch? Oder meine Erwartungen sind einfach unangemessen, um Benutzerraten in Echtzeit vorherzusagen? Gibt es alternative Algorithmen?
%Vor% Das Problem in Ihrem Code ist, dass Ihr Netzwerk rund trainiert ist. Anstatt 1 > 2 > 3 RESET 1 > 2 > 3
zu trainieren, trainierst du das Netzwerk 1 > 2 > 3 > 1 > 2 > 3
. Dies macht Ihr Netzwerk glauben, dass der Wert nach 3
1
sein sollte.
Zweitens gibt es keinen Grund, 2 Ausgangsneuronen zu verwenden. Wenn eins genug ist, entspricht die Ausgabe 1
den Köpfen, die Ausgabe 0
entspricht den Tails. Wir werden nur die Ausgabe runden.
Anstatt Synaptic zu verwenden, habe ich Neataptic in diesem Code verwendet - es ist eine verbesserte Version von Synaptic, die Funktionalität und genetische Algorithmen hinzufügt.
Der Code ist ziemlich einfach. Es ein wenig veräppelnd, sieht so aus:
%Vor% Der Schlüssel zu diesem Code ist clear: true
. Dies stellt im Grunde sicher, dass das Netzwerk weiß, dass es vom ersten Trainingssample startet und nicht vom letzten Trainingssample fortfährt. Die Größe des LSTM, die Iterationszahl und die Lernrate sind vollständig anpassbar.
Bitte beachten Sie, dass das Netzwerk etwa zweimal das Muster benötigt, um es zu lernen.
Tags und Links neural-network lstm recurrent-neural-network