LAN party
- Trong 16 năm qua, tác giả đã tổ chức LAN party hằng năm cùng bạn bè.
- Buổi tiệc kéo dài 4-5 ngày, với tối đa 12 người tham gia.
- Chủ yếu chơi Dota 2, nhưng cũng tận hưởng nhiều game khác như Counter-Strike, Warcraft 3.
- Việc chọn đội quá khó, nên đã phát triển một hệ thống tự động hóa.
Dota 2
- Dota 2 là game 5v5, và đội hình mất cân bằng sẽ làm giảm sự thú vị của trận đấu.
- Chênh lệch kỹ năng giữa những người tham gia khá lớn nên rất khó chia đội.
Cách chọn đội
- Sử dụng cách để hai đội trưởng lần lượt chọn thành viên.
- Tuy nhiên, cách này mất nhiều thời gian và thường tạo ra các đội tương tự nhau, gây nhàm chán.
Vấn đề của việc chọn đội thủ công
- Mất nhiều thời gian và trở nên nhàm chán.
- Các đội tương tự nhau thường xuyên được tạo ra.
- Không ai muốn nhận vai trò đội trưởng.
- Các đội mất cân bằng thường xuyên xuất hiện.
Giải quyết bằng code
- Sau khi thu thập dữ liệu, tác giả dùng hệ thống xếp hạng Elo trên Colab để tự động tạo đội.
- Mỗi người chơi bắt đầu với 1000 điểm Elo, thắng được cộng 20 điểm và thua bị trừ 20 điểm.
Cải tiến 1: chạy qua dữ liệu nhiều lần
- Trong hệ thống Elo, khi đánh bại người chơi có Elo cao hơn thì sẽ nhận được nhiều điểm hơn.
- Tính Elo bằng cách chạy qua dữ liệu nhiều lần.
Cải tiến 2: biến nó thành một mô hình ML
- Dùng Elo như một mô hình để dự đoán xác suất chiến thắng của đội.
- Định nghĩa hàm mất mát L2 và tối ưu mô hình thông qua backpropagation.
Cải tiến 3: biến kết quả lịch sử thành xác suất
- Để tránh overfitting, xác suất chiến thắng của các trận đấu lịch sử được đặt thành 75% hoặc 95%.
- Nhờ đó, mô hình có thể khái quát thay vì ghi nhớ toàn bộ các trận đấu.
Kết quả
- Hệ thống mới có thể dự đoán xác suất chiến thắng ngay cả khi kích thước đội không cân bằng.
- Đội hình đầu tiên cho LAN party tiếp theo đã sẵn sàng.
Chưa có bình luận nào.