Das Computer-Go-Programm Alpha Go hat es geschafft, Fan Hui in fünf Spielen ohne Handicap zu besiegen. (Auf der Alpha Go Seite gibt es sgf-Datein der Spiele zum Download.) Der in Frankreich lebende Chinese ist der derzeitige europäische Meister im Go. Bisher spielten Computerprogramme im Go ausschließlich auf Amateurniveau. Nur auf kleineren Brettern konnten sie gegen professionelle Go-Spieler gewinnen. Ein Spiel gegen Lee Sedol, einen der besten Go-Spieler der Welt, ist für März angesetzt. Dahinter stehen Anstrengungen von Google Deepmind in der Entwicklung von computerbasierten neuronalen Netzwerken.
Ein solches Ergebnis wurde erst in einigen Jahren erwartet, es stellt eine sprunghafte Verbesserung der Leistung solcher Programme dar. In ihrem Paper schreiben die Programmierer, dass ihr Programm in einem Test die bisher besten kommerziellen Computerprogramme in 494 von 495 Spielen besiegt hat. Diese Leistung wurde durch die Kombination von herkömmlichen Techniken und neuronalen Netzwerken möglich.
Entwicklungssprung in der Spielstärke
Diese Entwicklung stellt nach zehn Jahren einen zweiten Sprung in der Verbesserung von Computerprogrammen im Go dar. Bis 2006 basierten alle Computer-Go-Programme auf algorithmischen Strukturen, die mögliche Züge nacheinander auswerteten, unterstützt von Eröffnungsbibliotheken. Der Ansatz war ähnlich den Schachprogrammen, wie etwa Deep Blue, die in der Lage waren, die besten Schachspieler der Welt zu besiegen.
Dieser Ansatz scheiterte im Go. Programme wie GnuGo kamen über die niedrigen Kyu-Ränge der Amateure nicht hinaus. Das sind die “Schülerränge” im Go. Danach folgen die Amateur-“Dan”-Ränge, also Meisterränge. Professionelle Spieler haben ein eigenes Rangsystem, das hauptsächlich auf Titelgewinnen und der Anzahl gewonnener Spiele beruht, aber die Zahl verlorener Spiele außer Acht lässt.
Zufällige Spiele sorgten für Qualität durch Quantität
Die Amateur-Dan-Ränge kamen erst 2006 durch Einführung von Monte-Carlo-Algorithmen in Reichweite. Anstatt von detaillierter Auswertung der Brettstellung werden dabei große Zahlen von zufälligen Spielen generiert. Auf der Grundlage dieser zufälligen Spiele wird dann eine Rangordnung der nächsten möglichen Züge erstellt und der oberste Zug der Rangordnung gewählt. Je mehr zufällige Spiele im Anschluss an einen bestimmten Zug gewonnen werden, desto höher steht der Zug in der Rangordnung.
Wegen der geringen Rechenbelastung bei zufälligen Spielen kann so eine sehr große Zahl von Spielen in kurzer Zeit ausgewertet werden. Zu diesem Vorgehen kommen aber noch Eröffnungsbibliotheken und einzelne Algorithmen, um das Verhalten in bestimmten Spielsituationen zu verbessern, etwa die Erkennung von Treppen. Das ist eine einfache Formation von Steinen, die einem klaren Muster folgt, aber erst nach einer großen Zahl von Zügen zum Fangen der Steingruppe führt. Die Treppe gehört zu den ersten Fangtechniken, die ein Anfänger lernt. Solche Muster können in der Auswertung von zufälligen Spielen nicht zuverlässig erfasst werden.
Neuronale Netze ergänzen den Zufall
Für die Entwicklung von Alpha Go wurden neuronale Netzwerke erstellt und trainiert, wofür unter anderem die Datenbank der über 150.000 Spiele auf dem Kiseido Go Server (KGS) verwendet wurde. Während die so trainierten neuronalen Netzwerke tatsächlich die mittleren Dan-Ränge erreichten, stellten sie zunächst keine wesentliche Steigerung der Spielstärke gegenüber älteren Programmen dar.
Ein wesentlicher Grund dafür ist die hohe Rechenbelastung bei der Bewertung von Zugfolgen in neuronalen Netzwerken. Der Erfolg von Alpha Go beruht auf einer Kombination aller bisher entwickelten Techniken. Die Auswertung aus dem neuronalen Netzwerk ergibt dabei eine unabhängige Gewichtung der Züge aus den zufälligen Spielen der Monte-Carlo-Algorithmen. Der Ansatz wurde bereits im Jahr 2000 verfolgt, allerdings war das neuronale Netzwerk dort ein menschliches Gehirn, das zwischen den vorgeschlagenen Zügen von zwei Computerprogrammen den besseren Zug auswählt.
Erstaunlicherweise war aber auch das neuronale Netzwerk nach dem Training mit über 100.000 Spielen nicht in der Lage, eine Treppe zuverlässig zu erkennen und zu spielen. Den Grund vermuten die Programmierer in der Abwesenheit von ausgespielten Treppen in der Spieldatenbank. Solche Sequenzen sind nur in Ausnahmenfällen tatsächlich im Spiel zu beobachten, weil der Fang von Steinen in einer Treppe unvermeidlich und allen Spielern bekannt ist. Für solche und ähnliche Situationen werden deshalb feste Suchalgorithmen eingesetzt.
Kommentare (6)