Sowas wie die aktuellen Potodds (zu callende bet / zu callende bet + potgröße) schickt man ja auch als reelen Input in [0,1] durch das Netz.
Würde das funktionieren? Falls nein warum nicht? Kann mir das irgendwie gerade nicht vorstellen...
Dies kommt ganz auf die Art des Netzwerkes, die Art der Neuronen und die Topologie des Netzwerkes an. Wenn du zuwenig Neuronen in der zweiten Schicht wählst geht es natürlich nicht. Du verlagerst also das Problem von der ersten Schicht in die zweite Schicht. Wenn du es dir schnell mal aufmahlst kannst du leicht sehen das mindestens 2 Neuronen in der zweiten Schicht bei Binärneuronen (Heavyside Funktion) nötig sind. Die Gewichte und schwellwerte musst du folgendermaßen (im Modell) einstellen.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
InputNeuron
Delta = 0
/ \
g1 / \ g2
Neuron2_1 Neuron2_2
Delta = 1 Delta = 0.5
|
wobei g1 und g2 = 1. Damit ergibt sich nach einfachem Schwellwertschema:
Input (1) * 1 >= 1 => TRUE (Neuron 2_1 feuert)
Input (0.5) * 1 >= 0.5 => TRUE (Neuron 2_2 feuert)
Input (0) * 1 = 0 (Kein Neuron feuert, Schwellwerte sind zu hoch)
somit kannst du alles codieren.
Nächste Frage: Wie kann man das NN eigentlich testen?
In der gleichen Methode wie du es anlernst: durch Positiv- und Negativbeispiele der erwarteten Ausgaben.
Im übrigen habe ich ein ähnliches Spiel (Schach) in meinem Studium auch mal mit neuronalen Netzen ausprobiert. Die NN wurden durch verschiedene Leute in Form von Workunits errechnet. Dabei hat sich gezeigt das das gewählte Netz (Feedforward mit Error-Back-Propagation und Zeitbasierten Anspassungen) nicht geeigenet war. Gerade für Poker sind aber eher andere Netze geeignet, da hier der Zufall eine Rolle spielt (Karte geben/zeihen)