我们知道:
„TD-Lernen“ mit „Wertfunktionsnäherung“:
w t + 1 = w t + α t [ r t + 1 + γ v ^ ( s t + 1 , w t ) − v ^ ( s t , w t ) ] ∇ w v ^ ( s t , w t ) \color{red} {w_{t+1}=w_t+\alpha_t\left[r_{t+1}+\gamma\hat{v}(s_{t+1},w_t)-\hat{v}(s_t,w_t)\ rechts]\nabla_w\hat{v}(s_t,w_t)} Int+1=Int+At[rt+1+CIn^(st+1,Int)−In^(st,Int)]∇wIn^(st,Int)
„Sarsa算法“ mit „Wertfunktion angenähert“:
w t + 1 = w t + α t [ r t + 1 + γ q ^ ( s t + 1 , a t + 1 , w t ) − q ^ ( s t , a t , w t ) ] ∇ w q ^ ( s t , a t , w t ) \color{red}{w_{t +1}=w_t+\alpha_t\left[r_{t+1}+\gamma\hat{q}(s_{t+1},a_{t+1},w_t)-\hat{q}(s_t, a_t,w_t)\right]\nabla_w\hat{q}(s_t,a_t,w_t)} Int+1=Int+At[rt+1+CQ^(st+1,At+1,Int)−Q^(st,At,Int)]∇wQ^(st,At,Int)
In ähnlicher Weise kann tabellarisches Q-Learning auch auf den Fall der Wertfunktionsnäherung erweitert werden. Die Q-Wert-Aktualisierungsregel lautet:
„Q-learning算法“ mit „Wertfunktionsnäherung“:
w t + 1 = w t + α t [ r t + 1 + γ max a ∈ A ( s t + 1 ) q ^ ( s t + 1 , a , w t ) − q ^ ( s t , a t , w t ) ] ∇ w q ^ ( s t , a t , w t ) \color{red}{w_{t+1}=w_t+\alpha_t}\left[r_{t+1}+\gamma\max_{a\in\mathcal{A}(s_{t +1})}\hat{q}(s_{t+1},a,w_t)-\hat{q}(s_t,a_t,w_t)\right]\nabla_w\hat{q}(s_t,a_t, w_t)Int+1=Int+At[rt+1+Ca∈A(st+1)maxQ^(st+1,a,Int)−Q^(st,At,Int)]∇wQ^(st,At,Int)
Dies ist derselbe Algorithmus wie Sarsa mit Funktionsnäherung, außer q ^ ( s t + 1 , a t + 1 , w t ) \hat{q}\left(s_ {t+1 },a_{t+1},w_t\right) Q^(st+1,At+1,Int) 被替换为 m a x a ∈ A ( s t + 1 ) q ^ ( s t + 1 , a , w t ) \mathrm{max }_{a\in\mathcal{A}(s_{t+1})}\hat{q}\left(s_{t+1},a,w_t\right) maxa∈A(st+1)Q^(st+1,a,Int)。
Q-Learning mit Funktionsnäherungs-Pseudocode (On-Policy-Version):
Für jede Episode machen wir Folgendes:
-
Wenn der aktuelle Zustand s t s_t istStEs ist noch nicht der Zielzustand, dann führen wir die folgenden Operationen aus. Diese Aufgabe besteht eigentlich darin, dass ich von einem Zustand aus beginne und dann nur noch einen guten Weg zum Zielzustand finden muss. Der erste Schritt besteht also darin, die Daten zu generieren:
- Ich bin s t s_t StWenn , muss ich dies auf π t ( s t ) π_t(s_t) basierenPit(st) Aktion nach Strategie a t a_t At und interagieren Sie dann mit der Umgebung, um r t + 1 , s t + 1 r_{t+1},s_{t+1} zu erhaltenRt+1,St+1。
- 然后根据这个数据下面我们来做Wertaktualisierung:
w t + 1 = w t + α t [ r t + 1 + γ max a ∈ A ( s t + 1 ) q ^ ( s t + 1 , a , w t ) − q ^ ( s t , a t , w t ) ] ∇ w q ^ ( s t , a t , w t ) w_{t+1}\quad=\quad w_{t}\quad+\quad \alpha_{t}\left[r_{t+1}+\gamma\max_{a\in\mathcal{A}(s_{t+1})}\hat{q}(s_{t+1}, a,w_{t})-\hat{q}(s_t,a_t,w_t)\right]\nabla_w\hat{q}(s_t,a_t,w_t) Int+1=Int+At[rt+1+Ca∈A(st+1)maxQ^(st+1,a,Int)−Q^(st,At,Int)]∇wQ^(st,At,Int)
Beachten Sie, dass wir hier nicht direkt aktualisieren q ^ ( s t + 1 , a t + 1 ) \hat{q}(s_ { t+1},a_{t+1}) Q^(st+1,At+1),不是要计算 q ^ ( s t + 1 , a t + 1 ) \hat{q}(s_{t+1 },a_{t+1}) Q^(st+1,At+1) sollte gleich nichts sein, aber wir möchten seinen Gewichtsparameter w w w, das ist der einzige Unterschied zum vorherigen tabellarischen Sarsa.
-
Damit können wir eine Richtlinienaktualisierung durchführen, die genau der gleichen ist wie die vorherige tabellarische Sarsa. Das heißt, ich werde bei s t s_t wählenStUnter allen Aktionen erhält die Aktion mit dem größten Aktionswert eine relativ große Wahrscheinlichkeit. Die Strategie hier ist ε-Greedy, und andere Aktionen erhalten eine relativ kleine Wahrscheinlichkeit.
- Es ist erwähnenswert, dass ich in der vorherigen tabellarischen Situation tatsächlichdirekt zum Index gehen könnte, um dies zu erhalten< a i=3> q ^ ( s t + 1 , a t + 1 ) \hat{q}(s_{t+1},a_{t+1}) Q^(st+1,At+1);
- Jetzt muss ich einige Berechnungen durchführen. Ersetzen Sie dieses s und das entsprechende a in dieser"Wertfunktion" und führen Sie die Berechnungen durch. Die Wert dieser Funktion q ^ ( s t + 1 , a t + 1 ) \hat{q}(s_{t+1},a_{t+1}) Q^(st+1,At+1) und dann vergleichen;
Referenzmaterialien:
[Reinforcement Learning] Mathematische Grundlagen des Reinforcement Learning: Wertfunktionsnäherung
6. Wertfunktionsnäherung a>
Vorlesung 6: Wertfunktionsnäherung (Wertfunktionsnäherung)