ÎncepețiÎncepe gratuit

DQN cu Experience Replay

Acum vei introduce Experience Replay pentru a antrena un agent folosind o Rețea Q Profundă (Deep Q Network). Vei utiliza același mediu Lunar Lander ca cel folosit pentru a construi DQN-ul de bază.

La fiecare pas, în loc să folosești doar informațiile din cea mai recentă tranziție pentru a actualiza rețeaua, bufferul de Experience Replay îi permite agentului să învețe dintr-un lot aleatoriu de experiențe recente. Aceasta îmbunătățește considerabil capacitatea sa de a înțelege mediul.

Clasele QNetwork și ReplayBuffer din exercițiile anterioare îți sunt disponibile și au fost instanțiate astfel:

  • q_network = QNetwork(8, 4)
  • replay_buffer = ReplayBuffer(10000)

Funcția describe_episode() este, de asemenea, disponibilă pentru a descrie metricile la finalul fiecărui episod.

Acest exercițiu face parte din cursul

Deep Reinforcement Learning în Python

Vezi cursul

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

for episode in range(10):
    state, info = env.reset()
    done = False
    step = 0
    episode_reward = 0
    while not done:
        step += 1
        q_values = q_network(state)        
        action = torch.argmax(q_values).item()
        next_state, reward, terminated, truncated, _ = env.step(action)
        done = terminated or truncated
        # Store the latest experience in the replay buffer
        replay_buffer.____        
        state = next_state
        episode_reward += reward    
    describe_episode(episode, reward, episode_reward, step)
Editează și rulează codul