Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimplementuj pełną pętlę treningową: wybierz akcję (action), wykonaj ją, dodaj otrzymaną nagrodę (reward) do episode_reward oraz zaktualizuj tablicę Q.
  • Zmniejsz epsilon za pomocą współczynnika epsilon_decay, dbając o to, aby nie spadło poniżej min_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))
Edytuj i uruchom kod