开始使用免费开始使用

求解多臂老虎机

本练习需要实现一种 epsilon-greedy 策略来求解 10 臂老虎机问题。epsilon 会随时间衰减,从而逐步由探索转向利用。

epsilonmin_epsilonepsilon_decay 已为您预先定义。epsilon_greedy() 函数也已导入。

本练习是课程的一部分

Python 中的 Gymnasium 强化学习

查看课程

练习说明

  • 使用 create_multi_armed_bandit() 函数初始化一个 10 臂老虎机问题,该函数将返回 true_bandit_probscountsvaluesrewardsselected_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 = ____
编辑并运行代码