Rozwiązywanie środowiska CliffWalking z użyciem strategii epsilon-greedy z zanikaniem
Ulepszając strategię epsilon-greedy, wprowadzamy współczynnik zanikania, który stopniowo zmniejsza współczynnik eksploracji epsilon w miarę jak agent uczy się środowiska. Takie podejście sprzyja eksploracji na wczesnych etapach uczenia, a następnie – w miarę jak agent lepiej poznaje środowisko – pozwala mu coraz bardziej eksploatować zdobytą wiedzę. Teraz zastosujesz tę strategię do rozwiązania środowiska CliffWalking.
Środowisko zostało już zainicjalizowane i jest dostępne pod zmienną env. Zmienne epsilon, min_epsilon oraz epsilon_decay są wstępnie zdefiniowane. Funkcje epsilon_greedy() i update_q_table() zostały zaimportowane.
To ćwiczenie jest częścią kursu
Uczenie przez wzmacnianie z Gymnasium w Pythonie
Instrukcje do ćwiczenia
- Zaimplementuj pełną pętlę treningową: wybierz akcję (
action), wykonaj ją, dodaj otrzymaną nagrodę (reward) doepisode_rewardoraz zaktualizuj tablicę Q. - Zmniejsz
epsilonza pomocą współczynnikaepsilon_decay, dbając o to, aby nie spadło poniżejmin_epsilon.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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))