Müssen wir in AlphaZero die Daten der Terminalzustände speichern?
Ich habe eine Frage zu den Trainingsdaten, die während des Aktualisierungs- / Rückverbreitungsschritts des neuronalen Netzwerks in AlphaZero verwendet werden.
Aus dem Papier:
Die Daten für jeden Zeitschritt $t$ wird gespeichert als ($s_t, \pi_t, z_t$) wo $z_t = \pm r_T$ ist der Spielgewinner aus der Sicht des aktuellen Spielers im Schritt $t$. Parallel dazu (Abbildung 1b) neue Netzwerkparameter$\Theta_i$ werden aus Daten trainiert ($s,\pi, z$) gleichmäßig über alle Zeitschritte der letzten Iteration (en) des Selbstspiels abgetastet
In Bezug auf die Politik zum Zeitpunkt $t$ (($\pi_t$) Habe ich dies als die Wahrscheinlichkeitsverteilung verstanden, eine Aktion zu ergreifen, die proportional zur Anzahl der Besuche für jeden untergeordneten Knoten ist, dh während des MCTS, wenn ein übergeordneter Knoten (Status) zu einem bestimmten Zeitpunkt vorliegt $t$, wenn ein untergeordneter Knoten (nachfolgender Zustand) $a$ besucht wird $N_a$ Zeiten und alle untergeordneten Knoten werden besucht $\sum_b N_b$ mal dann die Wahrscheinlichkeit von $a$ (und seine entsprechende Bewegung) wird abgetastet $\frac{N_a}{\sum_b N_b}$, und dies parametrisiert die Verteilung $\pi_t$. Ist das richtig? Wenn dies der Fall ist, dann für einen bestimmten Terminalstatus$T$können wir eine Verteilung nicht parametrisieren, da wir keine untergeordneten Knoten (Zustände) besuchen müssen. Bedeutet das, dass wir nicht hinzufügen ($s_T, \pi_T, z_T$) zu den Trainingsdaten?
Auch eine Folgefrage zur Verlustfunktion:
$l = (z-v)^2 - \pi^T log\textbf{p} + c||\Theta||^2$
Ich bin verwirrt darüber $\pi^T$Notation. Ich gehe davon aus, dass dies ein Vektor von Aktionen ist, die aus allen Richtlinien in der$N$ X. $(s_t, \pi_t, z_t)$Minibatch, aber ich bin nicht sicher. (PS die$T$ benutzt in $\pi^T$ ist anders als die $T$Wird verwendet, um einen Terminalstatus zu kennzeichnen, wenn Sie sich das Papier ansehen. Entschuldigung für die Verwirrung, ich weiß nicht, wie ich zwei unterschiedlich aussehende T's schreiben soll)
Antworten
Ich bin nicht 100% sicher, ob sie Daten für Endspielzustände hinzugefügt haben oder nicht, aber es ist sehr vernünftig, die Entscheidung zu treffen, keine Daten für Endspielzustände einzuschließen. Wie Sie zu Recht betont haben, haben wir in diesen Fällen keine aussagekräftigen Ziele, um den Richtlinienkopf zu aktualisieren, und dies ist kein wirkliches Problem, da wir die Richtlinienausgabe auch in einem Endspielstatus niemals tatsächlich verwenden würden. Für den Wertekopf könnten wir sinnvolle Ziele bereitstellen, auf die aktualisiert werden soll, aber wir müssten solche Ergebnisse auch nie wirklich nutzen. Wenn wir bei einer Baumsuche auf einen Endspielstatus stoßen, sichern wir einfach den wahren Wert dieses Endspielstatus, anstatt das Netzwerk aufzurufen, um eine Annäherung an die Wertfunktion zu erhalten.
Theoretisch könnte ich mir einige Fälle vorstellen, in denen das Training des Wertekopfs auf Endspielzustände leicht vorteilhaft sein könnte, obwohl dies nicht unbedingt erforderlich ist. Dies könnte die Verallgemeinerung auf ähnliche Spielzustände ermöglichen, die nicht terminal sind (aber fast terminal sind), und das Lernen für diese beschleunigen. Zum Beispiel, wenn Sie ein Spiel haben, bei dem das Ziel darin besteht, eine Zeile von zu vervollständigen$5$ Teile, trainieren Sie den Wertekopf auf Terminalzuständen, in denen Sie tatsächlich eine Linie von haben $5$ Teile und haben das Spiel vollständig gewonnen, könnte das Lernen für ähnliche Spielzustände, in denen Sie es möglicherweise noch nicht haben, verallgemeinern und beschleunigen $5$Stücke in einer Linie, aber sind sehr nah an diesem Ziel. Das heißt, intuitiv habe ich wirklich nicht das Gefühl, dass dies einen großen Vorteil bringen würde (wenn überhaupt), und wir könnten wahrscheinlich auch Fälle finden, in denen es schädlich wäre.
In dem $\pi^{\text{T}}$ Notation, $\pi$ ist ein Vektor (für jeden beliebigen Zeitschritt ist der Zeitschritt hier nicht angegeben), der eine diskrete Wahrscheinlichkeitsverteilung über Aktionen enthält (Besuchszahlen von MCTS, normalisiert in eine Wahrscheinlichkeitsverteilung), und die $\text{T}$bedeutet einfach, dass wir die Transponierte dieses Vektors nehmen. Persönlich mag ich die Notation nicht, ich bevorzuge so etwas$\pi^{\top}$ das unterscheidet sich deutlicher von einem Brief $T$ oder $\text{T}$.
Wie auch immer, sobald Sie das verstanden haben, um die Transponierung zu bezeichnen, werden Sie das sehen $\pi^{\top}\log(\mathbf{p})$ ist ein Punktprodukt zwischen zwei Vektoren, das dann ein einzelner Skalar ist.