Blog

Keine Regeln, nur Daten: Wie meine Schachmaschine das Spiel von selbst lernte

Dennis Vink

Dennis Vink

Aktualisiert Oktober 14, 2025
6 Minuten

Es heißt, Sie sollten nie etwas bauen, das Sie in Ihrem eigenen Spiel übertrifft. Natürlich habe ich diesen Rat ignoriert.

Dies ist die Geschichte, wie ich Knightmare entwickelt habe, eine Deep-Learning-gestützte Schachengine, die Daten von Tausenden von menschlichen und maschinellen Partien, ein benutzerdefiniertes neuronales Netzwerk und eine Prise Monte-Carlo-Baumsuche nutzt und was passiert, wenn man maschinelles Lernen und eine Menge FEN-Strings mischt.

[caption id="attachment_88470" align="alignnone" width="307"]datengesteuerte Schachengine datengesteuerte Schachengine[/caption]

Quellcode

TL;DR und wollen Sie direkt zum Quellcode gehen? Sehen Sie sich den Quellcode von Knightmare auf Github an.

Sie können Knightmare in Ihrem Browser spielen. Es ist quelloffen, schnell genug, um in Sekundenschnelle zu reagieren, und demütigend genug, um Sie an Ihrem ELO zweifeln zu lassen.

Spielen auf HuggingFace Auf Cloud Run spielen

Geschichte

Ich liebe Schach. Leider liebt mich das Schach nicht zurück. Damals lag mein ELO bei ungefähr 1700 und ich spielte auf Vereinsebene im Schaakclub Utrecht und beschäftigte mich mit Computerschach, bastelte an Crafty und betrieb Schachbots in verschiedenen Stärken. Andere Hobbys nahmen überhand und wenn ich heute Schach spiele, dann nie klassisch (woher nehmen die Leute die Zeit?!), sondern ausschließlich Bullet. Ich werde ständig von Bullet-Spielern mit 1200 ELO regelrecht abgeschlachtet. Ich habe mein gesamtes Eröffnungsrepertoire vergessen und mein Selbstvertrauen war am Boden. Anstatt also meine Taktik zu verbessern oder Eröffnungen zu studieren wie ein normaler Mensch, tat ich, was jeder Technikfreak mit fragwürdigen Prioritäten tun würde: Ich habe einer KI beigebracht, besser Schach zu spielen als ich es je könnte.

Das Projekt hatte zwei Ziele:

  1. Bauen Sie eine Schachengine, die Position und Strategie versteht.
  2. Machen Sie es im Browser spielbar für jeden, der mutig genug ist.

Die Datendiät: 145.000 Spiele später

Meine Trainingsdaten stammen aus zwei Quellen:

  • 100.000 menschliche Partien von Chess.com, die glorreiche Fehler und brillante Züge von Spielern mit einer Wertungszahl von 1800 und höher zeigen.
  • 45.000 Partien Motor gegen Motor, kommentiert mit Stockfishs Wahl des besten Zuges in jeder Stellung.

Diese Datensätze wurden in einem Format kombiniert, das das neuronale Netzwerk verdauen konnte: eine riesige Sammlung von Schachpositionen, kodiert als FEN-Strings, jeweils gepaart mit dem entsprechenden besten Zug.

Für die menschlichen Partien habe ich nicht nur die gespielten Züge verwendet. Ich habe den besten Zug für jede einzelne Stellung mit Stockfish neu berechnet. Ja, das hat eine Weile gedauert. Und ja, mein CPU-Lüfter hat mir immer noch nicht verziehen.

FEN-omenal Preprocessing

Jede Schachposition wurde in einen Tensor umgewandelt, wobei ein eigenes, von AlphaZero inspiriertes Kodierungsschema verwendet wurde:

  • 17 Flugzeuge, jedes 8x8:
    • 12 Flugzeuge für Figuren (6 pro Farbe)
    • 4 Flugzeuge für Rochade-Rechte
    • 1 Flugzeug für en passant

Jede Stellung ist aus der Perspektive des aktuellen Spielers ausgerichtet. Weiß sieht das Brett immer von unten, auch wenn Schwarz am Zug ist. Dadurch kann das Modell symmetrische Strategien von beiden Seiten besser lernen.

Das Gehirn: Ein zweiköpfiges neuronales Monster

Das neuronale Netzwerk von Knightmare ist ein tiefes Faltungsmodell mit 12 Restblöcke. Inspiriert von der Architektur von AlphaZero, hat es zwei Ausgänge:

  • Policy Head - sagt den besten Zug aus einem Pool von legalen Zügen voraus.
  • Value Head - sagt den wahrscheinlichen Ausgang des Spiels (Sieg, Unentschieden, Niederlage) aus der aktuellen Position heraus voraus.

Dieser zweigleisige Ansatz ermöglicht es dem Modell, nicht nur taktische Züge, sondern auch längerfristige Positionsvorteile abzuwägen

Die Seele: Monte Carlo Baumsuche

Ich habe das neuronale Netzwerk in ein Monte Carlo Baumsuche (MCTS) Motor. Und so funktioniert es:

  1. Erweitern: Das Modell wertet die aktuelle Position aus und vergibt Prioritätswahrscheinlichkeiten für die 10 besten von der Engine vorhergesagten Züge
  2. Simulieren: MCTS erkundet zuerst die vielversprechendsten Züge, geleitet von diesen Wahrscheinlichkeiten.
  3. Backpropagate: Nach jeder Simulation wird das Ergebnis in den Baum zurückgeführt, um die Auswahl zukünftiger Züge zu verbessern.

Durch die Simulation von 1000 Spielen pro Zug vermeidet Knightmare kurzfristige Fallen und konzentriert sich auf das große Ganze, genau wie ein Mensch es tun würde.

Das Eröffnungsbuch: Weil auch KIs einen Spickzettel brauchen

Im frühen Spiel konsultiert Knightmare einen Eröffnungsbuch, eine handgefertigte Bibliothek mit ausgetretenen Schach-Eröffnungen. Wenn die Stellung mit einer im Buch übereinstimmt, spielt es von dort aus. Andernfalls greift es auf MCTS zurück.

Das Buch ist im JSON-Format gespeichert und mit vereinfachten FEN-Schlüsseln indiziert, die Tausende von bekannten Varianten abdecken.

Es spielbar machen: Das Frontend

Eine KI für das Schachspiel zu trainieren ist großartig. Andere gegen sie verlieren zu lassen? Noch besser. Knightmare wird mit einem vollständigen Web-Frontend, erstellt mit Schachplatz und Flask. Sie beginnen mit einer zufälligen Farbe, und alle Züge werden in PGN-Notation gespeichert, damit Sie sie später analysieren können. Es ist ein überraschend unterhaltsamer Weg, um zu lernen, was man in einer Schachpartie nicht tun sollte.

Trainieren Sie Ihren eigenen Rittermord

Knightmare ist nicht nur eine Engine, sondern auch ein Trainingsspielplatz. Wenn Sie Ihr eigenes Biest bauen wollen, ist die Trainingspipeline sofort einsatzbereit. Füttern Sie sie einfach mit Ihren eigenen Partien im FEN-Format zusammen mit Best-Move-Labels, verarbeiten Sie sie mit data_preparation.pyund beginnen Sie das Training mit train.py. Es unterstützt Checkpointing, Validierung und das automatische Speichern des besten Modells. Ganz gleich, ob Sie mit benutzerdefinierten Daten experimentieren, mehr über Data Science lernen möchten oder Stockfish mit seinen eigenen Waffen schlagen wollen, Knightmare ist Ihre leere Leinwand.

Gelernte Lektionen

Die Entwicklung einer KI ist keine Zauberei. Es ist Mathematik (und Rechnen)

Beim Training von Knightmare ging es nicht darum, zu hoffen, dass das Netzwerk Schach "lernen" würde. Es ging darum, die Regeln, die Daten und die Bewertungsmetriken genau genug zu kodieren, um ihm eine Chance zu geben.

Symmetrie ist wichtig

Die Ausrichtung des Brettes - immer zum POV des aktiven Spielers umzudrehen - hilft dem Netzwerk, sich viel effizienter zu verallgemeinern. Zuerst habe ich es ohne Umdrehen gelehrt und die Leistung von Weiß übertraf die Leistung von Schwarz um ein Vielfaches. Durch das Umdrehen habe ich nicht nur dieses Ungleichgewicht beseitigt, sondern auch die Vorhersagen im Allgemeinen verbessert.

Wertvolle Köpfe werden unterschätzt

Die Vorhersage des Ergebnisses einer Position gibt dem Modell einen strategischen Kontext, der bei der reinen Zugvorhersage fehlt.

Letzte Überlegungen

Was mich am meisten erstaunt hat, ist, dass Knightmare Schach spielen gelernt hat, ohne dass ihm jemals gesagt wurde, was Schach ist. Keine fest kodierten Regeln. Keine Konzepte wie "kontrolliere das Zentrum" oder "entwickle deine Figuren". Nur Rohdaten: Positionen und beste Züge. Daraus lernte es anzugreifen, zu verteidigen, zu handeln, zu verschanzen und zu opfern und entwickelte eine kohärente Strategie, indem es einfach die Ergebnisse optimierte. Es hat Schach nicht durch das Lesen von Büchern gelernt. Es lernte Schach, indem es Wahrscheinlichkeitsrechnung spielte. Und irgendwie wurde es ziemlich gut darin.

Ich kann es mit vorsichtigem Spiel schlagen, aber es bestraft meine Fehler gnadenlos. Es zeigt mir, wo ich zu vorsichtig spiele. Wo ich mich überanstrenge. Wo ich einen Tunnelblick habe. Es erlaubt mir, Züge zu überstürzen und mit Eröffnungen zu experimentieren, ohne dass mein EGO... oder mein ELO darunter leiden müssen. Und ganz ehrlich? Das war das Wertvollste von allem.

Verfasst von

Dennis Vink

Crafting digital leaders through innovative AI & cloud solutions. Empowering businesses with cutting-edge strategies for growth and transformation.

Contact

Let’s discuss how we can support your journey.