Einfach erklärt: Wie ein KI-Programm das alte Go-Spiel gemeistert hat

Bildnachweis

Hier geht es um AlphaGo, Go Playing AI von Google DeepMind, das die Technologiewelt im Jahr 2016 erschütterte und Lee Sedol, einen der besten Spieler der Welt, besiegte.

Go ist ein uraltes Brettspiel, das bei jedem Schritt so viele mögliche Züge hat, dass zukünftige Positionen schwer vorherzusagen sind - und daher erfordert es ausgeprägte Intuition und abstraktes Denken, um zu spielen. Aus diesem Grund glaubte man, nur Menschen könnten gut Go spielen. Die meisten Forscher dachten, dass es noch Jahrzehnte dauern würde, eine KI zu bauen, die so denken könnte. Tatsächlich veröffentliche ich diesen Aufsatz heute, weil diese Woche (8. bis 15. März) das zweijährige Jubiläum des Spiels AlphaGo gegen Sedol markiert!

Aber AlphaGo hat noch nicht aufgehört. Acht Monate später bestritt es 60 professionelle Spiele auf einer Go-Website, die als „Meister“ getarnt war, und gewann jedes einzelne Spiel gegen Dutzende von Weltmeistern, natürlich ohne sich zwischen den Spielen auszuruhen.

Natürlich war dies eine RIESIGE Leistung auf dem Gebiet der KI und löste weltweite Diskussionen darüber aus, ob wir über künstliche Intelligenz aufgeregt oder besorgt sein sollten.

Heute werden wir das von DeepMind im Nature-Journal veröffentlichte Original-Forschungspapier in einfaches Englisch absatzweise aufschlüsseln.

Nach diesem Aufsatz wissen Sie ganz genau, was AlphaGo ist und wie es funktioniert. Ich hoffe auch, dass Sie nach dem Lesen nicht alle Schlagzeilen von Journalisten glauben, die Ihnen Angst vor KI machen, und sich stattdessen darüber aufregen werden.

Sich über die wachsenden Errungenschaften von KI Sorgen zu machen, ist wie sich über die wachsenden Fähigkeiten von Microsoft Powerpoint Sorgen zu machen. Ja, es wird mit der Zeit besser, wenn neue Funktionen hinzugefügt werden, aber es kann nicht einfach unkontrolliert zu einer Art Hollywood-Monster heranwachsen.

Sie müssen NICHT wissen, wie man spielt. Gehen Sie, um dieses Papier zu verstehen. Tatsächlich habe ich selbst nur die ersten 3-4 Zeilen im ersten Absatz von Wikipedia darüber gelesen. Stattdessen benutze ich überraschenderweise einige Beispiele aus dem Basis-Schach, um die Algorithmen zu erklären. Man muss nur wissen, was ein 2-Spieler-Brettspiel ist, bei dem jeder Spieler abwechselnd spielt und am Ende ein Gewinner steht. Darüber hinaus müssen Sie weder Physik noch fortgeschrittene Mathematik kennen.

Dies wird es für Leute zugänglicher machen, die gerade erst angefangen haben, maschinelles Lernen oder neuronale Netze zu erlernen. Und besonders für diejenigen, die kein Englisch als Muttersprache verwenden (was das Lesen solcher Artikel sehr schwierig machen kann).

Wenn Sie KEINE Vorkenntnisse über KI und neuronale Netze haben, können Sie hier den Abschnitt „Deep Learning“ eines meiner vorherigen Aufsätze lesen. Nachdem Sie das gelesen haben, werden Sie in der Lage sein, diesen Aufsatz durchzuarbeiten.

Wenn Sie auch ein flaches Verständnis von Reinforcement Learning erhalten möchten (optionales Lesen), finden Sie es hier.

Hier ist das Original, wenn Sie es lesen möchten:

Was mich betrifft: Hallo, ich bin Aman, ein KI- und autonomer Robotertechniker. Ich hoffe, dass meine Arbeit Ihnen viel Zeit und Mühe erspart, wenn Sie dies alleine studieren.

Sprichst du Japanisch? Ryohji Ikebe hat freundlicherweise in einer Reihe von Tweets ein kurzes Memo über diesen Aufsatz auf Japanisch verfasst.

Lass uns anfangen!

Abstrakt

Wie Sie wissen, bestand das Ziel dieser Forschung darin, ein KI-Programm für das Spielen von Go auf dem Niveau erstklassiger menschlicher Profispieler zu trainieren.

Um diese Herausforderung zu verstehen, lassen Sie mich zunächst über etwas Ähnliches sprechen, das für Schach getan wurde. In den frühen neunziger Jahren kam IBM mit dem Deep Blue-Computer heraus, der den großen Champion Garry Kasparov im Schach besiegte. (Er ist auch ein sehr cooler Typ, lesen Sie später mehr über ihn!) Wie hat Deep Blue gespielt?

Nun, es wurde eine sehr brachiale Methode angewendet. Bei jedem Schritt des Spiels wurden alle möglichen legalen Züge untersucht, die gespielt werden konnten, und es wurden alle Züge untersucht, um zu sehen, was passieren würde. Und es würde eine Weile lang Bewegung für Bewegung erforschen und eine Art RIESIGEN Entscheidungsbaum mit Tausenden von Zügen bilden. Und dann kehrte es an diesem Baum zurück und beobachtete, welche Bewegungen am wahrscheinlichsten ein gutes Ergebnis brachten. Aber was meinen wir mit „gutem Ergebnis“? Nun, Deep Blue hat viele sorgfältig entwickelte Schachstrategien von erfahrenen Schachspielern eingebaut, um bessere Entscheidungen zu treffen - zum Beispiel, wie man entscheidet, ob man den König beschützt oder woanders einen Vorteil erzielt. Zu diesem Zweck haben sie einen speziellen „Evaluierungsalgorithmus“ erstellt, um zu vergleichen, wie vorteilhaft oder nachteilig unterschiedliche Boardpositionen sind (von IBM fest programmierte Expertenschachstrategien in diese Evaluierungsfunktion einbezogen). Und schließlich wählt es einen sorgfältig berechneten Zug. In der nächsten Runde geht es im Grunde noch einmal durch das Ganze.

Wie Sie sehen, bedeutet dies, dass Deep Blue vor jedem Zug über Millionen theoretischer Positionen nachgedacht hat. Dies war nicht so beeindruckend in Bezug auf die KI-Software von Deep Blue, sondern in Bezug auf die Hardware - IBM behauptete, es sei einer der leistungsstärksten Computer, die zu dieser Zeit auf dem Markt verfügbar waren. Es könnte sich um 200 Millionen Boardpositionen pro Sekunde handeln.

Jetzt kommen wir zu gehen. Glauben Sie mir einfach, dass dieses Spiel viel offener ist und wenn Sie die Deep Blue-Strategie auf Go ausprobieren würden, würden Sie nicht gut spielen können. Es gäbe SO VIELE Positionen, die man sich bei jedem Schritt ansehen könnte, dass es für einen Computer einfach unpraktisch wäre, diese Hölle zu durchlaufen. Zum Beispiel gibt es beim Eröffnungszug im Schach 20 mögliche Züge. In Go hat der erste Spieler 361 mögliche Züge, und dieser Spielraum bleibt während des gesamten Spiels groß.

Dies ist, was sie mit "enormer Suchfläche" meinen. Außerdem ist es in Go nicht so einfach zu beurteilen, wie vorteilhaft oder nachteilig eine bestimmte Brettposition zu einem bestimmten Zeitpunkt im Spiel ist - Sie müssen das ganze Spiel für eine bestimmte Zeit spielen Bis dahin können Sie feststellen, wer gewinnt. Angenommen, Sie hatten auf magische Weise die Möglichkeit, beides zu tun. Und hier kommt tiefes Lernen ins Spiel!

In dieser Studie verwendete DeepMind neuronale Netze, um diese beiden Aufgaben zu erledigen (falls Sie noch nie etwas über neuronale Netze gelesen haben, hier noch einmal der Link). Sie trainierten ein „politisches neuronales Netzwerk“, um zu entscheiden, welche Bewegungen in einer bestimmten Board-Position am sinnvollsten sind (es ist also so, als würde man einer intuitiven Strategie folgen, um Bewegungen von jeder Position aus auszuwählen). Und sie trainierten ein "Value Neural Network", um abzuschätzen, wie vorteilhaft eine bestimmte Brettanordnung für den Spieler ist (oder mit anderen Worten, wie wahrscheinlich es ist, dass Sie das Spiel von dieser Position aus gewinnen). Sie trainierten diese neuronalen Netze zuerst mit menschlichen Spielbeispielen (Ihr gutes, altes, gewöhnliches, überwachtes Lernen). Danach konnte die KI das menschliche Spiel bis zu einem gewissen Grad nachahmen, so dass sie sich wie ein schwacher menschlicher Spieler verhielt. Und um die Netzwerke noch weiter zu trainieren, haben sie die KI millionenfach gegen sich selbst spielen lassen (dies ist der Teil des „verstärkenden Lernens“). Damit wurde die KI besser, weil sie mehr Übung hatte.

Allein mit diesen beiden Netzwerken war DeepMinds KI in der Lage, sich gegen hochmoderne Go-Spielprogramme zu behaupten, die andere Forscher zuvor entwickelt hatten. Diese anderen Programme hatten einen bereits bekannten Algorithmus zum Spielen von Spielen verwendet, der als "Monte Carlo Tree Search" (MCTS) bezeichnet wurde. Dazu später mehr.

Aber raten Sie mal, wir haben immer noch nicht über das eigentliche Geschäft gesprochen. Bei DeepMinds KI geht es nicht nur um Richtlinien und Wertschöpfungsnetzwerke. Diese beiden Netzwerke werden nicht als Ersatz für die Monte-Carlo-Baumsuche verwendet. Stattdessen werden die neuronalen Netze verwendet, damit der MCTS-Algorithmus besser funktioniert… und er wurde so viel besser, dass er übermenschliche Werte erreichte. DIESE verbesserte Variante von MCTS ist „AlphaGo“, die KI, die Lee Sedol besiegt hat und als einer der größten Durchbrüche aller Zeiten in die KI-Geschichte eingegangen ist. AlphaGo ist also im Wesentlichen einfach eine verbesserte Implementierung eines sehr gewöhnlichen Algorithmus der Informatik. Verstehst du jetzt, warum KI in ihrer jetzigen Form absolut nichts zu befürchten ist?

Wow, wir haben viel Zeit alleine mit dem Abstract verbracht.

Okay - um das Papier von diesem Punkt an zu verstehen, werden wir zuerst über eine Spielstrategie sprechen, die als Monte Carlo Tree Search-Algorithmus bezeichnet wird. Im Moment erkläre ich diesen Algorithmus nur so ausführlich, dass er für diesen Aufsatz einen Sinn ergibt. Aber wenn Sie mehr darüber erfahren möchten, haben einige clevere Leute auch hervorragende Videos und Blog-Beiträge dazu verfasst:

1. Eine kurze Videoserie von Udacity
2. Jeff Bradberrys Erklärung zu MCTS
3. Ein MCTS-Tutorial von Fullstack Academy

Der folgende Abschnitt ist lang, aber leicht zu verstehen (ich werde mein Bestes geben) und SEHR wichtig, also bleib bei mir! Der Rest des Aufsatzes wird viel schneller gehen.

Lassen Sie uns über den ersten Absatz des obigen Aufsatzes sprechen. Erinnern Sie sich, was ich über Deep Blue gesagt habe, das einen riesigen Baum aus Millionen von Brettpositionen und Bewegungen bei jedem Schritt des Spiels erstellt hat? Sie mussten Simulationen durchführen und jede einzelne mögliche Bewegung betrachten und vergleichen. Wie ich bereits sagte, war dies ein einfacher und sehr unkomplizierter Ansatz - wenn ein durchschnittlicher Softwareentwickler eine KI für das Spielen entwerfen müsste und alle stärksten Computer der Welt hätte, würde er oder sie wahrscheinlich eine ähnliche Lösung entwerfen.

Aber denken wir mal darüber nach, wie Menschen selbst Schach spielen. Angenommen, Sie befinden sich in der Mitte des Spiels an einer bestimmten Brettposition. Nach den Spielregeln kannst du ein Dutzend verschiedene Dinge tun - bewege diesen Bauern hierher, bewege die Königin zwei Felder hierher oder drei Felder dorther und so weiter. Aber machst du wirklich eine Liste aller möglichen Züge, die du mit all deinen Stücken machen kannst, und wählst dann einen Zug aus dieser langen Liste aus? Nein - Sie beschränken sich "intuitiv" auf einige wichtige Züge (sagen wir, Sie haben 3 sinnvolle Züge), die Sie für sinnvoll halten, und fragen sich dann, was im Spiel passieren wird, wenn Sie einen dieser 3 Züge wählen. Sie könnten 15 bis 20 Sekunden damit verbringen, über jeden dieser 3 Züge und deren Zukunft nachzudenken - und beachten Sie, dass Sie in diesen 15 Sekunden die Zukunft jedes Zuges nicht sorgfältig planen müssen. Sie können einfach ein paar gedankliche Schritte "ausführen", die von Ihrer Intuition geleitet werden, ohne zu sorgfältig nachzudenken (ein guter Spieler würde also weiter und tiefer denken als ein durchschnittlicher Spieler). Dies liegt daran, dass Sie nur über eine begrenzte Zeit verfügen und nicht genau vorhersagen können, was Ihr Gegner in dieser schönen Zukunft bei jedem Schritt tun wird, den Sie in Ihrem Gehirn anstellen. Sie müssen sich also nur von Ihrem Bauchgefühl leiten lassen. Ich bezeichne diesen Teil des Denkprozesses als "Rollout".
Also, nachdem Sie Ihre wenigen vernünftigen Züge „ausgerollt“ haben, sagen Sie, schrauben Sie und spielen Sie einfach den Zug, den Sie am besten finden.

Dann macht der Gegner einen Zug. Es könnte ein Schritt sein, den Sie bereits gut erwartet hatten, was bedeutet, dass Sie jetzt ziemlich sicher sind, was Sie als Nächstes tun müssen. Sie müssen nicht mehr zu viel Zeit für die Einführung aufwenden. ODER, es könnte sein, dass Ihr Gegner Sie mit einem ziemlich coolen Zug schlägt, den Sie nicht erwartet hatten. Deshalb müssen Sie bei Ihrem nächsten Zug noch vorsichtiger vorgehen.
So geht das Spiel weiter und je näher Sie dem Endpunkt kommen, desto einfacher wird es für Sie, das Ergebnis Ihrer Züge vorherzusagen - Ihre Rollouts brauchen also nicht so viel Zeit.

Der Zweck dieser langen Geschichte ist es zu beschreiben, was der MCTS-Algorithmus auf einer oberflächlichen Ebene tut - er ahmt den obigen Denkprozess nach, indem er jedes Mal einen „Suchbaum“ von Bewegungen und Positionen erstellt. Für weitere Informationen lesen Sie bitte die Links, die ich bereits erwähnt habe. Die Neuerung dabei ist, dass nicht alle möglichen Züge an jeder Position durchlaufen werden (wie es Deep Blue getan hat), sondern intelligent eine kleine Reihe von sinnvollen Zügen ausgewählt und diese stattdessen untersucht werden. Um sie zu erforschen, wird die Zukunft jeder dieser Bewegungen "vorgestellt" und sie anhand ihrer vorgestellten Ergebnisse verglichen.
(Im Ernst - das ist alles, was ich denke, Sie brauchen, um diesen Aufsatz zu verstehen)

Kommen wir zurück zum Screenshot aus dem Papier. Go ist ein „perfektes Informationsspiel“ (bitte lesen Sie die Definition im Link, keine Sorge, es ist nicht beängstigend). Und theoretisch ist es für solche Spiele egal, an welcher bestimmten Position Sie sich im Spiel befinden (auch wenn Sie gerade 1–2 Züge gespielt haben), möglich, dass Sie richtig raten können, wer gewinnt oder verliert (vorausgesetzt, dass beide Spieler spielen) Von diesem Punkt an „perfekt“). Ich habe keine Ahnung, wer auf diese Theorie gekommen ist, aber sie ist eine Grundannahme in diesem Forschungsprojekt und funktioniert.

Das bedeutet, dass es bei gegebenem Zustand des Spiels eine Funktion v * (s) gibt, die das Ergebnis vorhersagen kann, sagen wir, die Wahrscheinlichkeit, dass Sie dieses Spiel gewinnen, von 0 bis 1. Sie nennen es die „Optimalwertfunktion“. . Da einige Board-Positionen mit größerer Wahrscheinlichkeit zu einem Gewinn führen als andere Board-Positionen, können sie als „wertvoller“ als die anderen angesehen werden. Lassen Sie es mich noch einmal sagen: Wert = Wahrscheinlichkeit zwischen 0 und 1, dass Sie das Spiel gewonnen haben.

Aber warten Sie - sagen Sie, es saß ein Mädchen namens Foma neben Ihnen, während Sie Schach spielen, und sie sagt Ihnen bei jedem Schritt, ob Sie gewinnen oder verlieren. "Du gewinnst ... du verlierst ... nein, verlierst immer noch ..." Ich denke, es würde dir nicht viel helfen, den Zug zu wählen, den du machen musst. Sie wäre auch ziemlich nervig. Stattdessen hilft es Ihnen, wenn Sie den gesamten Baum aller möglichen Züge zeichnen und die Zustände, zu denen diese Züge führen würden - und dann würde Ihnen Foma für den gesamten Baum mitteilen, welche Zustände Gewinnerzustände und welche Zustände sind Staaten zu verlieren. Dann können Sie Züge auswählen, die Sie weiterhin zu Siegerstaaten führen. Plötzlich ist Foma Ihr Partner in Sachen Kriminalität und kein nerviger Freund. Hier verhält sich Foma als Ihre optimale Wertefunktion v * (s). Früher wurde angenommen, dass es nicht möglich ist, eine genaue Wertfunktion wie Foma für das Go-Spiel zu haben, da die Spiele so viele Unsicherheiten aufwiesen.

ABER - selbst wenn Sie die wunderbare Foma hatten, wird diese Wunderland-Strategie, alle möglichen Positionen für die Foma zu ermitteln, in der realen Welt nicht sehr gut funktionieren. Wenn Sie sich in einem Spiel wie "Schach" oder "Los", wie wir bereits gesagt haben, vorstellen, dass sogar 7 bis 8 Züge in die Zukunft führen, gibt es möglicherweise so viele Positionen, dass Sie nicht genug Zeit haben, um alle mit Foma zu überprüfen.

Foma ist also nicht genug. Sie müssen die Liste der Schritte auf ein paar sinnvolle Schritte eingrenzen, die Sie in Zukunft ausführen können. Wie wird Ihr Programm das machen? Betritt Lusha. Lusha ist eine begabte Schachspielerin und Enthusiastin, die jahrzehntelang Großmeistern beim Schach gegeneinander zugesehen hat. Sie kann sich Ihre Brettposition ansehen, schnell alle verfügbaren Züge ansehen, die Sie ausführen können, und Ihnen sagen, wie wahrscheinlich es ist, dass ein Schachexperte einen dieser Züge ausführt, wenn er an Ihrem Tisch sitzt. Wenn Sie also 50 mögliche Züge zu einem bestimmten Zeitpunkt haben, teilt Lusha Ihnen die Wahrscheinlichkeit mit, dass jeder Zug von einem Experten ausgewählt wird. Natürlich haben einige vernünftige Züge eine viel höhere Wahrscheinlichkeit und andere sinnlose Züge haben eine sehr geringe Wahrscheinlichkeit. Zum Beispiel: Wenn im Schach Ihre Königin in einer Ecke des Spiels in Gefahr ist, haben Sie möglicherweise immer noch die Möglichkeit, einen kleinen Bauern in eine andere Ecke des Spiels zu bewegen. Sie ist Ihre Richtlinienfunktion. P (a \ s) . Für einen gegebenen Zustand kann sie Ihnen Wahrscheinlichkeiten für alle möglichen Bewegungen geben, die ein Experte machen würde.

Wow - Sie können die Hilfe von Lusha in Anspruch nehmen, um zu erfahren, wie Sie ein paar vernünftige Züge auswählen. Foma wird Ihnen die Gewinnwahrscheinlichkeit für jeden dieser Züge mitteilen. Sie können den Zug auswählen, den sowohl Foma als auch Lusha genehmigen. Wenn Sie besonders vorsichtig sein möchten, können Sie die von Lusha ausgewählten Schritte ausführen, von Foma auswerten lassen, einige davon auswählen, um sie in die Zukunft zu führen, und Foma und Lusha können Ihnen dabei helfen, SEHR weit vorauszusagen Die Zukunft des Spiels - viel schneller und effizienter, als alle Schritte in jedem Schritt in die Zukunft durchzugehen. DAS ist es, was sie unter „Reduzierung des Suchraums“ verstehen. Verwenden Sie eine Wertefunktion (Foma), um die Ergebnisse vorherzusagen, und eine Richtlinienfunktion (Lusha), um Ihnen großmeisterliche Wahrscheinlichkeiten zu geben, mit deren Hilfe Sie die von Ihnen ausgeführten Schritte eingrenzen können. Diese werden als "Monte-Carlo-Rollouts" bezeichnet. Während Sie von der Zukunft zur Gegenwart zurückkehren, können Sie die Durchschnittswerte aller von Ihnen eingeführten Züge ermitteln und die am besten geeignete Aktion auswählen. Bisher hat dies in Go nur auf schwacher Amateurebene funktioniert, da die Richtlinien- und Wertefunktionen, mit denen diese Rollouts gesteuert wurden, nicht so gut waren.

Puh.

Die erste Zeile ist selbsterklärend. In MCTS können Sie mit einem ungelernten Foma und einer ungelernten Lusha beginnen. Je mehr Sie spielen, desto besser können sie solide Ergebnisse und Bewegungen vorhersagen. "Die Suche auf einen Strahl von Aktionen mit hoher Wahrscheinlichkeit einschränken" ist nur eine raffinierte Art zu sagen: "Lusha hilft Ihnen dabei, die Bewegungen einzugrenzen, die Sie ausführen müssen, indem Sie ihnen Wahrscheinlichkeiten zuweisen, mit denen ein Experte sie spielen würde." Frühere Arbeiten verwendeten diese Technik, um starke KI-Spieler auf Amateurniveau zu erreichen, selbst mit einfachen (oder so genannten "flachen") Richtlinienfunktionen.

Ja, Faltungs-Neuronale Netze eignen sich hervorragend für die Bildverarbeitung. Und da ein neuronales Netzwerk eine bestimmte Eingabe nimmt und eine Ausgabe gibt, ist es im Wesentlichen eine Funktion, oder? Sie können also ein neuronales Netzwerk verwenden, um eine komplexe Funktion zu werden. Sie können also einfach ein Bild der Platinenposition einfügen und das neuronale Netzwerk selbst herausfinden lassen, was los ist. Dies bedeutet, dass es möglich ist, neuronale Netze zu erstellen, die sich wie SEHR genaue Richtlinien- und Wertefunktionen verhalten. Der Rest ist ziemlich selbsterklärend.

Hier diskutieren wir, wie Foma und Lusha trainiert wurden. Um das Policy-Netzwerk zu trainieren (Vorhersage für eine bestimmte Position, die Experten auswählen würden), verwenden Sie einfach Beispiele für menschliche Spiele und verwenden sie als Daten für gutes, altes, überwachtes Lernen.

Außerdem möchten Sie eine andere, leicht abweichende Version dieses Richtliniennetzwerks trainieren, die für Rollouts verwendet werden soll. Dieser wird kleiner und schneller sein. Sagen wir einfach, da Lusha so erfahren ist, braucht sie einige Zeit, um jede Position zu bearbeiten. Sie ist gut darin, mit dem Eingrenzungsprozess zu beginnen, aber wenn Sie versuchen, sie dazu zu bringen, den Prozess zu wiederholen, wird sie immer noch etwas zu viel Zeit in Anspruch nehmen. Sie trainieren also ein * schnelleres Richtliniennetzwerk * ​​für den Rollout-Prozess (ich nenne es ... Lushas jüngeren Bruder Jerry? Ich weiß, ich weiß, genug mit diesen Namen). Nachdem Sie das langsame und das schnelle Richtliniennetzwerk ausreichend mit menschlichen Spielerdaten trainiert haben, können Sie versuchen, Lusha ein paar Tage lang auf einem Go-Brett gegen sich selbst spielen zu lassen und mehr Übung zu erhalten. Dies ist der Verstärkungsteil - eine bessere Version des Policy-Netzwerks.

Dann trainieren Sie Foma für die Wertvorhersage: Bestimmen Sie Ihre Gewinnwahrscheinlichkeit. Sie lassen die KI üben, indem Sie sich in einer simulierten Umgebung immer wieder selbst spielen, das Endergebnis jedes Mal beobachten und aus ihren Fehlern lernen, um immer besser zu werden.

Ich werde nicht näher darauf eingehen, wie diese Netzwerke trainiert werden. Weitere technische Details finden Sie im späteren Abschnitt des Dokuments („Methoden“), auf das ich hier noch nicht eingegangen bin. Tatsächlich besteht der eigentliche Zweck dieses Artikels nicht darin, zu zeigen, wie sie das verstärkende Lernen in diesen neuronalen Netzen eingesetzt haben. In einem der vorherigen Artikel von DeepMind, in dem KI das Spielen von ATARI-Spielen beigebracht wurde, wurden bereits einige Techniken zum Erlernen von Verstärkung eingehend erörtert (und ich habe bereits eine Erklärung zu diesem Artikel hier geschrieben). Wie ich bereits in der Zusammenfassung erwähnt und im obigen Screenshot unterstrichen habe, war die größte Neuerung in diesem Artikel die Tatsache, dass RL mit neuronalen Netzen zur Verbesserung eines bereits beliebten Spielalgorithmus, MCTS, verwendet wurde. RL ist ein cooles Tool in einer Toolbox, mit dem sie nach dem regulären, überwachten Training die neuronalen Netze für Richtlinien und Wertfunktionen verfeinerten. In diesem Forschungsbericht soll gezeigt werden, wie vielseitig und exzellent dieses Tool ist, und nicht, wie man es einsetzt. In der Fernsehsprache war die Atari-Zeitung eine RL-Infomarke, und diese AlphaGo-Zeitung ist eine Werbung.

Okay, wir sind endlich fertig mit den "Einführungs" -Teilen. Inzwischen haben Sie bereits ein sehr gutes Gefühl dafür, worum es bei AlphaGo geht.

Als nächstes gehen wir etwas tiefer in jede Sache ein, die wir oben besprochen haben. Möglicherweise sehen Sie einige hässliche und gefährlich aussehende mathematische Gleichungen und Ausdrücke, aber sie sind einfach (ich erkläre sie alle). Entspannen Sie Sich.

Eine kurze Notiz, bevor Sie weitermachen. Möchten Sie mir helfen, mehr solche Aufsätze zu schreiben, die coole Forschungsarbeiten erklären? Wenn Sie es ernst meinen, würde ich gerne mit Ihnen zusammenarbeiten. Bitte hinterlassen Sie einen Kommentar und ich melde mich bei Ihnen.

Ein Foto von zwei japanischen Frauen, die Go spielen. Es ist hier zu sehen, falls Sie es bereits satt haben, lange Textblöcke zu betrachten.

Der erste Schritt besteht also darin, unsere Strategie NN (Lusha) zu trainieren, um vorherzusagen, welche Züge wahrscheinlich von einem Experten ausgeführt werden. Das Ziel dieses NN ist es, der KI zu ermöglichen, ähnlich wie ein erfahrener Mensch zu spielen. Dies ist ein neuronales Faltungsnetzwerk (wie bereits erwähnt, eine spezielle Art von NN, die für die Bildverarbeitung sehr nützlich ist), das ein vereinfachtes Bild einer Leiterplattenanordnung aufnimmt. „Gleichrichternichtlinearitäten“ sind Ebenen, die der Netzwerkarchitektur hinzugefügt werden können. Sie geben ihm die Fähigkeit, komplexere Dinge zu lernen. Wenn Sie zuvor NNs geschult haben, haben Sie möglicherweise die "ReLU" -Lage verwendet. Das sind diese.

Die Trainingsdaten waren hier in Form zufälliger Paare von Brettpositionen angegeben, und die Bezeichnungen waren die Aktionen, die von Menschen ausgewählt wurden, als sie sich in diesen Positionen befanden. Nur regelmäßiges betreutes Lernen.

Hier wird der „stochastische Gradient ASCENT“ verwendet. Nun, das ist ein Algorithmus für die Rückübertragung. Hier versuchen Sie, eine Belohnungsfunktion zu maximieren. Und die Belohnungsfunktion ist nur die Wahrscheinlichkeit der von einem menschlichen Experten vorhergesagten Handlung; Sie möchten diese Wahrscheinlichkeit erhöhen. Aber hey - du musst nicht wirklich zu viel darüber nachdenken. Normalerweise trainieren Sie das Netzwerk so, dass eine Verlustfunktion minimiert wird. Dies ist im Wesentlichen der Fehler / Unterschied zwischen dem prognostizierten Ergebnis und dem tatsächlichen Etikett. Das nennt man Gefälle ABSTIEG. In der konkreten Umsetzung dieses Forschungsbeitrags haben sie in der Tat den regulären Gradientenabstieg verwendet. Sie können leicht eine Verlustfunktion finden, die sich gegenüber der Belohnungsfunktion so verhält, dass die Minimierung dieses Verlusts die Belohnung maximiert.

Das Policy-Netzwerk besteht aus 13 Schichten und wird als "SL-Policy" -Netzwerk (SL = Supervised Learning) bezeichnet. Die Daten stammen von einer… Ich möchte nur sagen, dass es sich um eine beliebte Website handelt, auf der Millionen von Menschen Go spielen. Wie gut hat dieses Netzwerk mit SL-Richtlinien funktioniert?

Es war genauer als das, was andere Forscher zuvor getan hatten. Der Rest des Absatzes ist selbsterklärend. Was die "Rollout-Richtlinie" betrifft, erinnern Sie sich vor einigen Absätzen, wie langsam Lusha das SL-Richtliniennetz ist, sodass es sich nicht gut in den MCTS-Algorithmus integrieren lässt? Und wir haben eine andere schnellere Version von Lusha trainiert, Jerry, der ihr jüngerer Bruder war? Nun, das bezieht sich auf Jerry hier. Wie Sie sehen, ist Jerry nur halb so genau wie Lusha, ABER es ist tausende Male schneller! Wenn wir MCTS anwenden, wird dies wirklich dazu beitragen, die Einführung zukünftiger Simulationen zu beschleunigen.

Für diesen nächsten Abschnitt müssen Sie noch nicht * wissen *, was Reinforcement Learning betrifft, aber dann müssen Sie davon ausgehen, dass alles, was ich sage, funktioniert. Wenn Sie sich wirklich mit Details befassen und alles sicherstellen möchten, sollten Sie zuerst ein wenig über RL lesen.

Sobald Sie das SL-Netzwerk haben, trainiert in einer überwachten Weise mit menschlichen Spielbewegungen mit den menschlichen Bewegungsdaten, wie ich bereits sagte, müssen Sie sie alleine üben lassen und sich verbessern. Das machen wir hier. Nehmen Sie also einfach das SL-Richtliniennetzwerk, speichern Sie es in einer Datei und erstellen Sie eine weitere Kopie davon.

Anschließend können Sie mithilfe des Verstärkungslernens eine Feinabstimmung vornehmen. Hier lässt du das Netzwerk gegen sich selbst spielen und lernst aus den Ergebnissen.

Bei diesem Trainingsstil gibt es jedoch ein Problem.

Wenn Sie nur für immer gegen EINEN Gegner trainieren und dieser Gegner auch nur mit Ihnen exklusiv trainiert, können Sie nicht viel Neues lernen. Sie üben nur, wie man DIESEN Spieler schlägt. Sie haben es erraten, das ist übertrieben: Ihre Techniken spielen gut gegen einen Gegner, aber Sie verallgemeinern sie nicht gut gegen andere Gegner. Wie können Sie das beheben?

Nun, jedes Mal, wenn Sie ein neuronales Netzwerk optimieren, wird es zu einer etwas anderen Art von Player. Sie können diese Version des neuronalen Netzwerks also in einer Liste von "Spielern" speichern, die sich alle leicht unterschiedlich verhalten, oder? Großartig - während Sie das neuronale Netzwerk trainieren, können Sie es zufällig gegen viele verschiedene ältere und neuere Versionen des Gegners spielen lassen, die aus dieser Liste ausgewählt wurden. Es handelt sich um Versionen desselben Players, die sich jedoch alle geringfügig voneinander unterscheiden. Und je mehr du trainierst, desto MEHR Spieler kannst du noch mehr trainieren! Bingo!

In diesem Training ist das einzige, was den Trainingsprozess lenkt, das Endziel, d. H. Gewinnen oder Verlieren. Sie müssen das Netzwerk nicht speziell trainieren, um beispielsweise mehr Fläche auf dem Brett zu erobern usw. Sie geben ihm einfach alle möglichen legalen Schritte, aus denen er auswählen kann, und sagen: "Sie müssen gewinnen". Und deshalb ist RL so vielseitig. Es kann verwendet werden, um Richtlinien oder Wertschöpfungsnetzwerke für jedes Spiel zu trainieren, nicht nur für Go.

Hier testeten sie, wie genau dieses RL-Richtliniennetzwerk ohne MCTS-Algorithmus war. Wie Sie sich erinnern, kann dieses Netzwerk direkt eine Vorstandsposition einnehmen und entscheiden, wie ein Experte es spielen möchte. Sie können es also verwenden, um im Alleingang Spiele zu spielen.
Nun, das Ergebnis war, dass das fein abgestimmte RL-Netzwerk gegen das SL-Netzwerk gewann, das nur auf menschliche Bewegungen trainiert wurde. Es gewann auch gegen andere starke Go-Programme.

Zu beachten ist hierbei, dass das SL-Richtliniennetzwerk bereits vor dem Training dieses RL-Richtliniennetzwerks besser war als der Stand der Technik - und jetzt weiter verbessert wurde! Und wir sind noch nicht einmal auf die anderen Teile des Prozesses wie das Wertschöpfungsnetzwerk gekommen.

Wussten Sie, dass Babypinguine lauter niesen können als ein Hund bellen kann? Eigentlich stimmt das nicht, aber ich dachte, Sie möchten hier einen kleinen Scherz machen, um von den oben stehenden beängstigend aussehenden Gleichungen abzulenken. Kommen wir noch einmal zum Aufsatz: Wir haben Lusha hier trainiert. Nun zurück zu Foma - erinnern Sie sich an die „optimale Wertfunktion“: v * (s) -> die Ihnen nur sagt, wie wahrscheinlich es ist, dass Sie auf Ihrer aktuellen Brettposition gewinnen, wenn beide Spieler von diesem Punkt an perfekt spielen?
Um einen NN zu unserer Wertfunktion auszubilden, brauchen wir natürlich einen perfekten Spieler ... den wir nicht haben. Wir verwenden also nur unseren stärksten Spieler, nämlich unser RL-Netzwerk.

Es nimmt den aktuellen Status an und gibt die Wahrscheinlichkeit aus, dass Sie das Spiel gewinnen werden. Sie spielen ein Spiel und erfahren das Ergebnis (Gewinn oder Verlust). Jeder der Spielzustände fungiert als Datenmuster, und das Ergebnis dieses Spiels fungiert als Bezeichnung. Wenn Sie also ein Spiel mit 50 Zügen spielen, erhalten Sie 50 Datenmuster für die Wertvorhersage.

Lol Nein. Dieser Ansatz ist naiv. Sie können nicht alle 50 Züge aus dem Spiel verwenden und sie dem Datensatz hinzufügen.

Der Trainingsdatensatz musste sorgfältig ausgewählt werden, um eine Überanpassung zu vermeiden. Jeder Zug im Spiel ist dem nächsten sehr ähnlich, weil man sich nur einmal bewegt und dadurch eine neue Position bekommt, oder? Wenn Sie die Zustände aller 50 dieser Züge nehmen und sie zu den Trainingsdaten mit dem gleichen Label hinzufügen, haben Sie im Grunde eine Menge "irgendwie doppelter" Daten, was zu einer Überanpassung führt. Um dies zu verhindern, wählen Sie nur sehr unterschiedlich aussehende Spielzustände. Anstelle aller 50 Züge eines Spiels wählen Sie beispielsweise nur fünf aus und fügen sie dem Trainingsset hinzu. DeepMind hat 30 Millionen Positionen aus 30 Millionen verschiedenen Spielen eingenommen, um das Risiko doppelter Daten zu verringern. Und es hat funktioniert!

Nun etwas Konzeptuelles: Es gibt zwei Möglichkeiten, den Wert einer Brettposition zu bewerten. Eine Option ist eine magische Optimalwertfunktion (wie die oben trainierte). Die andere Möglichkeit besteht darin, einfach mit Ihrer aktuellen Richtlinie (Lusha) in die Zukunft auszurollen und das endgültige Ergebnis dieser Einführung zu überprüfen. Offensichtlich würde das reale Spiel selten Ihren Plänen entsprechen. DeepMind verglich jedoch, wie diese beiden Optionen funktionieren. Sie können auch eine Mischung dieser beiden Optionen durchführen. Wir werden etwas später mehr über diesen „Mischparameter“ erfahren. Machen Sie sich also Gedanken über dieses Konzept!

Nun, Ihr einzelnes neuronales Netzwerk, das versucht, die optimale Wertfunktion zu approximieren, ist NOCH BESSER, als Tausende von mentalen Simulationen mithilfe einer Rollout-Richtlinie durchzuführen! Foma hat es hier so richtig krachen lassen. Als sie die Richtlinie für den schnellen Rollout durch die doppelt so genaue (aber langsame) RL-Richtlinie Lusha ersetzten und damit Tausende von Simulationen durchführten, war dies besser als bei Foma. Aber nur ein bisschen besser und zu langsam. Damit Foma die Gewinnerin dieses Wettbewerbs ist, hat sie bewiesen, dass sie nicht ersetzt werden kann.

Nachdem wir die Richtlinien- und Wertefunktionen trainiert haben, können wir sie mit MCTS kombinieren und unseren ehemaligen Weltmeister, den Zerstörer von Großmeistern, zum Durchbruch einer Generation machen, der 288 Pfund wiegt, ein und nur Alphaaaaa GO !

In diesem Abschnitt sollten Sie im Idealfall die Funktionsweise des MCTS-Algorithmus etwas genauer kennen, aber was Sie bisher gelernt haben, sollte ausreichen, um ein gutes Gefühl dafür zu bekommen, was hier vor sich geht. Das Einzige, was Sie beachten sollten, ist, wie wir die Richtlinienwahrscheinlichkeiten und Wertschätzungen verwenden. Wir kombinieren sie während des Rollouts, um die Anzahl der Züge, die wir bei jedem Schritt ausführen möchten, einzugrenzen. Q (s, a) stellt die Wertefunktion dar und u (s, a) ist eine gespeicherte Wahrscheinlichkeit für diese Position. Ich erkläre es.

Denken Sie daran, dass das Richtliniennetzwerk überwachtes Lernen verwendet, um Expertenbewegungen vorherzusagen. Und es gibt Ihnen nicht nur den wahrscheinlichsten Zug, sondern auch Wahrscheinlichkeiten für jeden möglichen Zug, aus denen hervorgeht, wie wahrscheinlich es ist, dass es sich um einen Expertenzug handelt. Diese Wahrscheinlichkeit kann für jede dieser Aktionen gespeichert werden. Hier nennen sie es "vorherige Wahrscheinlichkeit", und sie verwenden es offensichtlich, während sie auswählen, welche Aktionen untersucht werden sollen. Um also zu entscheiden, ob Sie einen bestimmten Zug ausprobieren möchten oder nicht, müssen Sie zwei Dinge berücksichtigen: Erstens: Wenn Sie diesen Zug spielen, wie wahrscheinlich ist es, dass Sie gewinnen? Ja, wir haben bereits unser „Wertschöpfungsnetzwerk“, um diese erste Frage zu beantworten. Und die zweite Frage lautet: Wie wahrscheinlich ist es, dass ein Experte diesen Schritt wählt? (Wenn es sehr unwahrscheinlich ist, dass ein Umzug von einem Experten ausgewählt wird, warum sollte man überhaupt Zeit damit verschwenden, darüber nachzudenken? Dies bekommen wir vom Netzwerk der Politiker)

Sprechen wir dann über den „Mischparameter“ (siehe zurück!). Wie bereits erwähnt, haben Sie zur Bewertung von Positionen zwei Möglichkeiten: Zum einen verwenden Sie einfach das von Ihnen verwendete Wertnetzwerk, um die Zustände von Anfang an zu bewerten. Und zweitens können Sie versuchen, mit Ihrer aktuellen Strategie schnell ein Rollout-Spiel zu spielen (vorausgesetzt, der andere Spieler spielt ähnlich) und sehen, ob Sie gewinnen oder verlieren. Wir haben gesehen, dass die Wertfunktion besser ist als das Ausführen von Rollouts im Allgemeinen. Hier verbinden sie beide. Sie versuchen, jede Vorhersage mit 50 bis 50 oder 40 bis 60 oder 0 bis 100 usw. zu bewerten. Wenn Sie dem ersten ein% von X hinzufügen, müssen Sie dem zweiten 100-X hinzufügen. Das bedeutet dieser Mischparameter. Sie werden diese Treffer- und Versuchsergebnisse später in der Zeitung sehen.

Nach jedem Roll-out aktualisieren Sie Ihren Suchbaum mit den Informationen, die Sie während der Simulation erhalten haben, damit Ihre nächste Simulation intelligenter ist. Und am Ende aller Simulationen wählen Sie einfach den besten Zug aus.

Interessante Einblicke hier!

Erinnern Sie sich, dass die RL-Richtlinie NN besser war als die von Menschen geschulte SL-Richtlinie NN? Wenn Sie sie jedoch in den MCTS-Algorithmus von AlphaGo einfügen, hat sich die Verwendung des vom Menschen trainierten NN als bessere Wahl erwiesen als das fein abgestimmte NN. Bei der Wertefunktion (für die Sie sich erinnern würden, dass ein starker Spieler einen perfekten Spieler annähert) ist es jedoch besser, Foma mit der RL-Richtlinie zu trainieren, als sie mit der SL-Richtlinie zu trainieren.

„Um all diese Auswertungen durchzuführen, ist viel Rechenleistung erforderlich. Wir mussten wirklich die großen Waffen rausholen, um diese verdammten Programme ausführen zu können. “

Ein weiteres Foto aus dem ersten Spiel von AlphaGo gegen Lee Sedol.

Selbsterklärend.

"LOL, unser Programm hat uns buchstäblich die Hosen von allen anderen Programmen abgeblasen, die vor uns kamen."

Dies geht wieder auf diesen „Mischparameter“ zurück. Bei der Bewertung von Positionen wurde der Wertefunktion und den Rollouts die gleiche Bedeutung beigemessen, anstatt nur eine davon zu verwenden. Der Rest ist selbsterklärend und gibt einen interessanten Einblick!

Selbsterklärend.

Selbsterklärend. Aber lesen Sie diesen rot unterstrichenen Satz noch einmal. Ich hoffe, Sie können jetzt klar erkennen, dass diese Zeile hier so ziemlich die Zusammenfassung dessen ist, worum es in diesem gesamten Forschungsprojekt ging.

Abschließender Absatz. „Lasst uns hier ein bisschen mehr angeben, weil wir es verdient haben!“ :)

Oh, und wenn Sie ein Wissenschaftler oder ein Technologieunternehmen sind und Hilfe benötigen, um nicht-technischen Leuten Ihre Wissenschaft für Marketing, PR oder Training usw. zu erklären, kann ich Ihnen helfen. Schicken Sie mir eine Nachricht auf Twitter: @mngrwl