การนำ Double Q-learning ไปใช้
แบบฝึกหัดนี้จะให้คุณนำอัลกอริทึม Double Q-learning ไปใช้ในสภาพแวดล้อมแบบกำหนดเองเดียวกับที่แก้ด้วย Expected SARSA เพื่อเปรียบเทียบความแตกต่าง Double Q-learning ใช้ Q-table สองตัว ช่วยลด overestimation bias ที่มีอยู่ในอัลกอริทึม Q-learning แบบดั้งเดิม และให้ความเสถียรในการเรียนรู้มากกว่าวิธี temporal difference อื่นๆ จะใช้วิธีนี้ในการนำทางผ่าน grid environment โดยมุ่งให้ได้รางวัลสูงสุด พร้อมหลีกเลี่ยงภูเขาเพื่อไปถึงเป้าหมายให้เร็วที่สุด

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Reinforcement Learning with Gymnasium ใน Python
คำแนะนำการฝึกหัด
- อัปเดต Q-table โดยใช้ฟังก์ชัน
update_q_tables()ที่เขียนไว้ในแบบฝึกหัดก่อนหน้า - รวม Q-table ทั้งสองเข้าด้วยกันโดยการบวกค่า
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
Q = [np.zeros((num_states, num_actions))] * 2
for episode in range(num_episodes):
state, info = env.reset()
terminated = False
while not terminated:
action = np.random.choice(num_actions)
next_state, reward, terminated, truncated, info = env.step(action)
# Update the Q-tables
____
state = next_state
# Combine the learned Q-tables
Q = ____
policy = {state: np.argmax(Q[state]) for state in range(num_states)}
render_policy(policy)