การสร้าง Multi-Armed Bandit
ปัญหา Multi-Armed Bandit เป็นตัวอย่างคลาสสิกในการเรียนรู้เสริมแรง (Reinforcement Learning) ที่ใช้อธิบายสถานการณ์ที่ agent ต้องเลือกระหว่างแอ็กชันหลายตัว (หรือ "arms") โดยไม่ทราบรางวัลที่คาดหวังของแต่ละตัว เมื่อเวลาผ่านไป agent จะเรียนรู้ว่า arm ใดให้รางวัลสูงสุดผ่านการสำรวจแต่ละตัวเลือก แบบฝึกหัดนี้จะเป็นการวางโครงสร้างพื้นฐานสำหรับการจำลองปัญหา Multi-Armed Bandit
ไลบรารี numpy ถูกนำเข้ามาแล้วในชื่อ np
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Reinforcement Learning with Gymnasium ใน Python
คำแนะนำการฝึกหัด
- สร้างอาร์เรย์
true_bandit_probsที่มีค่าความน่าจะเป็นแบบสุ่ม เพื่อแทนอัตราความสำเร็จที่แท้จริงของ bandit แต่ละตัว - กำหนดค่าเริ่มต้นของอาร์เรย์สองตัว ได้แก่
countsและvaluesด้วยศูนย์ทั้งหมด โดยcountsใช้ติดตามจำนวนครั้งที่เลือก bandit แต่ละตัว และvaluesแทนค่าความน่าจะเป็นในการชนะโดยประมาณของแต่ละตัว - สร้างอาร์เรย์
rewardsและselected_armsสำหรับเก็บรางวัลที่ได้รับและ arm ที่ถูกเลือกในแต่ละรอบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def create_multi_armed_bandit(n_bandits):
# Generate the true bandits probabilities
true_bandit_probs = ____
# Create arrays that store the count and value for each bandit
counts = ____
values = ____
# Create arrays that store the rewards and selected arms each episode
rewards = ____
selected_arms = ____
return true_bandit_probs, counts, values, rewards, selected_arms