Machine Learning Algorithmen werden immer besser und übertreffen in manchen Domänen die menschlichen Fähigkeiten, so auch im Brettspiel Schach. Aus diesem Grund besteht berechtigtes Interesse, das Spielverhalten von Schachgroßmeistern zu simulieren und durch das Training mit personifizierten Schach-Engines die Spielleistung von Schachspielern zu verbessern.
Dazu wird in dieser Arbeit ein erster Ansatz zur Entwicklung einer Schach-Engine auf Basis von erzeugenden gegnerischen Netzwerken erarbeitet, die das Spielverhalten von Schachgroßmeistern mit Berücksichtigung von Methoden der Zeitreihenanalyse und -vorhersage simulieren kann. Trainiert wird diese Engine mit einer umfangreichen Spieldokumentation eines Schachgroßmeisters und es wird versucht, mit einem Ansatz des unüberwachten Lernens die Muster in dem Spielverhalten zu erlernen, um es anschließend simulieren zu können. Dazu werden die Schachbrettrepräsentationen in die Form einer Zeitreihe überführt, verschiedene Datenformate und mögliche Architekturen miteinander verglichen und bewertet, um ein Schachspiel in der Spielweise von Magnus Carlsen als Zeitreihe mit 45 Spielzügen bestmöglich simulieren zu können.
Abbildung 1 beschreibt die drei Bestandteile der Arbeit. Zum einen wurden verschiedene Verfahren und Formate untersucht, um die beste Repräsentation des Schachbretts zu erarbeiten. Die Kodierung der einzelnen Figuren und der unbesetzten Spielfelder der Schachbrettrepräsentationen mittels One-Hot Vektoren hat zu den besten Ergebnissen geführt. Eine Schachbrettrepräsentation wird nach der Umformung durch einen 832-stelligen Vektor bestehend aus Nullen und Einsen repräsentiert. Zum anderen wurden im Verlauf der Arbeit vier unterschiedliche Versionen der GAN-Architektur bestehend aus drei verschiedenen mehrschichtigen Netzwerktypen miteinander verglichen. Als die vielversprechendste Architektur hat sich die Kombination aus einem LSTM-Generator und LSTM-Diskriminator herausgestellt, mit der die ersten sieben bis zehn Spielzüge der generierten Zeitreihe zufriedenstellend erkannt werden konnten.
Je weiter Schachpartien voranschreiten, desto einzigartiger werden die Konstellationen der Spielfiguren. Im Trainingsprozess versucht der Generator, die Wahrscheinlichkeitsverteilung der realen Daten so gut wie möglich zu erlernen, um den Diskriminator dazu zu bewegen, die generierten Daten als echt zu klassifizieren. Dieses Training führt dazu, dass der Generator realistisch und in einer höheren Qualität Daten generieren kann, die oft in den originalen Daten auftreten, wie bei den ersten Spielzügen der Partien. Die Einzigartigkeit der fortlaufenden Repräsentationen führt dazu, dass der Generator diese Daten nicht zuverlässig simulieren kann und somit Fehler in den generierten Zeitreihen auftreten. Allerdings lässt sich festhalten, dass die Openings und ersten Spielzüge von Magnus Carlsen, die in Form einer Zeitreihe simuliert und anschließend dekodiert wurden, sich trotz der Verwendung einer simplen mehrschichtigen Architektur gut erkennen lassen. Dazu ist ein Beispiel in Abbildung 2 zu sehen. Auf der linken Seite ist der originale Spielzug von Magnus Carlsen dargestellt und auf der rechten Seite die generierte Zeitreihe. Dieses Beispiel zeigt, dass die ersten Züge von Magnus Carlsen, der in diesem Beispiel die weißen Figuren spielt, gut dargestellt werden. Allerdings treten bei den Zeitreihen Fehler auf, die dazu führen, dass manche Spielfiguren nicht richtig dargestellt und somit Spielzüge nicht richtig erkannt werden können.
Das entwickelte Modell gilt es in anschließenden Arbeiten zu verbessern, indem andere Datenformate und komplexere Architekturen getestet werden. Außerdem müssen die Spielzüge einzeln bewertet und vorhergesagt werden können, damit die Funktionalität der regulären Schach-Engines erfüllt wird.
Studierender | Paul Fuhrmann | ||
Semester | Wintersemester 21/22 | ||
Studiengang | Internet of Things - Digitale Automation | ||
Art der Arbeit | Abschlussarbeit Bachelor |
Sie verlassen die offizielle Website der Hochschule Trier