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

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
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)