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

การสร้าง 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
แก้ไขและรันโค้ด