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
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)