Beleid evalueren op een glad Frozen Lake
In een glad Frozen Lake-omgeving is alleen het afleiden van het beleid uit een geleerde Q-tabel niet genoeg om de effectiviteit te beoordelen. Om de geschiktheid van een geleerd beleid nauwkeurig te evalueren, moet je meerdere episodes spelen en kijken naar de gemiddelde beloning. In deze oefening vergelijk je de effectiviteit van het geleerde beleid met een baseline die is vastgesteld door tijdens het trainen een willekeurig beleid te volgen. Jij voert het geleerde beleid over meerdere episodes uit en analyseert de prestaties op basis van de gemiddelde beloningen, in contrast met de gemiddelde beloningen tijdens de fase met het willekeurige beleid.
De Q-tabel Q, num_states, num_actions en avg_reward_per_random_episode zijn voor je vooringeladen.
De NumPy-bibliotheek is geïmporteerd als np.
Deze oefening maakt deel uit van de cursus
Reinforcement Learning met Gymnasium in Python
Oefeninstructies
- Kies in elke iteratie de beste actie op basis van de geleerde Q-tabel
Q. - Bereken de gemiddelde beloning per geleerde episode
avg_reward_per_learned_episode.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
for episode in range(10000):
state, info = env.reset()
terminated = False
episode_reward = 0
while not terminated:
# Select the best action based on learned Q-table
action = ____
new_state, reward, terminated, truncated, info = env.step(action)
state = new_state
episode_reward += reward
reward_per_learned_episode.append(episode_reward)
# Compute and print the average reward per learned episode
avg_reward_per_learned_episode = ____
print("Average reward per learned episode: ", avg_reward_per_learned_episode)
print("Average reward per random episode: ", ____)