MulaiMulai sekarang secara gratis

DQN dengan experience replay

Sekarang Anda akan menambahkan Experience Replay untuk melatih agen menggunakan Deep Q Network. Anda akan menggunakan lingkungan Lunar Lander yang sama seperti saat membangun Barebone DQN Anda.

Pada setiap langkah, alih-alih hanya menggunakan pembelajaran dari transisi terbaru untuk memperbarui jaringan, buffer Experience Replay memungkinkan agen belajar dari contoh acak pengalaman terbaru. Ini secara signifikan meningkatkan kemampuannya untuk mempelajari lingkungan.

Kelas QNetwork dan ReplayBuffer dari latihan sebelumnya tersedia dan telah diinstansiasi sebagai berikut:

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

Fungsi describe_episode() juga tersedia kembali untuk mendeskripsikan metrik di akhir setiap episode.

Latihan ini adalah bagian dari kursus

Deep Reinforcement Learning dengan Python

Lihat Kursus

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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)
Edit dan Jalankan Kode