Netzwerkarchitektur für Trumpfquartett-KI
Posted: Thu 1. May 2014, 14:36
Hallo MemBrain-Community,
ich bin ziemlich neu in der Thematik neuronaler Netze und bin bei meiner Recherche auf MemBrain als ein dafür passender, weitgehend intuitiv zu bedienender Simulator gestoßen. Vielen Dank, für dieses unkomplizierte, aber mächtige Werkzeug! Zur Einarbeitung stellte ich mir die Aufgabe, eine künstliche Intelligenz für das bekannte Trumpf-Quartett (Andere Bezeichnungen: Supertrumpf; Leben und Tod; etc...) zu entwerfen. Für dieses existieren verschiedene Kartendecks mit je 32 Karten, die man überall erwerben kann. Falls jemand die Regeln nicht kennt, hier ein grober Umriss: http://de.wikipedia.org/wiki/Supertrumpf
Ich hätte mein neuronales Netzwerk gerne in verschiedenen Etappen konstruiert:
Etappe 1:
Das neuronale Netzwerk kommt nur dann zum Einsatz, wenn der künstliche Spieler "am Zug" ist, da er andernfalls laut Regelwerk sowieso keine Möglichkeit hat, den Spielverlauf zu beeinflussen. Bei einem Zug werden dem neuronalen Netzwerk die Eigenschaftswerte der aktuellen Trumpfkarte vorgelegt. Es entscheidet dann lediglich, welcher dieser Werte angesagt wird. Lernen sollte das neuronale Netzwerk dabei "durch Erfahrung". Bei jeder Spielaktion bekommt es das "Feedback", ob der Zug erfolgreich war, d.h. eine Karte des Gegners gewonnen wurde, oder aber verlustreich, da eine Karte verloren wurde und der Spielzug abgegeben wurde. Ggf. könnte man noch die Pattoption als Feedback einführen. Lernen könnte das Netzwerk sehr schnell, wenn es gegen sich selbst spielt, also selbst sowohl die Züge des einen Spielers als auch die des anderen bestimmt. Die Lernregel müsste die Optimierung des Feedbacks als Ziel besitzen.
Ich vermute, dass ein solches neuronales Netzwerk nicht allzu schwer zu erstellen sein dürfte. Aber welche Lernregel muss ich anwenden? Wie funktioniert diese? Mein intuitiver Entwurf eines neuronalen Netzwerkes sähe nun so aus:
- 5 Inputneuronen für die 5 Eigenschaftswerte, mit einer Normalisierung auf eine Skala von 0 bis 1 (0 = Kleinster vorkommender Wert; 1 = Größter vorkommender Wert)
- 5 Hiddenneuronen, jeder mit allen Inputneuronen verbunden.
- Hier ggf. noch eine Schicht genauso wie die erste. Macht das Sinn oder nicht?
- 1 Output-Neuron, der mit allen 5 Hiddenneuronen der vorherigen Schicht verbunden ist und 1...5 zeigt je nach ausgewählter Eigenschaft.
Ist solch ein Entwurf denkbar?
Etappe 2:
Erst einmal wäre ich glücklich, wenn ich mit Etappe 1 Erfolg haben würde. Dann habe ich mir als Ausblick gedacht, die Intelligenz des Netzes noch weiter zu verbessern, indem sich das Netz "merkt", welche Karten in der Vergangenheit von wem ausgespielt wurden und wer diese bekam. Dann kennt die KI unter Umständen die Werte schon und kann darauf besser eingehen. Ich denke, dass hier irgendwie eine Rückkopplung der Informationen aus bereits gespielten Karten vonnöten wäre. Jeglicher Entwurf hierzu fehlt mir noch. Aber wie schon geschrieben, liegt mein Hauptaugenmerk zunächst auf Etappe 1.
Für jegliche Hilfe bin ich sehr dankbar!
Gruß
sandroid
ich bin ziemlich neu in der Thematik neuronaler Netze und bin bei meiner Recherche auf MemBrain als ein dafür passender, weitgehend intuitiv zu bedienender Simulator gestoßen. Vielen Dank, für dieses unkomplizierte, aber mächtige Werkzeug! Zur Einarbeitung stellte ich mir die Aufgabe, eine künstliche Intelligenz für das bekannte Trumpf-Quartett (Andere Bezeichnungen: Supertrumpf; Leben und Tod; etc...) zu entwerfen. Für dieses existieren verschiedene Kartendecks mit je 32 Karten, die man überall erwerben kann. Falls jemand die Regeln nicht kennt, hier ein grober Umriss: http://de.wikipedia.org/wiki/Supertrumpf
Ich hätte mein neuronales Netzwerk gerne in verschiedenen Etappen konstruiert:
Etappe 1:
Das neuronale Netzwerk kommt nur dann zum Einsatz, wenn der künstliche Spieler "am Zug" ist, da er andernfalls laut Regelwerk sowieso keine Möglichkeit hat, den Spielverlauf zu beeinflussen. Bei einem Zug werden dem neuronalen Netzwerk die Eigenschaftswerte der aktuellen Trumpfkarte vorgelegt. Es entscheidet dann lediglich, welcher dieser Werte angesagt wird. Lernen sollte das neuronale Netzwerk dabei "durch Erfahrung". Bei jeder Spielaktion bekommt es das "Feedback", ob der Zug erfolgreich war, d.h. eine Karte des Gegners gewonnen wurde, oder aber verlustreich, da eine Karte verloren wurde und der Spielzug abgegeben wurde. Ggf. könnte man noch die Pattoption als Feedback einführen. Lernen könnte das Netzwerk sehr schnell, wenn es gegen sich selbst spielt, also selbst sowohl die Züge des einen Spielers als auch die des anderen bestimmt. Die Lernregel müsste die Optimierung des Feedbacks als Ziel besitzen.
Ich vermute, dass ein solches neuronales Netzwerk nicht allzu schwer zu erstellen sein dürfte. Aber welche Lernregel muss ich anwenden? Wie funktioniert diese? Mein intuitiver Entwurf eines neuronalen Netzwerkes sähe nun so aus:
- 5 Inputneuronen für die 5 Eigenschaftswerte, mit einer Normalisierung auf eine Skala von 0 bis 1 (0 = Kleinster vorkommender Wert; 1 = Größter vorkommender Wert)
- 5 Hiddenneuronen, jeder mit allen Inputneuronen verbunden.
- Hier ggf. noch eine Schicht genauso wie die erste. Macht das Sinn oder nicht?
- 1 Output-Neuron, der mit allen 5 Hiddenneuronen der vorherigen Schicht verbunden ist und 1...5 zeigt je nach ausgewählter Eigenschaft.
Ist solch ein Entwurf denkbar?
Etappe 2:
Erst einmal wäre ich glücklich, wenn ich mit Etappe 1 Erfolg haben würde. Dann habe ich mir als Ausblick gedacht, die Intelligenz des Netzes noch weiter zu verbessern, indem sich das Netz "merkt", welche Karten in der Vergangenheit von wem ausgespielt wurden und wer diese bekam. Dann kennt die KI unter Umständen die Werte schon und kann darauf besser eingehen. Ich denke, dass hier irgendwie eine Rückkopplung der Informationen aus bereits gespielten Karten vonnöten wäre. Jeglicher Entwurf hierzu fehlt mir noch. Aber wie schon geschrieben, liegt mein Hauptaugenmerk zunächst auf Etappe 1.
Für jegliche Hilfe bin ich sehr dankbar!
Gruß
sandroid