Aan de slagGa gratis aan de slag

CliffWalking oplossen met een afnemende epsilon-greedystrategie

Als verbetering van de epsilon-greedystrategie wordt een vervalfactor geïntroduceerd om het exploratieniveau, epsilon, geleidelijk te verlagen naarmate de agent meer leert over de omgeving. Deze aanpak stimuleert in het begin vooral exploratie en later, wanneer de agent vertrouwd raakt met de omgeving, juist exploitatie van de geleerde kennis. Je gaat deze strategie nu toepassen om de CliffWalking-omgeving op te lossen.

De omgeving is geïnitialiseerd en is beschikbaar via de variabele env. De variabelen epsilon, min_epsilon en epsilon_decay zijn al voor je gedefinieerd. De functies epsilon_greedy() en update_q_table() zijn geïmporteerd.

Deze oefening maakt deel uit van de cursus

Reinforcement Learning met Gymnasium in Python

Cursus bekijken

Oefeninstructies

  • Implementeer de volledige trainingslus door een action te kiezen, die uit te voeren, de ontvangen reward op te tellen bij episode_reward, en de Q-tabel bij te werken.
  • Verlaag epsilon met de epsilon_decay-rate en zorg dat het niet onder min_epsilon komt.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

rewards_decay_eps_greedy = []
for episode in range(total_episodes):
    state, info = env.reset()
    episode_reward = 0
    for i in range(max_steps):
      	# Implement the training loop
        action = ____
        new_state, reward, terminated, truncated, info = ____
        episode_reward += ____       
        ____      
        state = new_state
    rewards_decay_eps_greedy.append(episode_reward)
    # Update epsilon
    epsilon = ____
print("Average reward per episode: ", np.mean(rewards_decay_eps_greedy))
Code bewerken en uitvoeren