强化学习中的多臂老虎机问题及广告优化应用
1. 贪心算法与多臂老虎机问题
在解决多臂老虎机问题时,有一种简单的方法是贪心算法。我们使用函数 $Q_k(a)$ 对所有可能的动作进行评估,然后选择返回最大平均奖励的动作。然而,由于 $Q_k(a)$ 依赖于我们之前的动作记录及其相关奖励,这种方法不会评估我们尚未探索过的动作。例如,我们可能之前尝试过 1 号和 3 号拉杆,发现 3 号拉杆能给我们更高的奖励,但使用这种方法我们永远不会想到去尝试其他拉杆,比如 6 号拉杆,而实际上 6 号拉杆可能会给出最高的平均奖励。这种简单地选择目前已知最佳拉杆的方法被称为贪心(或利用)方法。
2. ε - 贪心策略
为了发现真正的最佳动作,我们需要对其他拉杆(其他老虎机)进行一些探索。对之前算法的一个简单改进是将其改为 ε - 贪心算法。具体来说,以概率 ε 我们将随机选择一个动作 a,而在其余时间(概率为 1 - ε),我们将根据过去的游戏经验选择目前已知的最佳拉杆。大多数时候我们会采用贪心策略,但有时我们会冒险随机选择一个拉杆,看看会发生什么。这个结果当然会影响我们未来的贪心动作。
以下是使用 Python 实现 ε - 贪心策略解决 10 臂老虎机问题的代码:
import numpy as np
from scipy import stats
import random
import matplotlib.pyplot as plt
# 臂的数量(老虎机的数量)
n = 10
# 与每个臂相关的隐藏概率
probs = np.random.rand(n)
# ε - 贪心动作选择的 ε
超级会员免费看
订阅专栏 解锁全文
220

被折叠的 条评论
为什么被折叠?



