Zweck des Dirichlet-Rauschens im AlphaZero-Papier


10

In den Artikeln AlphaGo Zero und AlphaZero von DeepMind beschreiben sie das Hinzufügen von Dirichlet- Rauschen zu den vorherigen Wahrscheinlichkeiten von Aktionen vom Wurzelknoten (Board-Status) in der Monte-Carlo-Baumsuche:

Weitere Explorations wird erreicht durch Zugabe von Dirichlet Rauschen zu den vorherigen Wahrscheinlichkeiten in dem Wurzelknoten , insbesondere , wo und ; Dieses Rauschen stellt sicher, dass alle Bewegungen versucht werden können, die Suche jedoch möglicherweise schlechte Bewegungen außer Kraft setzt.s0P(s,a)=(1ε)pa+εηaηDir(0.03)ε=0.25

(AlphaGo Zero)

Und:

Dirichlet-Rauschen wurde zu den vorherigen Wahrscheinlichkeiten im Wurzelknoten hinzugefügt; Dies wurde umgekehrt proportional zur ungefähren Anzahl von legalen Bewegungen in einer typischen Position auf einen Wert von skaliert für Schach, Shogi und Go.Dir(α)α={0.3,0.15,0.03}

(AlphaZero)

Zwei Dinge, die ich nicht verstehe:

  1. P(s, a)ist ein dimensionaler Vektor. Ist Abkürzung für die Dirichlet-Verteilung mit Parametern mit dem Wert ?nDir(α)nα

  2. Ich bin Dirichlet nur als Konjugat vor der multinomialen Verteilung begegnet. Warum wurde es hier gepflückt?

Der Kontext P(s, a)ist nur eine Komponente der PUCT-Berechnung (Polynom Upper Confidence Tree, eine Variante der oberen Konfidenzgrenzen) für einen bestimmten Zustand / eine bestimmte Aktion. Es wird durch eine Konstante und eine Metrik skaliert, wie oft die angegebene Aktion während des MCTS unter ihren Geschwistern ausgewählt und zum geschätzten Aktionswert hinzugefügt wurde Q(s, a):

  • PUCT(s, a) = Q(s, a) + U(s, a).
  • U(s,a)=cpuctP(s,a)bN(s,b)1+N(s,a) .

1
Okay, Dir (a) bedeutet in der Tat Dir (a, a, ...). Für a <1 wird dies in der Nähe der Standardbasisvektoren von R ^ n konzentriert (je kleiner, desto enger). Dirichlet (a) hilft also (1), die Summe der Parameter konstant zu halten, (2) sich in der Nähe der Basisvektoren zu konzentrieren und (3) keinen von ihnen zu bevorzugen.
Mönch

Antworten:


6

Frage 1 ist einfach, hier ist ein Vektor von Wiederholungen des gegebenen Wertes. (Wie von Max S. beantwortet)α

Frage 2 ist interessanter: Die Dirichlet-Verteilung hat in diesem Zusammenhang die folgende relevante Interpretation: Wenn der beobachtete Vektor von Ergebniszählungen ist, die aus einer (unbekannten) kategorialen Verteilung mit Ergebniswahrscheinlichkeiten , dann ist die Wahrscheinlichkeit, dass die tatsächliche zugrunde liegende Verteilung ist, vorausgesetzt, Sie haben als Anzahl beobachtet. (Dies ist im Grunde die Definition einer Doppelverteilung.)απDir(α)(π)Cat(π)α

Jetzt P(s,a)die Wahrscheinlichkeit schätzt , dass ein guter Spieler spielen würde ain s, dh die Parameter seiner kategorischen Verteilung, die AlphaZero lernen will. So würde vernünftigen Schätzungen für Probe , wenn wir einen guten Spieler spielen bewegt beobachtet -Zeiten. Aber wenn einige , dann werden alle have , Exploration zu verhindern. Durch Hinzufügen des Rauschens nehmen sie an, dass sie beobachtet haben, dass jeder Zug einige Male (hier gewählt 0,3, 0,15, 0,03).Dir(α)pi=P(s,a)ααi=0πDir(α)πi=0α

Ich gehe davon aus, dass sie ~ 10 zufällige Spiele in jedem Spiel beobachtet haben: Beim Schach geht davon aus, dass Sie jeden Zug 0,3 Mal gespielt haben. Angesichts der Tatsache, dass laut Allis ~ 35 Züge verfügbar sind , gehen die Autoren davon aus, dass Sie in jedem Knoten ~ 10 zufällige Züge gesehen haben. Wenn wir in Go durchschnittlich ~ 270 legale Bewegungen annehmen (3/4 von 361 Board-Positionen), sehen wir ein Äquivalent zur Beobachtung von ~ 8 zufälligen Bewegungen. (Ich habe keine Daten für Shogi.)Dir(0.3)


3

Für Frage Nummer 1 lautet die Antwort ja, ist ein Vektor, aber in diesem Fall sind alle Werte gleich. Laut Wikipedia wird dies als symmetrische Dirichlet-Verteilung bezeichnet und verwendet, wenn "keine Vorkenntnisse vorliegen, die eine Komponente einer anderen vorziehen". In diesem Fall bedeutet dies, dass Sie einer bestimmten Komponente kein weiteres Rauschen hinzufügen möchten.α

Bei Frage 2 haben Stichproben aus einer Dirichlet-Verteilung die Eigenschaft, dass die Elemente zu 1 summiert werden. Ich gehe davon aus, dass sie dies verwenden, um sicherzustellen, dass nach dem Hinzufügen des Rauschens die Elemente immer noch zu 1 summieren.


Vielen Dank. Zusätzlich zur Summierung zu einer (was wir auch durch Skalieren einiger beliebiger Verteilungen tun können) werden die Standardbasisvektoren bevorzugt. Das scheint nützlich.
Mönch
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.