Tạo multi-armed bandit
Bài toán multi-armed bandit là ví dụ kinh điển trong reinforcement learning mô tả tình huống một tác tử phải chọn giữa nhiều hành động (hay "cần gạt"/"arm") mà không biết trước kỳ vọng phần thưởng của từng cái. Theo thời gian, tác tử học được arm nào mang lại phần thưởng cao nhất bằng cách thử nghiệm các lựa chọn. Bài tập này yêu cầu bạn thiết lập cấu trúc nền tảng để mô phỏng một bài toán multi-armed bandit.
Thư viện numpy đã được nhập với bí danh np.
Bài tập này là một phần của khóa học
Reinforcement Learning với Gymnasium trong Python
Hướng dẫn bài tập
- Tạo mảng
true_bandit_probsvới các xác suất ngẫu nhiên biểu diễn tỷ lệ thành công thực sự của mỗi bandit. - Khởi tạo hai mảng
countsvàvaluesvới các giá trị 0;countstheo dõi số lần mỗi bandit được chọn, cònvaluesbiểu diễn xác suất thắng ước lượng của mỗi bandit. - Tạo các mảng
rewardsvàselected_armsđể lưu phần thưởng nhận được và arm được chọn ở mỗi vòng lặp.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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