Ich implementierte DQN in mountain car problem von Openai Gym. Dieses Problem ist besonders, da die positive Belohnung sehr spärlich ist. Also dachte ich über die Implementierung einer priorisierten Erfahrungswiedergabe nach, wie in dieser paper by google deep mind vorgeschlagen.priorisierte Erfahrung Wiederholung in tiefen Q-Learning
gibt es bestimmte Dinge, die mich verwirren:
- , wie wir die Wiederholungsspeicher lagern. Ich bekomme das p i ist die Priorität des Übergangs und es gibt zwei Möglichkeiten, aber was ist das P (i)?
- Wenn wir die angegebenen Regeln befolgen, ändert sich P (i) nicht jedes Mal, wenn eine Probe hinzugefügt wird.
- Was bedeutet es, wenn es heißt "wir probieren nach dieser Wahrscheinlichkeitsverteilung". Was ist die Verteilung?
- endlich, wie probieren wir daraus aus. Ich bekomme das, wenn wir es in einer Prioritätswarteschlange speichern, können wir direkt abtasten, aber wir speichern es tatsächlich in einem Summenbaum.
Dank im Voraus
immer noch nicht bekommen. ändert sich die Größe der Stapel nicht abhängig von s. wäre auch keine Prioritätswarteschlange eine bessere Idee zu verwenden –
nennen wir Abruffunktion für jede Probe. Ich meine, wenn Sie eine Mini-Charge haben, deren Größe 32 ist, dann sollten Sie die Funktion 32 Mal aufrufen. Heap ist nicht geeignet, da dies die höchste Wahrscheinlichkeit in jedem Schritt ergibt und es keine Chance gibt, andere Erfahrungen auszuwählen, aber mit Hilfe des Summenbaums können alle Erfahrungen ausgewählt werden und sie können auch effizient aktualisiert werden. –
danke. ich habe es erfolgreich verstanden und umgesetzt. nur eine letzte Sache, benutzen wir Summenbaum, um nur ein wenig Zufälligkeit einzuführen, sonst bin ich nicht in der Lage zu sehen, wie es besser ist, die Prioritätswarteschlange –