ÎncepețiÎncepe gratuit

Implementarea metodei Monte Carlo cu vizitare completă

Metoda Monte Carlo cu vizitare completă (Every-Visit) diferă de varianta cu prima vizitare (First-Visit) prin faptul că actualizează valorile de fiecare dată când apare o pereche stare-acțiune, nu doar la prima întâlnire. Deși această abordare oferă o evaluare mai cuprinzătoare a politicii, utilizând toate informațiile disponibile din episoade, poate introduce o varianță mai mare în estimările valorilor, deoarece include toate eșantioanele, indiferent de momentul în care apar în episod. Sarcina ta este să completezi implementarea funcției every_visit_mc(), care estimează funcția de valoare a acțiunii Q pe parcursul a num_episodes episoade.

Dicționarele returns_sum și returns_count, cu perechi stare-acțiune ca chei, au fost inițializate și preîncărcate pentru tine, împreună cu funcția generate_episode().

Acest exercițiu face parte din cursul

Reinforcement Learning cu Gymnasium în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Generează un episod folosind funcția generate_episode().
  • Actualizează retururile și numărul de apariții ale acestora pentru fiecare pereche stare-acțiune din cadrul unui episod.
  • Calculează valorile Q estimate.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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())
Editează și rulează codul