การนำ SARSA update rule ไปใช้งาน
SARSA เป็น on-policy algorithm ใน RL ที่อัปเดต action-value function โดยอิงจาก action ที่เลือกใช้ในสถานะปัจจุบันและสถานะถัดไป วิธีนี้ช่วยให้โมเดลเรียนรู้ค่าของคู่ state-action ทั้งในปัจจุบันและลำดับถัดไป ซึ่งเป็นแนวทางในการเรียนรู้ policy ที่คำนึงถึง action ในอนาคตด้วย SARSA update rule แสดงไว้ด้านล่าง และโจทย์ของแบบฝึกหัดนี้คือการสร้างฟังก์ชันที่อัปเดต Q-table ตามกฎดังกล่าว
ไลบรารี NumPy ถูก import ให้แล้วในชื่อ np

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Reinforcement Learning with Gymnasium ใน Python
คำแนะนำการฝึกหัด
- ดึง Q-value ปัจจุบันสำหรับคู่ state-action ที่กำหนด
- หา Q-value สำหรับคู่ state-action ถัดไป
- อัปเดต Q-value ของคู่ state-action ปัจจุบันโดยใช้สูตร SARSA
- อัปเดต Q-table
Qโดยกำหนดให้ agent เลือก action0ใน state0ได้รับ reward เป็น5จากนั้นย้ายไปยัง state1และเลือก action1
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def update_q_table(state, action, reward, next_state, next_action):
# Get the old value of the current state-action pair
old_value = ____
# Get the value of the next state-action pair
next_value = ____
# Compute the new value of the current state-action pair
Q[(state, action)] = ____
alpha = 0.1
gamma = 0.8
Q = np.array([[10,0],[0,20]], dtype='float32')
# Update the Q-table for the ('state1', 'action1') pair
____
print(Q)