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

การ implement กฎการอัปเดตของ Double Q-learning

Double Q-learning คือส่วนขยายของอัลกอริทึม Q-learning ที่ช่วยลดปัญหาการประเมินค่า action สูงเกินจริง โดยการดูแลและอัปเดต Q-table สองตารางแยกกัน การแยกขั้นตอนการเลือก action ออกจากการประเมิน action ทำให้ Double Q-learning ประมาณค่า Q-value ได้แม่นยำขึ้น แบบฝึกหัดนี้จะพาไป implement กฎการอัปเดตของ Double Q-learning โดยมีลิสต์ Q ที่บรรจุ Q-table สองตารางถูกสร้างไว้ให้แล้ว

ไลบรารี numpy ถูก import ในชื่อ np และค่า gamma กับ alpha ถูกโหลดไว้ล่วงหน้าแล้ว สูตรการอัปเดตมีดังนี้

Image showing the update rule of Q1.

Image showing the update rule of Q2.

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

Reinforcement Learning with Gymnasium ใน Python

ดูคอร์ส

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

  • สุ่มเลือกว่าจะอัปเดต Q-table ใดใน Q สำหรับการประมาณค่า action value โดยคำนวณ index i
  • ดำเนินการตามขั้นตอนที่จำเป็นเพื่ออัปเดต Q[i]

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

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

Q = [np.random.rand(8,4), np.random.rand(8,4)] 
def update_q_tables(state, action, reward, next_state):
  	# Get the index of the table to update
    i = ____
    # Update Q[i]
    best_next_action = ____
    Q[i][state, action] = ____
แก้ไขและรันโค้ด