"Richtige" Netzarchitektur für das Spiel KNIFFEL ?
Posted: Tue 25. Oct 2011, 21:49
HeyHo!
ich hatte schon vor ca. 3 jahren versucht das spiel kniffel mit einem NN auf basis von
membrain abzubilden. damals hatte lediglich die mustererkennung gut funktioniert. bei der
festlegung der zu spielenden strategie war das netz nicht besonders erfolgreich und
generalisierung hat erst recht nicht funktioniert. nun starte ich den 2. versuch, da ich der
meinung bin, dass KNIFFEL mit einem NN lösbar sein MUSS.
Ich habe das Spiel in Excel programmiert und kann dort beim spielen trainigsdaten erzeugen.
(allerdings wird man wohl viele daten benötigen, da die möglichen permutationen ja nicht
unerheblich sind.) auch kann ich später den pc "unattended" spielen lassen und dabei
statistiken über die spielstärke generieren. das würde später also zur bewertung der
NN-qualität von vorteil sein.
nun aber zum problem:
ich möchte dem netz folgende INPUTS übergeben:
w1 -> würfel 1 -> werte 1 bis 6
w2 -> würfel 2 -> werte 1 bis 6
w3 -> würfel 3 -> werte 1 bis 6
w4 -> würfel 4 -> werte 1 bis 6
w5 -> würfel 5 -> werte 1 bis 6
runde -> werte 1 bis 3
111 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 1 bis 5 (Punkte)
222 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 2 bis 10 (Punkte)
333 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 3 bis 15 (Punkte)
444 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 4 bis 20 (Punkte)
555 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 5 bis 25 (Punkte)
666 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 6 bis 30 (Punkte)
3erP -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
4erP -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
FH -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
klS -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
grS -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
chance -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
kniffel -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
HINWEIS:
--------
bei 111 bis 666 wollte ich die Punkte übergeben, da diese darüber entscheiden, ob man den
BONUS (+35 Punkte) noch bekommen kann und dies für die strategie wichtig ist. ab dem
3er-Pasch (3erP) sind die punkte meines erachtens nicht mehr wichtig.
FRAGE:
======
was haltet Ihr davon?
OUTPUTS:
=========
strategie -> werte: 1 bis 13 (für die 13 strategien 111 bis kniffel)
setzen - es soll direkt gesetzt werden! -> werte: 0 oder 1
1er - anzahl entnommener 1er würfel -> werte: 1 bis 5
2er - anzahl entnommener 2er würfel -> werte: 1 bis 5
3er - anzahl entnommener 3er würfel -> werte: 1 bis 5
4er - anzahl entnommener 4er würfel -> werte: 1 bis 5
5er - anzahl entnommener 5er würfel -> werte: 1 bis 5
6er - anzahl entnommener 6er würfel -> werte: 1 bis 5
HINWEISE:
---------
Bei den 1er bis 6er bin ich mir unsicher. sie geben an, welche würfel der spieler aus dem
würfelbecher entnimmt. dies KANN relevant sein, wenn aussergewöhnliche spielsituationen
autauchen. ansonsten kann man das aber auch konventionell implementieren und es wird wohl zu
98% sinnvolle ergebnisse erzielen. aber wenn das NN mit den vielen Outputs klarkommen würde,
dann wäre die angabe, welche würfel entnommen werden sollen, natürlich super.
zum output-neuron "setzen":
wenn zufällig im ersten oder zweiten wurf schon ein große straße oder fullhouse geworfen
wird, dann sollte das NN ggf. entscheiden, dass die punkte direkt gesetzt werden sollen, ohne
noch ein drittes mal zu würfeln.
FRAGE:
======
bei dem wichtigsten neuron "strategie" bin ich mir unsicher, ob man EIN neuron mit den werten
1 bis 13 nehmen sollte, oder besser 13 einzelne neuronen, die dann jeweils den wert 1 oder 0
ausgeben?
Was denkt Ihr?
UND NUN ZUR GRETCHENFRAGE:
--------------------------
Welche Netzarchitektur benötigt man zwischen input und output?
ich hatte damals einiges ausprobiert und jetzt auch schon wieder einige tests gemacht und bin
mir unschlüssig wieviele neuronen man in welcher konstellation benötigt, um das problem zu
lösen.....??
hier ein auszug aus den trainigsdaten:
http://freigabe.philweb.de/NN_Kniffel/2 ... upload.xls
ich freue mich auf anregungen!!
ciao
phil
ich hatte schon vor ca. 3 jahren versucht das spiel kniffel mit einem NN auf basis von
membrain abzubilden. damals hatte lediglich die mustererkennung gut funktioniert. bei der
festlegung der zu spielenden strategie war das netz nicht besonders erfolgreich und
generalisierung hat erst recht nicht funktioniert. nun starte ich den 2. versuch, da ich der
meinung bin, dass KNIFFEL mit einem NN lösbar sein MUSS.
Ich habe das Spiel in Excel programmiert und kann dort beim spielen trainigsdaten erzeugen.
(allerdings wird man wohl viele daten benötigen, da die möglichen permutationen ja nicht
unerheblich sind.) auch kann ich später den pc "unattended" spielen lassen und dabei
statistiken über die spielstärke generieren. das würde später also zur bewertung der
NN-qualität von vorteil sein.
nun aber zum problem:
ich möchte dem netz folgende INPUTS übergeben:
w1 -> würfel 1 -> werte 1 bis 6
w2 -> würfel 2 -> werte 1 bis 6
w3 -> würfel 3 -> werte 1 bis 6
w4 -> würfel 4 -> werte 1 bis 6
w5 -> würfel 5 -> werte 1 bis 6
runde -> werte 1 bis 3
111 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 1 bis 5 (Punkte)
222 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 2 bis 10 (Punkte)
333 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 3 bis 15 (Punkte)
444 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 4 bis 20 (Punkte)
555 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 5 bis 25 (Punkte)
666 -> werte: -1 (feld spielbar) oder 0 (feld wurde gestrichen) oder 6 bis 30 (Punkte)
3erP -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
4erP -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
FH -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
klS -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
grS -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
chance -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
kniffel -> werte: -1 (feld spielbar) oder 0 (feld nicht mehr spielbar)
HINWEIS:
--------
bei 111 bis 666 wollte ich die Punkte übergeben, da diese darüber entscheiden, ob man den
BONUS (+35 Punkte) noch bekommen kann und dies für die strategie wichtig ist. ab dem
3er-Pasch (3erP) sind die punkte meines erachtens nicht mehr wichtig.
FRAGE:
======
was haltet Ihr davon?
OUTPUTS:
=========
strategie -> werte: 1 bis 13 (für die 13 strategien 111 bis kniffel)
setzen - es soll direkt gesetzt werden! -> werte: 0 oder 1
1er - anzahl entnommener 1er würfel -> werte: 1 bis 5
2er - anzahl entnommener 2er würfel -> werte: 1 bis 5
3er - anzahl entnommener 3er würfel -> werte: 1 bis 5
4er - anzahl entnommener 4er würfel -> werte: 1 bis 5
5er - anzahl entnommener 5er würfel -> werte: 1 bis 5
6er - anzahl entnommener 6er würfel -> werte: 1 bis 5
HINWEISE:
---------
Bei den 1er bis 6er bin ich mir unsicher. sie geben an, welche würfel der spieler aus dem
würfelbecher entnimmt. dies KANN relevant sein, wenn aussergewöhnliche spielsituationen
autauchen. ansonsten kann man das aber auch konventionell implementieren und es wird wohl zu
98% sinnvolle ergebnisse erzielen. aber wenn das NN mit den vielen Outputs klarkommen würde,
dann wäre die angabe, welche würfel entnommen werden sollen, natürlich super.
zum output-neuron "setzen":
wenn zufällig im ersten oder zweiten wurf schon ein große straße oder fullhouse geworfen
wird, dann sollte das NN ggf. entscheiden, dass die punkte direkt gesetzt werden sollen, ohne
noch ein drittes mal zu würfeln.
FRAGE:
======
bei dem wichtigsten neuron "strategie" bin ich mir unsicher, ob man EIN neuron mit den werten
1 bis 13 nehmen sollte, oder besser 13 einzelne neuronen, die dann jeweils den wert 1 oder 0
ausgeben?
Was denkt Ihr?
UND NUN ZUR GRETCHENFRAGE:
--------------------------
Welche Netzarchitektur benötigt man zwischen input und output?
ich hatte damals einiges ausprobiert und jetzt auch schon wieder einige tests gemacht und bin
mir unschlüssig wieviele neuronen man in welcher konstellation benötigt, um das problem zu
lösen.....??
hier ein auszug aus den trainigsdaten:
http://freigabe.philweb.de/NN_Kniffel/2 ... upload.xls
ich freue mich auf anregungen!!
ciao
phil