CliffWalking mit abgeklungener Epsilon-greedy-Strategie lösen
Zur Verbesserung der Epsilon-greedy-Strategie wird ein Abklingfaktor eingeführt, der die Explorationsrate epsilon schrittweise verringert, während der Agent mehr über die Umgebung lernt. Dieser Ansatz fördert in den frühen Lernphasen die Exploration und später, wenn der Agent die Umgebung besser kennt, die Ausnutzung des gelernten Wissens. Jetzt wendest du diese Strategie an, um die CliffWalking-Umgebung zu lösen.
Die Umgebung wurde initialisiert und ist über die Variable env erreichbar. Die Variablen epsilon, min_epsilon und epsilon_decay sind für dich vordefiniert. Die Funktionen epsilon_greedy() und update_q_table() wurden importiert.
Diese Übung ist Teil des Kurses
Reinforcement Learning mit Gymnasium in Python
Anleitung zur Übung
- Implementiere die vollständige Trainingsschleife, indem du eine
actionwählst, sie ausführst, die erhaltenerewardzuepisode_rewardaufsummierst und die Q-Tabelle aktualisierst. - Verringere
epsilonmit der Rateepsilon_decay, und stelle sicher, dass es nicht untermin_epsilonfällt.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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))