Ich habe in letzter Zeit viel über TD-Gammon gelesen, als ich in einem Videospiel, das ich mache, Optionen für KI erkunde. Das Videospiel ist eine rundenbasierte Positionsart, dh die Position einer "Einheit" oder eines Spielstücks wirkt sich stark auf die Nützlichkeit in diesem Brettzustand aus.
Um mich darauf vorzubereiten, hielt ich es für ratsam, zuerst ein neuronales Netzwerk für einige verschiedene Spiele zu implementieren.
Die Idee, die mir gefällt, besteht darin, den Board-Status für das Neuronale Netzwerk mit einem einzelnen Ausgangsneuron zu codieren, das diesen Board-Zuständen im Vergleich zu anderen Board-Zuständen eine relative Stärke verleiht. So wie ich es verstehe, hat TD-Gammon so funktioniert.
Wenn ich mir jedoch den Code und die Beispiele / Tutorials anderer Leute anschaue, scheint es große Unterschiede in der Art und Weise zu geben, wie sie den Board-Status darstellen. Sogar für etwas so Einfaches wie Tic-Tac-Toe.
Damit; speziell für Tic-Tac-Toe, was ist eine bessere, oder was ist die richtige Darstellung für den Board-Status? Ich habe gesehen:
- 9 Eingangsneuronen, eine für jedes Quadrat. Ein
0
Hinweis auf einen freien Platz,-1
den Gegner und sich1
selbst. - 9 Eingangsneuronen, aber mit unterschiedlichen Werten wie
0
für den Gegner,0.5
kostenlos und1
für sich selbst? - Könnten Sie größere Werte verwenden? LIke
0
,1
und2
? - 27 Eingangsneuronen. Die ersten 3 sind Quadrat 1, die nächsten 3 sind Quadrat 2 usw. Jedes Neuron ist
1
oder0
. Der erste der Dreiergruppen gibt an, ob dieses Quadrat frei ist oder nicht. Die zweite zeigt an, ob das Feld von Ihrem Gegner besetzt ist oder nicht. Am Ende wird nur eines von 3 Neuronen ein haben1
, die anderen beiden werden ein haben0
. - 18 Eingangsneuronen. Das erste ist
1
für den X-Spieler, das zweite1
für den O-Spieler und beide0
für ein Leerzeichen
Dann; Wie würden Sie dies darstellen, wenn Sie in Spiele verzweigen, in denen die spezifischen Fähigkeiten der Figuren ins Spiel kommen, wie im Schach?
Wäre es so einfach, höhere Eingabewerte für wertvollere Stücke zu verwenden? Dh -20
für eine gegnerische Königin und +20
für deine eigene Königin? Oder benötigen Sie etwas Komplexeres, bei dem Sie für jedes Feld mehr als 10 Werte definieren, einen für jede Kombination aus Einheitentyp und Spieler?