Kürzlich wurde bekannt, dass das DeepMind-Forschungsteam von Alphabet seine Engine für maschinelles Lernen erweitert hat, um sowohl Shogi als auch Schach zu spielen. Offensichtlich hat seine Leistung im Schach nach nur wenigen Stunden des Selbstlernens, dh wenn man nur gegen sich selbst spielt, die Regeln der Spiele befolgt, die der aktuellen Top-Engines wie Stockfish 8 bereits übertroffen. Ich persönlich weiß noch nicht, wie genau die Matches eingestellt wurden, da Stockfish bei begrenzten Berechnungszeiten eine sehr schlechte Leistung bringen kann. In jedem Fall ist dies eine sehr beeindruckende Leistung, denn selbst wenn sich herausstellt, dass man Stockfish mit wenigen zusätzlichen Trainingsstunden optimaler hätte einrichten können, würde AlphaZero das Spielniveau erneut übertreffen, was bedeutet, dass AlphaZero von Grund auf stärker ist als jede andere Strömung Standard-Schachengine basierend auf heuristischen Auswertungsfunktionen.
Angesichts dieser Neuigkeiten wäre es großartig, wenn jemand auf die Hauptunterschiede bei der Funktionsweise einer maschinengelernten Schachmaschine im Vergleich zu den Standardmaschinen eingehen könnte, die wir alle gewohnt sind. Genauer gesagt:
- Ist die Evaluierungsfunktion, die AlphaZero verwendet und die mit maschinellen Lernmethoden trainiert wurde, am Ende nicht nur eine weitere heuristische Evaluierungsfunktion? Wenn ja, wäre es fair zu sagen, dass der grundlegende Unterschied zwischen den Bewertungsfunktionen der beiden Motoren darin besteht, dass Stockfish eine von Menschen handabgestimmte optimierte Bewertungsfunktion hat, was bedeutet, dass die Definition der zu optimierenden Funktion festgelegt ist, während z AlphaZero, die Zielbewertungsfunktion wird durch zusätzliches Training (zum Beispiel durch Selbstspiel) ständig neu definiert? Letzteres zu einer weitaus dynamischeren Herangehensweise machen.
Letztendlich wendet ein Motor wie Stockfish seine Bewertungsfunktion auf den Baum möglicher Bewegungen an und entscheidet, welche Zweige behalten und welche fallen gelassen werden sollen, und geht dann durch einen tieferen BetonBei der Analyse jedes Zweigs wird anhand seiner Bewertungsfunktion herausgefunden, welcher Zweig den höchsten Wert ergab, und dies wird zur Hauptvariante (natürlich gibt es viele fortgeschrittene Techniken, um diesen großen Baum effizient zu beschneiden). Das heißt, für jede Position muss diese äußerst konkrete Routine wiederholt werden, damit Stockfish eine Entscheidung trifft. Ich stelle mir dagegen vor, AlphaZero macht etwas ganz anderes: Es basiert nicht auf einer konkreten Analyse des Baums möglicher Bewegungen an einer bestimmten Position, sondern weist dieser Position durch seine Bewertungsfunktion im Wesentlichen einen Wert zu (was intuitiv dem Putten ähnlich ist die aktuelle Position in Analogie zu allen anderen Positionen, für die sie trainiert wurde, ohne jemals konkret arbeiten zu müssenAnalyse wie Stockfish oder sogar ein menschlicher Spieler. Ist dies überhaupt ein gutes Bild der Funktionsweise von AlphaZero oder ähnlich ausgebildeten Maschinenlernmaschinen?
Wir wissen, dass der Raum von Schachpositionen groß genug ist, dass jeder Versuch, alle Positionen darin abzutasten, im Prinzip sogar völlig vergeblich wäre (EXPTIME-Komplexität), was nahelegt, dass kein Umfang an Training durch Selbstspiel ausreichen würde Haben Sie alle Positionen erkundet? Wie kann das Endergebnis dann gut sein, obwohl Sie möglicherweise einen kleinen Bruchteil der Positionen des Raums im Selbstspiel erkundet haben? Was ist die Schlüsselidee hier im Spiel?
Ich vermute, AlphaZero hat eine sehr optimale Möglichkeit, eine bestimmte Position, auch wenn sie neu ist, mit einer zuvor besuchten Position in seinem Trainingssatz zu vergleichen. Je näher der Vergleich ist, desto aussagekräftiger ist die Bewertung, die man aus dem Vergleich ziehen kann. Wenn es zum Beispiel in Spiel 5 den Zug Bg5 gespielt hat , muss es während des Trainings eine ähnliche Struktur untersucht haben, dh es kann erkennen, dass diese Position im Wesentlichen einer (möglicherweise völlig) anderen entspricht, die es in seinem Training gelernt hat Analogie dazu, wie die Gesichtserkennung durch maschinelles Lernen erreicht wird, und als Ergebnis gelangt man zu dem Schluss, dass Bg5 der beste Zug sein sollte, genau wie in dieser (oder diesen) anderen ähnlichen Positionen. Ist das überhaupt eine richtige Vermutung? Ich habe keine Ahnung wie dieser Vergleich aussieht Dies ist erledigt, da es sicherlich nicht möglich ist, alle trainierten Positionen zu speichern und jedes Mal zu analysieren.
Dies ist lediglich ein Versuch, einen Einblick in die Funktionsweise von AlphaZero und die Frage zu erhalten, wie es zu einer Entscheidung kommt, die eine bestimmte Position einnimmt.
Ich denke, meine Frage wäre, wie das neuronale Netz "lernt", was zu tun ist, an einer Position, die es nicht angetroffen hat. Wenn die tatsächliche AZ ein MCTS unter Verwendung der Bias + -Gewichte aus dem trainierten neuronalen Netz ausführt, wird es nur einen Schritt zurückgeschoben, um zu ermitteln, wie das neuronale Netz diese Werte berechnet. Wenn es durch zufälliges Selbstspiel ohne menschliches Wissen geschehen ist, wie entscheidet es dann, wie eine Position gewichtet wird, die es noch nie gesehen hat?
quelle