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
Oefeninstructies
- Implementeer de volledige trainingslus door een
actionte kiezen, die uit te voeren, de ontvangenrewardop te tellen bijepisode_reward, en de Q-tabel bij te werken. - Verlaag
epsilonmet deepsilon_decay-rate en zorg dat het niet ondermin_epsilonkomt.
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))