Eine der am häufigsten gestellten Fragen auf dieser Website betrifft die Aussicht auf eine rein selbst ausgebildete Schach-KI.
Heute wird ChessBase von seiner Berichterstattung über das FIDE-Kandidatenturnier abgelenkt, um zu berichten, dass eine neue KI zum ersten Mal einen führenden Meister des etwas anderen Go-Spiels besiegt, der sich seit vielen Jahren gegen KIs im Schachstil wehrte. Eine erste Lektüre des Berichts legt nahe, dass die neue Go-KI keine Schach-KI ist, sondern eher eine allgemeine Spiel-KI (GGP). Der Artikel von ChessBase verwendet jedoch nicht den Begriff GGP, sondern scheint zu sagen, dass die Go-KI bei einfachen Videospielen gewinnen kann.
Gibt es einen Grund, warum eine solche gewinnbringende KI mit geringen Anpassungen nicht auch beim Schach gewinnen könnte? Wenn ja, verspricht eine solche KI das Erreichen des reinen Selbsttrainings, was zu diesem Zeitpunkt noch nicht möglich war? Warum oder warum nicht?
Ich vermute, dass noch keine wirklich vollständige, vollständig informierte Antwort auf meine Frage verfügbar ist. Daher wäre auch eine teilweise Antwort auf der Grundlage des entsprechenden Fachwissens wünschenswert.
Weitere Hinweise finden Sie auch in dieser verwandten Frage und den Antworten.
AKTUALISIEREN
Als die obige Frage vor fünf Tagen zum ersten Mal gestellt wurde und einige der guten Antworten unten gegeben wurden, waren gerade die ersten Nachrichten über den Sieg der Go-KI erschienen. Seitdem sind zusätzliche Informationen und Kommentare aufgetaucht.
Besonders interessant ist seitdem eine gut lesbare, fünfseitige Diskussionsrunde, in der Jonathan Schaeffer bemerkt:
Das Lernen aus menschlichen Spielen beschleunigt das Lernen des Programms. AlphaGo könnte lernen, selbst ein starker Spieler zu werden, ohne die menschlichen Spiele zu nutzen. Der Lernprozess würde nur länger dauern.
Nach Angaben des Gastgebers des Runden Tisches ist Schaeffer "Professor für Informatik an der Universität von Alberta und der Mann, der die Kontrolleure gelöst hat"; Vermutlich könnte er also befugt sein, Kommentare abzugeben.
Für weitere Informationen finden Sie hier die Aufzeichnung einer weiteren offenen Diskussion, von der viele Teilnehmer besser informiert zu sein scheinen als üblich. Die Diskussion fand während des Spiels statt.
Ein weiteres Update, eineinhalb Jahre später: commenter @MarkS. schreibt:
Dies ist nur ein Kommentar, denn es geht um Go, nicht um Schach, aber AlphaGo Zero hat "reines Selbsttraining" erreicht, nur weil bekannt wurde, wer gewonnen hat (und nicht das Endergebnis). Es ist stärker und weitaus effizienter als die KI, die Lee Sedol besiegt hat . Weitere Informationen finden Sie unter deepmind.com/blog/alphago-zero-learning-scratch
Antworten:
Gut gut gut! DeepMind hat eine Veröffentlichung veröffentlicht, in der sie angaben, einen neuronalen Netzwerkcomputer so programmiert und trainiert zu haben, dass er Stockfish schlägt.
Mit 1 Minute Bedenkzeit pro Zug schlagen ihre AlphaZero-Computer Stockfish um +25, = 25, -0 mit Weiß und +3, = 47,0- als Schwarz.
Sie "trainierten" 3 verschiedene Computer, um Schach, Shogi und Go zu spielen und ihre Silizium-Rivalen überzeugend zu besiegen.
Hier ist, wie das Papier die Ausbildung und Bewertung beschreibt -
Ihr Computer verwendete eine neue Form von Chip, die von Google für maschinelles Lernen entwickelte "TPU" ( Tensor Processing Unit ).
Sie behaupten auch, dass ihr Monte-Carlo-Baumsuchalgorithmus besser und "menschlicher" ist als die traditionellen Alpha-Beta-Suchalgorithmen.
Hier sind einige der Spiele -
Spiel
Weiß: AlphaZero Schwarz: Stockfisch
quelle
Ok, ich muss zugeben, dass ich mich geirrt habe. Obwohl ich behaupten würde, dass es aufgrund der Kenntnis der Expertenmeinung nicht generell stumpf war: Um das Papier zu zitieren : "Schachprogramme, die traditionelles MCTS verwenden, waren jedoch viel schwächer als Alpha-Beta-Suchprogramme (4, 24), während Alpha -beta-Programme, die auf neuronalen Netzen basieren, waren bisher nicht in der Lage, mit schnelleren, handgefertigten Auswertungsfunktionen zu konkurrieren. "
Anscheinend ist Schach strategisch tief genug, dass Sie jemanden herausfinden können, der in der Lage wäre, Sie herauszurechnen. Für mich ist das eine große Überraschung, denn die Entwicklung der Schachengines verlief in die entgegengesetzte Richtung. (Anscheinend gibt es immer noch eine leichte Einschränkung, ob AlphaZero wirklich stärker als Stockfish ist: Stockfish spielte mit nur 1 GB für die Hashtables und 64 Kerne könnten für vier TPUs nicht wirklich passen.)
Es ist auch eine wirklich, wirklich aufregende Sache, denn AlphaZero hat höchstwahrscheinlich ganz andere Stärken als herkömmliche Motoren.
Es bedeutet auch, dass ich meinen Glauben an die Bedeutung von AlphaGo als technologischen Durchbruch um ein Vielfaches aktualisiere. Grundsätzlich Shogi zu zerschlagen, Go and Chess mit einer einzigen Konfiguration ist absolut erstaunlich, ganz zu schweigen von Dutzenden anderer Spiele, die AlphaZero wahrscheinlich auf einem übermenschlichen Level spielen könnte.
Es gibt eine nette Erklärung, warum MCTS im Vergleich zur Alpha-Beta-Suche (aus dem Artikel) auch für Schach eine anständige Idee ist: "AlphaZero bewertet Positionen unter Verwendung einer nichtlinearen Funktionsnäherung auf der Grundlage eines tiefen neuronalen Netzwerks und nicht der linearen Funktionsapproximation, die in typischen Schachprogrammen verwendet wird Dies stellt eine viel leistungsfähigere Darstellung dar, kann jedoch auch zu falschen Approximationsfehlern führen. MCTS mittelt über diese Approximationsfehler, die sich daher bei der Auswertung eines großen Teilbaums tendenziell aufheben. Im Gegensatz zur Alpha-Beta-Suche berechnet ein explizites Mini-Max, das die größten Approximationsfehler an die Wurzel des Teilbaums weitergibt. " (Hervorhebung von mir)
Hier ist meine alte Antwort, die immer noch einige gültige Punkte enthält, obwohl die Schlussfolgerung von der Realität abgelöst wird.
Erstens ist Alphago kein allgemeines Spielsystem. Es ist ein Programm, das nur zum Spielen gedacht ist und sonst nichts. Es ist jedoch aus bestimmten Bausteinen aufgebaut, die eine viel breitere Anwendbarkeit haben, wie beispielsweise Faltungs-Neuronale Netze , die bei der Bilderkennung verwendet wurden und die sofort in der medizinischen Diagnostik Anwendung finden, und Verstärkungslernen, das verwendet wurde, um die in erwähnten Atari-Spiele zu meistern der Artikel.
Aktuelle Engines "lernen" auch aus eigener Kraft : "Über Nacht durchspielen Leflers sechs Computer acht Stunden lang jeweils mehr als 14.000 Spiele." Sechs Maschinen und 14.000 Spiele sind eine Menge Spiele ", sagt er Mit jedem Spiel wird die Datenbank tiefer und umfangreicher. Es besteht sogar ein sportliches Interesse daran, zu beobachten, wie Computer gegeneinander spielen. Das Ergebnis von Leflers geschäftigen surrenden Maschinen ist die ständig wachsende Leistungsfähigkeit von Komodo.
Um zum größten Teil Ihrer Frage zu kommen:
Es gibt einen wichtigen Unterschied zwischen Schach und Los, zumindest aus Sicht eines Programmierers. Schach ist eher ein taktisches Spiel, wohingegen Go eher ein strategisches Spiel ist. Dies bedeutet, dass bei der Schachberechnung die Tiefe die Positionsbewertung übertrifft. Das ist im Grunde die Schlüsselerkenntnis, die die "alten" Motoren wie Fritz, Shredder, Junior und die neuere Generation wie Fruit, Rybka, Houdini, Stockfish, Komodo auszeichnet. Da am Ende jeder Zeile die Position ausgewertet werden muss und viele Zeilen berechnet werden sollen und die Qualität der Auswertung nicht so wichtig ist wie die Suchtiefe, verfügen Schachmaschinen über schlanke und schnelle Auswertungsfunktionen.
Andererseits ist die taktische Komplexität auch für Computer zu groß. Folglich ist es wichtig, Positionen und Bewegungen genau zu bewerten. Was Alphago neu ins Spiel bringt, ist diese Auswertungskraft, die auf faltungsbedingten neuronalen Netzen basiert .
Um endlich zu meinem Punkt zu kommen: Während Schachbewertungsfunktionen schlank und schnell sind, haben neuronale Netze Millionen, manchmal Milliarden von Parametern. Da "Lernen" in diesem Zusammenhang das Ändern von Parametern bedeutet, gibt es viel mehr mögliche Fortschritte für selbstlernende Go-Programme.
Ja, Sie könnten ein Setup wie Alphago verwenden, um eine Schachengine zu erstellen, aber es wäre nicht besonders gut. Das Ausführen der Evaluierungsfunktion würde so viel Zeit in Anspruch nehmen, dass Sie eine riesige Gruppe von GPUs verwenden müssten, um zu den erforderlichen Suchtiefen zu gelangen (was Alphago auch tut). Sie könnten eine sehr gute Bewertungsfunktion erstellen , aber der Geschwindigkeits-Kompromiss ist es nicht wert.
quelle
Es gibt ein Projekt namens Spawkfish , das genau dies versucht. Es handelt sich um eine auf einem neuronalen Netzwerk basierende Engine, die "untersuchen soll, wie die jüngsten Fortschritte in Computer Go auf die Welt des Computerschachs übertragen werden können".
Es ist ein junges Projekt und der Motor ist immer noch ziemlich schwach. Es zu spielen ist interessant, weil sein Positionsspiel besser ist als seine Taktik.
quelle
Die kurze Antwort lautet "Nein!"
Schach und Los unterscheiden sich radikal in ihrer relativen Einfachheit und relativen Komplexität, die sich aus ihrer Geometrie und dem Gewinn ergibt. Diese kombinieren sich zu einem Programm, das auf der einen Seite gut und auf der anderen unbrauchbar ist.
Im Schach gewinnt man, indem man den Gegner schachmatt setzt, Punkte zählen nicht. Natürlich tritt ein vernünftiger Gegner oft zurück, bevor Sie Schachmatt setzen, aber das Prinzip ist dasselbe. Auf dem Sprung gewinnt man, indem man am Ende des Spiels mehr Punkte hat. Wenn ich einen König und eine Königin habe und Sie einen König, einen Turm und einen Bauern haben, aber Sie eine Festung gebaut haben, ist es egal, dass ich 9 Punkte für die Königin habe und Sie nur 6 Punkte für Ihren Turm und Ihren Bauern haben. Das Spiel ist unentschieden.
Dies macht einen grundlegenden Unterschied in der Komplexität zwischen Schach und Los. Unterwegs können Sie nur punkten und wissen, wer gewinnt. Beim Schach können Sie nur durch reines Berechnen feststellen, wer gewinnt. In diesem Sinne ist Schach viel komplexer als Go.
Gleichzeitig gibt es aufgrund der Geometrie der beiden Partien um Größenordnungen mehr Möglichkeiten als beim Schach. In diesem Sinne ist go viel komplexer als Schach.
Ein Schachprogramm berechnet durch Brute-Force-Berechnung alle möglichen Züge bis zu einer bestimmten Tiefe, die seine Stärke bestimmt. Ein Go-Programm kann so nicht funktionieren und nichts Fortgeschritteneres als Anfänger-Go spielen.
Das Hauptziel von go ist es, mehr Territorium als dein Gegner zu kontrollieren. Am Ende eines Spiels ist es egal, ob der Unterschied 1 Stein oder 100 Steine beträgt, beide sind Siege. Jedes Mal, wenn Sie einen Stein platzieren, tun Sie zwei Dinge. Sie vergrößern Ihr Territorium, entweder potenziell oder tatsächlich, und Sie verringern das Ihres Gegners.
Manchmal, wenn es sich um eine tatsächliche Zunahme oder Abnahme des Territoriums handelt, ist es einfach, den Wert der Bewegung zu berechnen, aber wenn es potenziell ist, ist es sehr schwierig zu bewerten. Als schwacher Go-Spieler verstehe ich das "tatsächliche" viel besser als das "Potenzial" und ein stärkerer Spieler wird mich schlagen, indem er in der Mitte ein viel größeres potenzielles Territorium baut, während ich an den Rändern und in den Ecken ein kleineres tatsächliches Territorium baue. Der stärkere Spieler hat die Fähigkeit aufgebaut, durch Intuition und Gefühl zu urteilen, indem er viele Spiele gespielt und erkannt hat, wie man "potentielles" Territorium aufbaut.
Früher sagte ich, dass jedes Mal, wenn ich einen Stein platziere, mein Territorium vergrößert (tatsächlich oder potenziell) und das meines Gegners verringert wird (tatsächlich, wenn es ein dummer Zug ist, wird es das Gegenteil bewirken!). In einer bestimmten Position sind nicht alle Züge gleich. Ein Stein, der an einer Position platziert wird, kann viel mehr oder viel weniger wert sein als ein Stein, der an einer anderen Position platziert wird.
Typischerweise wird es in einem Spiel kleine "Kämpfe" geben, bei denen die Spieler ihre Steine nebeneinander platzieren, ihr Territorium markieren und die des Gegners begrenzen. In der Zwischenzeit gibt es die Möglichkeit, Gebiete in einem anderen Teil des Spielfelds abzustecken oder zu einem Kampf zu wechseln, in dem beide Spieler bereits Steine haben.
In diesen Situationen ist es sehr wichtig zu wissen, wann ein Kampf zu beenden ist, da die potenziellen Gewinne geringer geworden sind, und entweder zu einem anderen Kampf überzugehen oder vielleicht in jungfräuliches Gebiet vorzudringen. Manchmal hängt dies von einer harten Berechnung ab, aber oft ist es viel nebulöser und unterliegt keiner Berechnung. Als schwacher Spieler ist dies der Punkt, an dem mich ein starker Zahler jedes Mal niederschlägt.
In diesen Situationen verwendet der Computer probabilistische Methoden, um eine erwartete Punktzahl für einen bestimmten Zug zu generieren. Manchmal wird sich der tatsächliche Wert als etwas geringer herausstellen, manchmal als etwas höher, aber auf lange Sicht wird er sich mehr oder weniger ausgleichen. Es wird weiterhin den Zug mit dem höchsten erwarteten Wert auswählen, mit der Erwartung, dass sich auf lange Sicht kleine Fehler aufheben und seine Strategie gewinnen wird.
Dies ist keine Strategie, die Schachspielern geläufig ist und die im Schach nicht funktionieren wird. Es ist etwas, das jedem bekannt vorkommt, der verfolgt, was auf den Aktienmärkten vor sich geht. Es hört sich sehr ähnlich an wie ein sogenannter "Hochfrequenzhandel", bei dem Computer Tausende von kleinen oder nur vorgeschlagenen Wetten pro Sekunde abschließen, um den Markt zu "vernünftigen Preisen" zu bewegen und ihn möglicherweise über Millisekunden hinweg nur unwesentlich zu ihren Gunsten zu bewegen.
Die Finanzmärkte werden bereits von diesen Arten des algorithmischen Handels dominiert, was darauf hindeutet, dass diese Art von Programm in einem weitaus lukrativeren Bereich als einem Brettspiel bereits gesiegt hat.
quelle
(Jeder, der eine ausführliche technische Diskussion für AlphaGo wünscht, kann sich meinen Beitrag ansehen. )
Kurze Antwort : Nein
Lange Antwort :
Zunächst müssen wir verstehen, warum Google Alpha-Beta nicht in AlphaGo implementiert hat. Stockfish und Komodo (und alle Schachengines) haben Alpha-Beta, warum sollte AlphaGo nicht?
Grund : Es gibt keine einfache und kostengünstige Methode, um eine Go-Position statisch genau zu bewerten.
Im Schach können wir immer die Materialien zählen, eine sehr effektive Methode, um eine Position statisch zu bewerten. Obwohl es nicht perfekt ist, ist es sehr schnell und ein sehr guter Proxy für Schach.
Das Durchsuchen des Zustandsraums mit Monte-Carlo ist der Alpha-Beta-Methode unterlegen . Google hätte Alpha-Beta implementiert, wenn sie könnten, aber sie konnten nicht. Sie waren gezwungen, etwas viel langsameres zu benutzen.
Die Schachengine würde mit Monte-Carlo nicht besser laufen.
quelle
Ich bin mit den anderen Antworten nicht einverstanden. Ich bin ein Informatiker, der professionell auf dem Gebiet der künstlichen Intelligenz arbeitet und außerdem ein Meisterkandidat in Schach und 3 Dan in Igo ist.
Ich denke, es ist derzeit unklar, ob Deep Minds Methoden auf Schach angewendet werden könnten, aber ich denke, es ist möglich.
Gegenwärtig verlassen sich die Top-Schachprogramme zunehmend auf Heuristiken und der Versuch, die AlphaGo-Architektur für das Schachspiel zu verwenden, würde in gewisser Weise in die gleiche Richtung gehen.
Eine wichtige architektonische Eigenschaft von AlphaGo, die geändert werden müsste, ist die Methode zur Identifizierung von Schlüsselfeldern (oder Heatmaps), die speziell für igoähnliche Spiele gilt und nicht direkt auf Schach anwendbar ist. Ein Analogon dieser Methode müsste entwickelt werden, um die AlphaGo-Architektur für Schach relevant zu machen. Zum Beispiel könnten wir das Konzept von "Schlüsselstücken" anstelle von Schlüsselquadraten haben.
Ich denke, das Argument, dass die AlphaGo-Architektur für Schach nicht relevant ist, weil Schach taktischer ist, ist keine sehr gute Behauptung, da letztendlich beide Suchbäume ähnlich genug in der Form sind, dass AlphaGo definitiv an Schach angepasst werden könnte.
quelle
Die Antwort ist ja! Google hat dies erst gestern bewiesen, als AlphaZero das beste Schachprogramm schlug, indem es nur Wissen über die Regeln und reines Selbsttraining verwendete, ohne dass menschliches Schachwissen zum Einsatz kam. Die akzeptierte Antwort ist falsch. Der Link zum Artikel ist hier: Link
quelle
Um AlphaZero in Aktion zu sehen, folgen Sie http://lczero.org/ oder spielen Sie auf http://play.lczero.org/
quelle