Giải bài toán multi-armed bandit
Bài tập này yêu cầu bạn triển khai chiến lược epsilon-greedy để giải bài toán bandit 10 cánh tay, trong đó giá trị epsilon sẽ giảm dần theo thời gian để chuyển dần từ khám phá sang khai thác.
epsilon, min_epsilon, và epsilon_decay đã được định nghĩa sẵn cho bạn. Hàm epsilon_greedy() cũng đã được nhập sẵn.
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
- Dùng hàm
create_multi_armed_bandit()để khởi tạo bài toán bandit 10 cánh tay; hàm sẽ trả vềtrue_bandit_probs,counts,values,rewards, vàselected_arms. - Chọn một cánh tay để kéo bằng hàm
epsilon_greedy(). - Mô phỏng
rewarddựa trên các xác suất thật của bandit. - Giảm dần giá trị
epsilonvà đảm bảo nó không giảm xuống dướimin_epsilon.
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.
# Create a 10-armed bandit
true_bandit_probs, counts, values, rewards, selected_arms = ____
for i in range(n_iterations):
# Select an arm
arm = ____
# Compute the received reward
reward = ____
rewards[i] = reward
selected_arms[i] = arm
counts[arm] += 1
values[arm] += (reward - values[arm]) / counts[arm]
# Update epsilon
epsilon = ____