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
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())