เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การนำ Double Q-learning ไปใช้

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

new_cust_env.png

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

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)
แก้ไขและรันโค้ด