Ich lese gerade über maschinelles Lernen und überlege, wie ich es auf das Spielen von Connect Four anwenden kann .
Mein aktueller Versuch ist ein einfacher Klassifikator für mehrere Klassen, der ein Sigmoid-Funktionsmodell und die Ein-gegen-Alles-Methode verwendet.
Meiner Meinung nach müssen die Eingabemerkmale der Status (CD von Player 1, CD von Player 2, leer) der 7x6 = 42-Rasterfelder sein.
Die Ausgabe wäre die Nummer der Zeile, in die die Disc eingelegt werden soll. Da dies eine diskrete Zahl zwischen 1 und 7 ist, kann dies vermutlich als ein Problem der Klassifizierung mehrerer Klassen behandelt werden.
Aber wie erstelle ich Trainingsbeispiele, die für betreutes Lernen geeignet sind?
Das Hauptziel ist es, das Spiel zu gewinnen, aber das Ergebnis ist offensichtlich nicht bekannt, wenn man bis zur letzten Runde spielt. Wenn ich nur zwei Spieler, die nach dem Zufallsprinzip entscheiden, was zu tun ist, tausende Male gegeneinander spielen lasse, reicht es dann aus, einfach alle Spielzüge, die der Gewinner einer Spielrunde gemacht hat, als Trainingsbeispiele zu nehmen? Oder muss ich das ganz anders machen?
Bearbeiten: Wie in den Kommentaren vorgeschlagen, habe ich ein wenig über das Lernen von Bestärkungen gelesen. Soweit ich weiß, sollte Q-Learning den Trick machen, dh ich muss eine Funktion Q des aktuellen Zustands und die zu ergreifende Aktion approximieren, um die maximale kumulative Belohnung zu sein, die in diesem Zustand beginnt. Dann müsste in jedem Schritt die Aktion ausgewählt werden, die den Maximalwert von Q ergibt. Dieses Spiel hat jedoch viel zu viele Zustände, um dies z. B. als Nachschlagetabelle durchzuführen. Was ist also ein effektiver Weg, um diese Q-Funktion zu modellieren?