ปาร์ตี้ LAN

  • จัดปาร์ตี้ LAN กับเพื่อน ๆ ทุกปีมาเป็นเวลา 16 ปี
  • ปาร์ตี้กินเวลา 4-5 วัน และมีผู้เข้าร่วมสูงสุด 12 คน
  • เล่น Dota 2 เป็นหลัก แต่ก็สนุกกับเกมอื่น ๆ อย่าง Counter-Strike, Warcraft 3 เป็นต้น
  • การเลือกทีมทำได้ยาก จึงพัฒนาระบบอัตโนมัติขึ้นมา

Dota 2

  • Dota 2 เล่นแบบ 5v5 และทีมที่ไม่สมดุลจะทำให้ความสนุกของเกมลดลง
  • ระดับฝีมือของผู้เข้าร่วมแตกต่างกันมาก ทำให้เลือกทีมได้ยาก

วิธีเลือกทีม

  • ใช้วิธีให้หัวหน้าทีมสองคนผลัดกันเลือกสมาชิกเข้าทีม
  • แต่วิธีนี้ใช้เวลามาก และมักได้ทีมคล้าย ๆ เดิมบ่อยจนเริ่มน่าเบื่อ

ปัญหาของการเลือกทีมด้วยมือ

  • ใช้เวลานานและน่าเบื่อ
  • มักได้ทีมคล้าย ๆ เดิมบ่อย
  • ไม่มีใครอยากรับบทเป็นหัวหน้าทีม
  • มักได้ทีมที่ไม่สมดุล

แก้ด้วยโค้ด

  • หลังเก็บข้อมูลแล้ว จึงใช้ระบบเรตติ้ง Elo บน Colab เพื่อสร้างทีมอัตโนมัติ
  • ผู้เล่นแต่ละคนเริ่มต้นที่ 1000 Elo points และจะได้ 20 แต้มเมื่อชนะ เสีย 20 แต้มเมื่อแพ้

การปรับปรุง 1: รันข้อมูลหลายรอบ

  • ในระบบ Elo หากชนะผู้เล่นที่มี Elo สูงกว่า จะได้แต้มมากขึ้น
  • คำนวณ Elo โดยรันข้อมูลซ้ำหลายรอบ

การปรับปรุง 2: ทำให้เหมือนโมเดล ML

  • ใช้ Elo เป็นโมเดลเพื่อทำนายความน่าจะเป็นที่ทีมจะชนะ
  • กำหนดฟังก์ชัน L2 loss และปรับโมเดลให้เหมาะสมด้วย backpropagation

การปรับปรุง 3: ทำให้ผลลัพธ์ในอดีตเป็นแบบความน่าจะเป็น

  • เพื่อป้องกัน overfitting จึงตั้งค่าความน่าจะเป็นชนะของเกมในอดีตไว้ที่ 75% หรือ 95%
  • วิธีนี้ช่วยให้โมเดลไม่จดจำทุกเกมทั้งหมด และสามารถทำ generalization ได้

ผลลัพธ์

  • ระบบใหม่สามารถทำนายความน่าจะเป็นชนะได้ แม้ทีมจะมีขนาดไม่สมดุลกัน
  • รายชื่อชุดแรกสำหรับปาร์ตี้ LAN ครั้งถัดไปพร้อมแล้ว

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น