Policies und Zustandswertfunktionen

Reinforcement Learning mit Gymnasium in Python

Fouad Trad

Machine Learning Engineer

Policies

  • RL-Ziel → effektive Policies entwerfen
  • Legt fest, welche Aktion in jedem Zustand den Return maximiert

Bild einer großen Roadmap.

Reinforcement Learning mit Gymnasium in Python

Gridworld-Beispiel

  • Agent will den Diamanten erreichen und Berge meiden
  • Neun Zustände
  • Deterministische Bewegungen

action_numbers_green.png

Bild: Benutzerdefinierte Umgebung mit 9 Zellen, 2 Berge, 1 Diamant.

Reinforcement Learning mit Gymnasium in Python

Gridworld-Beispiel – Belohnungen

  • Nach Zuständen vergeben:
    • Diamant: +10

Bild: Bewegungen aus Nachbarzellen zum Diamanten ergeben +10.

Reinforcement Learning mit Gymnasium in Python

Gridworld-Beispiel – Belohnungen

  • Nach Zuständen vergeben:
    • Diamant: +10
    • Berg: -2

Bild: Aktionen in Berge führen zu einer Belohnung von -2.

Reinforcement Learning mit Gymnasium in Python

Gridworld-Beispiel – Belohnungen

  • Nach Zuständen vergeben:
    • Diamant: +10
    • Berg: -2
    • Andere Zustände: -1

Bild: Jede andere Bewegung ergibt eine Belohnung von -1.

Reinforcement Learning mit Gymnasium in Python

Gridworld-Beispiel: Policy

# 0: left, 1: down, 2: right, 3: up
policy = {
    0:1, 1:2, 2:1, 
    3:1, 4:3, 5:1,
    6:2, 7:3
}

state, info = env.reset() terminated = False while not terminated: action = policy[state] state, reward, terminated, _, _ = env.step(action)

Bild: Die Policy mit Pfeilen für Bewegungen zwischen Zuständen.

Reinforcement Learning mit Gymnasium in Python

Zustandswertfunktionen

  • Schätzt den Wert eines Zustands
  • Erwartete Rückgabe ab Zustand, Policy folgend

Bild: Formel der Zustandswertfunktion als diskontierte Rückgabe ab Zustand s unter der Policy.

Reinforcement Learning mit Gymnasium in Python

Gridworld-Beispiel: Zustandswerte

Bild: Die Policy mit Pfeilen für Bewegungen zwischen Zuständen.

  • Neun Zustände → neun Zustandswerte
  • Diskontfaktor: $\gamma = 1$
Reinforcement Learning mit Gymnasium in Python

Wert des Zielzustands

Bild: Agent im Zielzustand.

  • Start im Zielzustand, Agent bewegt sich nicht
  • $V(goal \, state) = 0$

Bild: Der Wert des Zielzustands ist 0

Reinforcement Learning mit Gymnasium in Python

Wert von Zustand 5

Bild: Agent in Zustand 5.

  • Start in 5, Agent geht zum Ziel
  • $V(5) = 10$

Bild: Der Wert von Zustand 5 ist 10

Reinforcement Learning mit Gymnasium in Python

Wert von Zustand 2

Bild: Agent in Zustand 2.

  • Start in 2, Belohnungen: $-1, 10$
  • $ V(2) = (1 \times -1) + (1 \times 10) = 9$

Bild: Der Wert von Zustand 2 ist 9.

Reinforcement Learning mit Gymnasium in Python

Alle Zustandswerte

Bild: Alle Zustandswerte für die 9 Zustände der Umgebung.

Reinforcement Learning mit Gymnasium in Python

Bellman-Gleichung

  • Rekursive Formel
  • Berechnet Zustandswerte

Bild: Bellman-Gleichung als Summe aus unmittelbarer Belohnung des aktuellen Zustands und dem diskontierten Wert des nächsten Zustands.

Reinforcement Learning mit Gymnasium in Python

Zustandswerte berechnen

def compute_state_value(state):

if state == terminal_state: return 0
action = policy[state]
_, next_state, reward, _ = env.unwrapped.P[state][action][0]
return reward + gamma * compute_state_value(next_state)

Bild: Bellman-Gleichung als Summe aus unmittelbarer Belohnung des aktuellen Zustands und dem diskontierten Wert des nächsten Zustands.

Reinforcement Learning mit Gymnasium in Python

Zustandswerte berechnen

terminal_state = 8
gamma = 1

V = {state: compute_state_value(state) for state in range(num_states)}
print(V)
{0: 1, 1: 8, 2: 9, 
 3: 2, 4: 7, 5: 10, 
 6: 3, 7: 5, 8: 0}

Bild: Alle Zustandswerte für die 9 Zustände der Umgebung.

Reinforcement Learning mit Gymnasium in Python

Policies ändern

# 0: left, 1: down, 2: right, 3: up
policy_two = {
    0:2, 1:2, 2:1,
    3:2, 4:2, 5:1,
    6:2, 7:2
}

V_2 = {state: compute_state_value(state) for state in range(num_states)} print(V_2)

Bild: Die Policy mit Pfeilen für Bewegungen zwischen Zuständen.

Reinforcement Learning mit Gymnasium in Python

Policies vergleichen

Zustandswerte für Policy 1

{0: 1, 1: 8, 2: 9, 
 3: 2, 4: 7, 5: 10, 
 6: 3, 7: 5, 8: 0}

Bild: Zustandswerte von Policy 1.

Zustandswerte für Policy 2

{0: 7, 1: 8, 2: 9, 
 3: 7, 4: 9, 5: 10, 
 6: 8, 7: 10, 8: 0}

Bild: Zustandswerte von Policy 2.

Reinforcement Learning mit Gymnasium in Python

Lass uns üben!

Reinforcement Learning mit Gymnasium in Python

Preparing Video For Download...