การ 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 ถูกโหลดไว้ล่วงหน้าแล้ว สูตรการอัปเดตมีดังนี้


แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Reinforcement Learning with Gymnasium ใน Python
คำแนะนำการฝึกหัด
- สุ่มเลือกว่าจะอัปเดต Q-table ใดใน
Qสำหรับการประมาณค่า action value โดยคำนวณ indexi - ดำเนินการตามขั้นตอนที่จำเป็นเพื่ออัปเดต
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] = ____