CommencezCommencez gratuitement

Implémenter le Monte Carlo à chaque visite

La méthode Monte Carlo à chaque visite se distingue de la variante à première visite en mettant à jour les valeurs chaque fois qu'une paire état-action apparaît, et non seulement lors de la première occurrence. Cette approche offre une évaluation plus complète de la politique en utilisant toute l'information disponible dans les épisodes, mais elle peut aussi introduire davantage de variance dans les estimations de valeur puisqu'elle inclut tous les échantillons, peu importe le moment où ils surviennent dans l'épisode. Votre tâche consiste à terminer 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, dont les clés sont des paires état-action, ont été initialisés et préchargés pour vous, de même que la fonction generate_episode().

Cette activité fait partie du cours

Reinforcement Learning avec Gymnasium en Python

Voir le cours

Instructions de l’exercice

  • Générez un épisode à l'aide de la fonction generate_episode().
  • Mettez à jour les retours et leurs décomptes pour chaque paire état-action dans un épisode.
  • Calculez les valeurs Q estimées.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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