CommencerCommencer gratuitement

Implémenter le Monte Carlo à visites multiples

La méthode Monte Carlo à visites multiples (Every-Visit) se distingue de la variante à première visite (First-Visit) en mettant à jour les valeurs à chaque apparition d’un couple état–action, et non seulement lors de la première occurrence. Cette approche offre une évaluation plus complète de la politique en exploitant toutes les informations disponibles dans les épisodes, mais elle peut aussi introduire davantage de variance dans les estimations de valeur puisqu’elle inclut tous les échantillons, quel que soit le moment où ils surviennent dans l’épisode. Votre objectif est de compléter l’implémentation de la fonction every_visit_mc(), qui estime la fonction valeur d’action Q sur num_episodes épisodes.

Les dictionnaires returns_sum et returns_count, ayant pour clés des couples état–action, ont été initialisés et préchargés pour vous, ainsi que la fonction generate_episode().

Cet exercice fait partie du cours

Reinforcement Learning avec Gymnasium en Python

Afficher le cours

Instructions

  • Générez un épisode avec la fonction generate_episode().
  • Mettez à jour les retours et leur nombre pour chaque couple état–action au sein d’un épisode.
  • Calculez les valeurs Q estimées.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

Q = np.zeros((num_states, num_actions))
for i in range(100):
  # Generate an episode
  episode = ____
  # Update the returns and their counts
  for j, (state, action, reward) in ____:
    returns_sum[(state,  action)] += sum(____)
    returns_count[(state,  action)] += ____

# Update the Q-values for visited state-action pairs 
nonzero_counts = ____
Q[nonzero_counts] = ____
    
render_policy(get_policy())
Modifier et exécuter le code