Valutare una policy su un Frozen Lake scivoloso
In un ambiente Frozen Lake scivoloso, limitarsi a dedurre la policy da una Q-table appresa non basta per valutarne l'efficacia. Per valutare con precisione l'adeguatezza di una policy appresa, devi giocare più episodi, osservando la ricompensa media ottenuta. Questo esercizio confronta l'efficacia della policy appresa con una baseline stabilita seguendo una policy casuale durante l'addestramento. Il tuo compito è eseguire la policy appresa per diversi episodi e analizzarne le prestazioni sulla base delle ricompense medie raccolte, mettendole a confronto con le ricompense medie raccolte durante la fase con policy casuale.
La Q-table Q, num_states, num_actions e avg_reward_per_random_episode sono già state caricate per te.
La libreria NumPy è stata importata come np.
Questo esercizio fa parte del corso
Reinforcement Learning con Gymnasium in Python
Istruzioni dell'esercizio
- A ogni iterazione, seleziona la migliore azione da intraprendere in base alla Q-table appresa
Q. - Calcola la ricompensa media per episodio appreso
avg_reward_per_learned_episode.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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: ", ____)