Mein Verständnis ist, dass der Algorithmus von Alpha Zero nach der "Lern" -Phase behoben wurde. Würde er also für jede Position den gleichen Zug ergeben? War die Variabilität des Spiels vollständig auf eine Stockfisch-Einstellung zurückzuführen, oder zeigte Alpha Zero auch ein zufälliges Element in seiner Zugauswahl an?
engines
computer-chess
alphazero
Firtydank
quelle
quelle
Antworten:
Ich habe bemerkt, dass AlphaZero 1.d4 und 1.Sf3 in http://www.chessgames.com/perl/chess.pl?tid=91944&crosstable=1 gespielt hat . Möglichkeiten:
Bitte beachten Sie, dass die Parameter des Modells möglicherweise "fest" sind (Ihre eigenen Wörter), die tatsächliche Bewegung jedoch möglicherweise anders ist. Wir haben keinen Quellcode für AlphaZero, aber Multithreading und MCTS sind wahrscheinlich zwei Hauptursachen.
quelle
Die LC0-Autoren haben das AlphaZero-Papier sehr sorgfältig studiert, eigene Experimente durchgeführt und sind zu folgendem Ergebnis gekommen. Obwohl AlphaZero seinen Algorithmus Monte-Carlo-Baumsuche nennt (alle Monte-Carlo-Methoden sind per Definition explizit zufällig), verwendet AlphaZero nach einer bestimmten Anzahl von Zügen keinen expliziten Nichtdeterminismus (ich glaube, das sind 15 Züge).
MCTS besteht aus zwei verschiedenen Teilen, die Zufälligkeiten in die Bewegungsauswahl einbringen können.
Während der Suchphase weist AlphaZero Gewichte zu, anhand derer Bewegungen untersucht werden sollen, basierend auf zwei Faktoren: der vom neuronalen Netzwerk ausgewerteten Gewinnwahrscheinlichkeit sowie einigen Teilbaumgrößenstatistiken der übergeordneten und untergeordneten Bewegungsunterbäume. Der erste Faktor stellt sicher, dass zuerst vielversprechendere Zeilen bewertet werden, und der zweite Faktor stellt sicher, dass weniger vielversprechende Zeilen schließlich durchsucht werden. In einer natürlichen Implementierung von MCTS würde es gewichtete zufällige Entscheidungen zwischen diesen gewichteten Möglichkeiten verwenden. In der Realität wählt AlphaZero völlig deterministisch zwischen diesen aus, indem jedes Mal nur das maximale Gewicht ausgewählt wird. Dies geschieht, weil sich die Zufälligkeit in diesem Schritt nicht als hilfreich herausstellt und den Motor im Durchschnitt nur von den wichtigeren Variationen ablenkt.
Während der Verschiebungsphase kann eine gewichtete Auswahl zwischen Verschiebungskandidaten getroffen werden, die bereits tiefe und genaue Bewertungen haben, die von der Suchphase berechnet wurden. Die Idee ist, leicht suboptimale Bewegungen zu machen, um zu versuchen, Vielfalt in sein Spiel einzuführen, damit es nicht jedes Mal das gleiche Spiel spielt. Dies ist besonders wichtig während des Trainings, führt aber auch zu interessanteren Spielergebnissen. Es stellt sich heraus, dass AlphaZero dies nur für die ersten 15 Züge oder so tut, danach wählt es immer den besten Zug. Dieser Determinismus erweist sich als wesentlich für sein äußerst genaues Endspiel, bei dem sich winzige Unterschiede in der Bewertung als Unterschied zwischen Unentschieden und Gewinnen herausstellen.
Dies gilt sowohl während des Trainings als auch während der Evaluierung.
Mit anderen Worten, sobald es aus der Öffnung heraus ist, ist sein Spiel so deterministisch wie ein traditioneller Motor.
Beachten Sie jedoch, dass es dieselbe Art von Multithreading- und Zeitsteuerungs-Nichtdeterminismus wie herkömmliche Engines gibt.
quelle