Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Mastermind

unregistriert

11

07.06.2011, 18:39

Indem du den vom NN vorhergesagten Outcome mit dem tatsächlichen Outcome vergleichst?

12

07.06.2011, 19:20

Ich könnte mir vielleicht noch einfach so anschauen, wie er allgemein Poker spielt und wenn mir dann auffällt, dass er AA preflop foldet, muss wohl irgendwas falsch laufen. Trotzdem brauche ich dazu Expertenwissen, was ja eigentlich nicht sein sollte, und dann erkenne ich auch nur grobe Fehler. Ich kann auch hier wieder manuell keine 100k Hände durchgehen und per Schreibtischtest überprüfen, was das NN macht.

Es gibt bestimmt freie Spieldatenbanken. Ich kenne es nur von einigen semiprofessionellen Internetspielern, die sich ihre Spiele aufnehmen und dann Wahrscheinlichkeiten für Handtypen nach einigen zig Spielen pro Spieler schätzen können. Es gibt bestimmt Tauschnetzwerke für solche Datenbanken. Vielleicht kann man dann das NN damit füttern. Da ihr das NN ja eh nur mit Zuständen füttert ist eine Kontinuität ja nicht wichtig. Vielleicht einfach das Netzwerk immer auf die Strategie des Gewinners eines Spiels trainieren. Bei ganz vielen Spielen könnte das ja vielleicht was bringen...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Chromanoid« (07.06.2011, 19:26)


koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

13

14.06.2011, 11:07

Zitat

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.

Zitat

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)

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »koschka« (14.06.2011, 11:19)


Werbeanzeige