Začněte nyníZačněte zdarma

Implementace metody Monte Carlo s každou návštěvou

Metoda Monte Carlo s každou návštěvou se liší od varianty s první návštěvou tím, že aktualizuje hodnoty pokaždé, když se dvojice stav–akce objeví, a ne jen při prvním výskytu. Tento přístup umožňuje komplexnější vyhodnocení politiky, protože využívá veškeré dostupné informace z epizod. Na druhou stranu může vnášet větší rozptyl do odhadů hodnot, protože zahrnuje všechny vzorky bez ohledu na to, kdy v epizodě nastávají. Tvým úkolem je dokončit implementaci funkce every_visit_mc(), která odhaduje funkci akčních hodnot Q během num_episodes epizod.

Slovníky returns_sum a returns_count s dvojicemi stav–akce jako klíči jsou již inicializované a připravené, stejně jako funkce generate_episode().

Toto cvičení je součástí kurzu

Reinforcement Learning with Gymnasium in Python

Zobrazit kurz

Pokyny k cvičení

  • Vygeneruj epizodu pomocí funkce generate_episode().
  • Aktualizuj výnosy a jejich počty pro každou dvojici stav–akce v rámci epizody.
  • Vypočítej odhadované Q-hodnoty.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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())
Upravit a spustit kód