ฝึก Barebone DQN
ถึงเวลาฝึก Barebone DQN ในสภาพแวดล้อม Lunar Lander แล้ว อัลกอริทึมนี้ยังเป็นเวอร์ชันพื้นฐาน ดังนั้นประสิทธิภาพอาจยังไม่ดีนัก แต่เราจะปรับปรุงต่อไปในภายหลัง
ลองมองว่านี่คือก้าวแรกที่จะทำให้ Lunar Lander ของเราลงจอดบนดวงจันทร์ได้สำเร็จ!
อินสแตนซ์ q_network ที่กำหนดไว้ก่อนหน้านี้พร้อมใช้งานแล้ว
ตลอดแบบฝึกหัดในคอร์สนี้ Python environment จะมีฟังก์ชัน describe_episode() ให้ใช้สำหรับแสดงข้อมูลสรุปของแต่ละ episode เพื่อดูว่า agent ทำผลงานได้อย่างไร
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Reinforcement Learning ด้วย Python
คำแนะนำการฝึกหัด
- เลือก action ของ agent ในลูปชั้นใน
- คำนวณค่า loss
- ทำ gradient descent เพื่ออัปเดตน้ำหนักของโครงข่าย
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
for episode in range(10):
state, info = env.reset()
done = False
step = 0
episode_reward = 0
while not done:
step += 1
# Select the action
action = ____(____, ____)
next_state, reward, terminated, truncated, _ = (env.step(action))
done = terminated or truncated
# Calculate the loss
loss = ____(q_network, state, action, next_state, reward, done)
optimizer.zero_grad()
# Perform a gradient descent step
loss.____
optimizer.____
state = next_state
episode_reward += reward
describe_episode(episode, reward, episode_reward, step)