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

กฎการอัปเดตของ Expected SARSA

ในแบบฝึกหัดนี้ จะได้ลองนำกฎการอัปเดตของ Expected SARSA ไปใช้งาน ซึ่งเป็นอัลกอริทึม RL แบบ model-free ที่ใช้ temporal difference Expected SARSA ประมาณค่าที่คาดหวังของนโยบายปัจจุบันโดยการหาค่าเฉลี่ยจากทุกแอ็กชันที่เป็นไปได้ ทำให้เป้าหมายการอัปเดตมีความเสถียรมากกว่า SARSA สูตรที่ใช้ใน Expected SARSA แสดงไว้ด้านล่าง

Image showing the mathematical formula of the expected SARSA update rule.

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

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

Reinforcement Learning with Gymnasium ใน Python

ดูคอร์ส

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

  • คำนวณค่า Q ที่คาดหวังสำหรับ next_state
  • อัปเดตค่า Q สำหรับ state และ action ปัจจุบันโดยใช้สูตรของ Expected SARSA
  • อัปเดต Q-table Q โดยสมมติว่าเอเจนต์เลือกแอ็กชัน 1 ในสถานะ 2 แล้วเคลื่อนที่ไปยังสถานะ 3 พร้อมรับรางวัลเป็น 5

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

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

def update_q_table(state, action, next_state, reward):
  	# Calculate the expected Q-value for the next state
    expected_q = ____
    # Update the Q-value for the current state and action
    Q[state, action] = ____
    
Q = np.random.rand(5, 2)
print("Old Q:\n", Q)
alpha = 0.1
gamma = 0.99

# Update the Q-table
update_q_table(____, ____, ____, ____)
print("Updated Q:\n", Q)
แก้ไขและรันโค้ด