Aan de slagGa gratis aan de slag

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

Cursus bekijken

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: ", ____)
Code bewerken en uitvoeren