Als ich in den 1970er-Jahren zur Schule ging, spielte ich häufig mit einem Freund «Drei gewinnt». In einer freiwilligen «Programmier»-Klasse versuchten wir einem aus heutiger Sicht sehr archaischen Computer dieses Spiel beizubringen. Als Erstes hatten wir es mit Schach versucht, doch das war damals natürlich unmöglich zu programmieren. Deshalb kamen wir zurück auf «Drei gewinnt» – waren aber ebenfalls erfolglos.
Heute schlagen Computer immer häufiger professionelle Spieler. Letztes Jahr besiegte der Superrechner Deep Mind zum ersten Mal einen professionellen Go-Spieler (ein komplexes chinesisches Brettspiel), was an die Niederlage des Schachweltmeisters Garri Kasparow gegen einen IBM-Computer 1997 erinnerte. Vor ein paar Wochen besiegte ein Online-Programm selbst Poker-Profis. Aber wie lehrt man einen Computer, solche Spiele zu spielen?
Beispiel: «Drei gewinnt»
Sehen wir uns zum besseren Verständnis ein einfaches Spiel wie «Drei gewinnt» an. Wie spielen wir Menschen es? Die meisten von uns haben vermutlich einfache «Strategien». Eine lautet: Wenn du als Erster am Zug bist, mach dein Kreuz im mittleren Feld. Eine andere: Wenn der Gegner zwei Felder in einer Reihe hat, setze dein Kreuz im dritten, um den Sieg des Gegners zu verhindern. Mit diesen beiden einfachen Regeln können wir einen Computer so programmieren, dass er «Drei gewinnt» spielt, wenn auch ziemlich schlecht. Bringen wir ihm aber acht solcher Regeln bei, einschliesslich der beiden oben genannten, kann der Computer jedes Spiel gewinnen oder unentschieden spielen.
Doch es gibt auch einen anderen Ansatz: Wir listen alle möglichen Spielsituationen auf, die es in «Drei gewinnt» gibt – sowie den besten darauf folgenden Zug. Dann befehlen wir dem Computer, in der langen Liste den nächsten Zug nachzuschauen und anzuwenden. Das ist mühsam, aber machbar. Diese beiden Ansätze zeigen uns, wie unterschiedlich ein Computer «denken» kann: Er kann sich die wichtigsten «Strategien» oder umfassend Spielsituationen einprägen.
Wenn Computer selbständig «lernen»
Aber was, wenn wir einen Computer so programmieren können, dass er alle Situationen selbständig «lernt» und speichert? Das ist tatsächlich machbar und wird heutzutage «machine learning» genannt. Es ist die Grundlage für künstliche Intelligenz. Nehmen wir etwa an, wir programmieren einen Computer so, dass er (ausser den Grundregeln) gar nichts über das Spiel weiss. Dazu befehlen wir ihm, bis zum Ende des Spiels zufällige Züge zu machen und jeden Schritt aufzuzeichnen. Er wird so anfangs alle Spiele verlieren. Aber dank der aufgezeichneten «schlechten Züge» kann er lernen, welche er nicht mehr wiederholen darf. Ganz langsam erstellt er so eine Liste von «guten Zügen». Sie können sich vorstellen, was geschieht: Je mehr die Maschine spielt, desto mehr «lernt» sie!
Der Computer benötigt einen Gegner zum Lernen. Das ist in der Regel ein Mensch. Je besser der menschliche Spieler ist, desto besser wird auch der Computer. Auch Maschinen lernen am besten von den Besten! Mit diesem Lernansatz verlieren irgendwann selbst die besten Spieler gegen Computer. Genau das haben wir in den letzten Jahren im Schach, Go und beim Poker erlebt.