Interaktiv · Reines JavaScript

Selbstlernendes Vier gewinnt

Ein AlphaZero im Taschenformat, von Grund auf geschrieben. Niemand hat ihm eine einzige Strategie beigebracht: Es lernt nur durch Spiele gegen sich selbst, und du kannst im Browser dabei zusehen. Dann versuche, es zu schlagen.

01

Spiel gegen es

Du bist Schwarz, es ist Blau. Die Balken über dem Brett zeigen sein Denken: Der blasse Balken ist sein Instinkt allein aus dem Netz, der kräftige Balken zeigt, wo seine Suche gelandet ist.

Instinkt Nach der Suche

Seine Einschätzung der Partie
Du gewinnstEs gewinnt

. Bei null spielt es rein nach Instinkt; jede Simulation schaut eine Variante tiefer in die Zukunft.

Sein Gehirn

02

Beim Lernen zusehen

Starte mit zufälligen Gewichten und lass es gegen sich selbst spielen. Alle 25 Partien wird es gegen drei feste Gegner getestet, mit 200 Simulationen pro Zug. Zufall wählt irgendeine gültige Spalte. Gierig gewinnt, wenn es kann, blockiert deinen Sieg, wenn es muss, und bevorzugt sonst die Mitte. Klassisches MCTS führt dieselbe Baumsuche aus, ebenfalls mit 200 Simulationen, bewertet Stellungen aber, indem es zufällige Partien zu Ende spielt, statt das Netz zu fragen. Zufall und Gierig fallen innert Minuten; klassisches MCTS ist der eigentliche Test. Stelle sein Gehirn oben auf «Dein Trainingslauf», um gegen das bisher Gelernte zu spielen.

Partien gegen sich selbst0
Gesehene Stellungen0
Partien / min-
gegen klassisches MCTS-
Live-Self-Play

Hier erscheinen die Partien gegen sich selbst

Punkte gegen feste Gegner · geglättet
gegen Zufall gegen Gierig gegen klassisches MCTS
Trainings-Loss
Policy Value
03

So funktioniert es

AlphaZero kombiniert ein neuronales Netz mit Monte-Carlo-Baumsuche und trainiert das Netz auf Partien, die es gegen sich selbst spielt. Diese Seite setzt eine kleine Version der Methode für Vier gewinnt um.

01

Policy- und Value-Netz

Ein vollständig verbundenes Netz mit zwei verborgenen Schichten erhält das Brett als Eingabe. Es gibt eine Policy aus, eine Wahrscheinlichkeit für jede der sieben Spalten, und einen Value, eine Schätzung des Ausgangs für die Spielerin oder den Spieler am Zug. Die Gewichte werden zufällig initialisiert.

Brett → (p₁…p₇, v) · - Gewichte
02

Baumsuche

Die Monte-Carlo-Baumsuche baut einen Baum möglicher Fortsetzungen auf. In jedem Knoten wählt sie den Zug mit dem höchsten PUCT-Wert, der den durchschnittlichen Wert des Zugs (Q) gegen die A-priori-Wahrscheinlichkeit der Policy (P) und seine Besuchszahl (n) abwägt. Neue Stellungen werden mit dem Value-Ausgang bewertet, statt zu Ende gespielt zu werden.

wähle argmax Q + c·P·√N / (1 + n)
03

Training durch Self-Play

Jede Partie gegen sich selbst liefert Trainingsbeispiele: die Stellung, die Besuchsverteilung der Suche (π) und das Endergebnis (z). Das Netz wird trainiert, mit seiner Policy π und mit seinem Value z zu treffen, und das aktualisierte Netz spielt die nächsten Partien.

loss = (z − v)² − π · log p