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

การนำกฎการอัปเดตของ Q-learning ไปใช้

Q-learning เป็นอัลกอริทึมแบบ off-policy ในการเรียนรู้แบบเสริมแรง (RL) ที่มุ่งหาการกระทำที่ดีที่สุดสำหรับสถานะปัจจุบัน ต่างจาก SARSA ที่คำนึงถึงการกระทำถัดไปที่เกิดขึ้นจริง Q-learning อัปเดต Q-value โดยใช้รางวัลสูงสุดในอนาคตโดยไม่ขึ้นกับการกระทำที่เลือก ความแตกต่างนี้ทำให้ Q-learning สามารถเรียนรู้นโยบายที่เหมาะสมที่สุดได้ แม้จะใช้นโยบายเชิงสำรวจหรือแบบสุ่มก็ตาม โจทย์นี้ให้เขียนฟังก์ชันที่อัปเดต Q-table ตามกฎ Q-learning ที่แสดงด้านล่าง

ไลบรารี NumPy ถูก import ให้แล้วในชื่อ np

Image showing the mathematical formula of the Q-learning update rule.

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

Reinforcement Learning with Gymnasium ใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ดึง Q-value ปัจจุบันสำหรับคู่สถานะ-การกระทำที่กำหนด
  • หา Q-value สูงสุดของสถานะถัดไปจากทุกการกระทำที่เป็นไปได้ใน actions
  • อัปเดต Q-value สำหรับคู่สถานะ-การกระทำปัจจุบันโดยใช้สูตร Q-learning
  • อัปเดต Q-table Q โดยกำหนดให้ agent เลือกการกระทำ 0 ในสถานะ 0 ได้รับรางวัล 5 และย้ายไปยังสถานะ 1

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

actions = ['action1', 'action2'] 
def update_q_table(state, action, reward, next_state):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Determine the maximum Q-value for the next state
    next_max = ____
    # Compute the new value of the current state-action pair
    Q[state, action] = ____

alpha = 0.1
gamma = 0.95
Q = np.array([[10, 8], [20, 15]], dtype='float32')
# Update the Q-table
____
print(Q)
แก้ไขและรันโค้ด