求解多臂老虎机
本练习需要实现一种 epsilon-greedy 策略来求解 10 臂老虎机问题。epsilon 会随时间衰减,从而逐步由探索转向利用。
epsilon、min_epsilon 和 epsilon_decay 已为您预先定义。epsilon_greedy() 函数也已导入。
本练习是课程的一部分
Python 中的 Gymnasium 强化学习
练习说明
- 使用
create_multi_armed_bandit()函数初始化一个 10 臂老虎机问题,该函数将返回true_bandit_probs、counts、values、rewards和selected_arms。 - 使用
epsilon_greedy()函数选择一个拉杆进行尝试。 - 基于真实的老虎机概率来模拟
reward。 - 衰减
epsilon值,并确保其不会低于min_epsilon。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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 = ____