Priorisierte Wiedergabe, was macht Importance Sampling wirklich?


9

Ich kann den Zweck der Wichtigkeitsabtastung von Gewichten (IS) in der priorisierten Wiedergabe (Seite 5) nicht verstehen .

Es ist wahrscheinlicher, dass ein Übergang aus der Erfahrungswiederholung entnommen wird, je höher seine "Kosten" sind. Nach meinem Verständnis hilft 'IS' dabei, die Verwendung der priorisierten Wiedergabe reibungslos aufzugeben, nachdem wir lange genug trainiert haben. Aber was verwenden wir stattdessen, einheitliche Stichproben?

Ich kann wohl nicht erkennen, wie sich jede Komponente in einem solchen Koeffizienten auf das Ergebnis auswirkt. Könnte jemand es in Worten erklären?

wich=(1N.1P.(ich))β

Es wird dann verwendet, um den Gradienten zu dämpfen, den wir aus Übergängen zu erhalten versuchen.

Wo:

  • wich ist "IS"
  • N ist die Größe des Experience Replay-Puffers
  • P (i) ist die Chance, den Übergang auszuwählen , abhängig davon, "wie fett seine Kosten sind".ich
  • β beginnt bei 0 und wird mit jeder neuen Epoche näher und näher an 1 gezogen.

Ist mein Verständnis dieser Parameter auch korrekt?

Bearbeiten Irgendwann, nachdem die Antwort akzeptiert wurde, fand ich eine zusätzliche Quelle, ein Video, das für Anfänger hilfreich sein könnte - MC Simmulations: 3.5 Importance Sampling


Bearbeiten Wie @avejidah im Kommentar zu seiner Antwort sagte " wird verwendet, um die Stichproben durch die Wahrscheinlichkeit zu mitteln, mit der sie abgetastet werden" . 1/.N.

Um zu erkennen, warum es wichtig ist, nehmen wir an , dass auf 1 festgelegt ist. Wir haben 4 Stichproben mit jeweils wie folgt:βP.(ich)

0.1  0.2   0.3     0.4

Das heißt, der erste Eintrag hat 10% der Auswahl, der zweite 20% usw. Wenn wir sie nun umkehren, erhalten wir:

 10   5    3.333   2.5

Mittelung über (in unserem Fall ) erhalten wir:1/.N.1/.4

2.5  1.25  0.8325  0.625     ...which would add up to '5.21'

Wie wir sehen können, sind sie viel näher an Null als die einfach invertierten Versionen ( ). Dies bedeutet, dass der Gradient für unser Netzwerk nicht so stark vergrößert wird, was zu einer viel geringeren Varianz führt, wenn wir unser Netzwerk trainieren.10,5,3.333,2.5

Ohne dieses hätten wir das Glück, die am wenigsten wahrscheinliche Stichprobe ( ) auszuwählen , und der Gradient würde zehnmal skaliert. Bei kleineren Werten, z. B. einer Wahrscheinlichkeit von , wäre es noch schlimmer , wenn unsere Erfahrungswiederholung viele tausend Einträge enthält, was durchaus üblich ist.1N.0,10,00001

Antworten:


10

DQN leidet an sich unter Instabilität. In der ursprünglichen Implementierung werden mehrere Techniken verwendet, um die Stabilität zu verbessern:

  1. Ein Zielnetzwerk wird mit Parametern verwendet, die hinter dem trainierten Modell zurückbleiben.
  2. Belohnungen werden auf den Bereich [-1, 1] begrenzt;
  3. Farbverläufe werden auf den Bereich [-1, 1] gekürzt (unter Verwendung von Huber Loss oder Gradientenbeschneidung);
  4. und am relevantesten für Ihre Frage ist, dass ein großer Wiedergabepuffer zum Speichern von Übergängen verwendet wird.

Wenn Sie mit Punkt 4 fortfahren, hilft die Verwendung vollständig zufälliger Stichproben aus einem großen Wiedergabepuffer bei der Dekorrelation der Stichproben, da Übergänge aus Hunderttausenden von Episoden in der Vergangenheit genauso wahrscheinlich abgetastet werden wie neue. Wenn dem Mix jedoch Priority Sampling hinzugefügt wird, wird das rein zufällige Sampling aufgegeben: Es besteht offensichtlich eine Tendenz zu Samples mit hoher Priorität. Um diese Verzerrung zu korrigieren, werden die Gewichte, die Abtastwerten mit hoher Priorität entsprechen, sehr wenig angepasst, während diejenigen, die Abtastwerten mit niedriger Priorität entsprechen, relativ unverändert bleiben.

Intuitiv sollte dies Sinn machen. Proben mit hoher Priorität werden wahrscheinlich viele Male im Training verwendet. Das Reduzieren der Gewichte auf diesen oft gesehenen Proben sagt dem Netzwerk im Grunde: "Trainiere auf diesen Proben, aber ohne viel Nachdruck; sie werden bald wieder gesehen." Wenn umgekehrt ein Beispiel mit niedriger Priorität angezeigt wird, teilen die IS-Gewichte dem Netzwerk im Grunde mit: "Dieses Beispiel wird wahrscheinlich nie wieder angezeigt, also vollständig aktualisiert." Denken Sie daran, dass diese Samples mit niedriger Priorität ohnehin einen niedrigen TD-Fehler aufweisen und daher wahrscheinlich nicht viel daraus zu lernen ist. Für Stabilitätszwecke sind sie jedoch immer noch wertvoll.

In der Praxis wird der Beta-Parameter über die Trainingsdauer auf 1 geglüht. Der Alpha-Parameter kann gleichzeitig getempert werden, wodurch die priorisierte Abtastung aggressiver wird und gleichzeitig die Gewichte stärker korrigiert werden. In der Praxis scheint es nach dem von Ihnen verknüpften Artikel der Sweet Spot für prioritätsbasierte Stichproben zu sein, ein festes Alpha (.6) beizubehalten, während das Beta von .4 auf 1 geglüht wird (Seite 14).

Nebenbei bemerkt, aus meiner persönlichen Erfahrung heraus führt das einfache Ignorieren der IS-Gewichte (dh überhaupt nicht korrigieren) zu einem Netzwerk, das zuerst gut trainiert, aber dann scheint das Netzwerk zu passen, vergisst, was es gelernt hat (auch bekannt als katastrophales Vergessen). und Panzer. Bei Atari Breakout beispielsweise steigen die Durchschnittswerte während der ersten 50 Millionen Frames, und dann werden die Durchschnittswerte vollständig gepanzert. Das von Ihnen verlinkte Papier beschreibt dies ein wenig und enthält einige Diagramme.


Vielen Dank! Ich habe Bedenken, warum die Autoren um balancieren müssen1N.1P.(ich)1P.(ich)

2
1N.1P.(ich)P.(ich)prichÖichkprichÖk(td_errÖr+ε)α1N.

1
@ user3180 Bei der Stichprobenerhebung geht es nicht darum, einen unvoreingenommenen Schätzer für die erwartete Rendite zu erhalten - sie ist von Natur aus voreingenommen. Der Punkt ist, dass einige Proben mehr Einfluss auf das Training haben als andere und daher häufiger entnommen werden sollten. Die Gewichtung korrigiert die Abweichung, indem die Gewichtsanpassungen relativ zu den Prioritäten der Stichproben verringert werden. Diese Gewichtung wird immer wichtiger, wenn das Netzwerk zu konvergieren beginnt, sodass das Tempern verwendet wird. Das PER-Papier deckt die Gewichtung ab oder korrigiert die Vorspannung auf andere Weise vollständig (siehe Abbildung 12).
Avejidah

2
@ user3180 In Bezug auf Ihre zweite Frage zur Verwendung des vollen Gewichts (β = 1): Ich vermute, dass Sie in diesem Fall im Allgemeinen immer noch einen Vorteil für PER sehen, aber im Allgemeinen ist das Training langsamer als beim Beta-Annealing. Beachten Sie, dass es zwei Parameter gibt, α und β, und selbst wenn Sie β auf 1 festlegen, bestimmt der α-Parameter, wie viele Stichproben priorisiert werden. Das heißt, die Abtastwerte werden immer noch vorgespannt gezogen, und selbst wenn die Vorspannung vollständig korrigiert ist, unterscheidet sich die Lösung, auf die Ihr Netzwerk konvergiert, vom einheitlichen Fall. Siehe auch hier Abbildung 12 im PER-Papier.
Avejidah

1
@ user3180 Ich bin nicht sicher, ob ich eine gute mathematische Antwort geben kann. Der praktische Grund ist jedoch, dass durch die Priorisierung der Netzwerkzüge ein Datensatz erstellt wird, der sich vom einheitlichen Fall unterscheidet. Mit 0 <α <= 1 werden die Abtastwerte priorisiert, sodass sie ungleichmäßig und voreingenommen sind. Natürlich können Sie die Gewichte anpassen, um diese Abweichung zu korrigieren, aber die Stichproben unterscheiden sich immer noch drastisch vom einheitlichen Fall. Das Training mit einem anderen Probensatz ergibt unabhängig von den Gewichtsanpassungen eine andere Lösung.
Avejidah

1

Ich habe einen Zweifel. Als PER-Papier

Aus Stabilitätsgründen normalisieren wir Gewichte immer um 1 / maxi wi, damit sie das Update nur nach unten skalieren

Wird der 1 / N-Faktor also nicht unwirksam? Betrachten Sie zum Beispiel die letzte Stichprobe.

case 1 without N : 0.25/10 = 0.25
case 2 with N=4; 0.625/2.5 = 0.25.

damit,

Wi = pow(N,-beta) * pow(Pi, -beta)
Wmax = pow(N,-beta) * pow(Pmin,-beta)

durch Normalisierung,

Wi/Wmax will cancel out the pow(N, -beta).

Bitte helfen Sie mir, wenn mein Verständnis falsch ist.


Du brauchst es noch. Angenommen, Sie haben 100 Einträge und einen Maximalwert für einen Eintrag von beispielsweise 5. Stellen Sie sich nun vor, Sie wechseln zu 1 Billion Einträgen.
Kari

Entschuldigung, ich habe dich nicht verstanden. Ich habe mit Formel aktualisiert. Bitte überprüfen Sie und teilen Sie mir Ihre Antwort mit.
Karthikeyan Nagarajan
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.