首页 > 技术文章 > 第2章 多臂赌博机问题

jonesnow333 2020-06-28 23:49 原文

区分强化学习与其他类型学习的最重要特征是,它使用训练信息来 评估 所采取的行动,而不是通过给予正确的行动来 指导。 这就是为了明确寻找良好行为而产生积极探索的需要。 纯粹的评价反馈表明所采取的行动有多好,但不表明它是最好还是最坏的行动。 另一方面,纯粹的指导性反馈表明采取的正确行动,与实际采取的行动无关。 这种反馈是监督学习的基础,包括模式分类,人工神经网络和系统识别的大部分。 在它们的纯粹形式中,这两种反馈是截然不同的:评价反馈完全取决于所采取的行动,而指导性反馈则与所采取的行动无关。

在本章中,我们在简化的环境中研究强化学习的评价方面,该方法不涉及学习如何在多种情况下行动。 这种 非关联性 设置是大多数先前涉及评估反馈的工作已经完成的,并且它避免了完整强化学习问题的大部分复杂性。 研究这个案例使我们能够最清楚地看到评价性反馈如何与指导性反馈的不同,但可以与之相结合。

我们探索的特定非关联评价性反馈问题是k臂赌博机问题的简单版本。 我们使用这个问题来介绍一些基本的学习方法,我们将在后面的章节中对其进行扩展,以应用于完全强化学习问题。 在本章的最后,我们通过讨论当赌博机问题变为关联时会发生什么,即在不止一种情况下采取行动,这种情况更接近完整的强化学习问题。
2.1 一个 (k) 臂赌博机问题

考虑以下学习问题。你可以反复面对 (k) 种不同的选择或行动。在每次选择之后,你会收到一个数值奖励,该奖励取决于你选择的行动的固定概率分布。 你的目标是在一段时间内最大化预期的总奖励,例如,超过1000个操作选择或 时间步骤。

这是 (k) 臂赌博机问题的原始形式,通过类比于赌博机或“单臂强盗”命名,除了它有k个拉杆而不是一个。 每个动作选择就像一个赌博机的拉杆游戏,奖励是击中累积奖金的奖金。 通过反复的行动选择,你可以通过将你的行动集中在最佳杠杆上来最大化你的奖金。 另一个类比是医生在一系列重病患者的实验治疗之间进行选择。每个动作都是治疗的选择,每个奖励都是患者的生存或幸福。 今天,“赌博机问题”一词有时用于上述问题的概括,但在本书中我们用它来指代这个简单的情况。

在我们的 (k) 臂赌博机中,只要选择了该动作,(k) 个动作的每一个都有预期的或平均的奖励,让我们称之为该行动的 价值。 我们将在时间步 (t) 选择的动作表示为 (A_t),并将相应的奖励表示为 (R_t)。 然后,对于任意动作 (a) 的价值,定义 (q_{}(a)) 是给定 (a) 选择的预期奖励:
[q_{
}(a) \doteq \mathbb{E}[R_t|A_t=a]]

如果你知道每个动作的价值,那么解决 (k) 臂赌博机问题将是轻而易举的:你总是选择具有最高价值的动作。 我们假设你不确定地知道动作价值,尽管你可能有估计值。 我们将在时间步骤 (t) 的动作 (a) 的估计值表示为 (Q_t(a))。 我们希望 (Q_t(a)) 接近 (q_{*}(a))。

如果你保持对动作价值的估计,那么在任何时间步骤中至少有一个其估计值最大的动作。我们把这些称为 贪婪 行为。 当你选择其中一个动作时,我们会说你正在 利用 你当前对动作价值的了解。 相反,如果你选择了一个非常规动作,那么我们就说你正在 探索,因为这可以让你提高你对非行动动作价值的估计。 利用是在一步中最大化预期的奖励的最好的方法,但从长远来看,探索可能会产生更大的总回报。 例如,假设贪婪行为的价值是确定的,而其他一些动作估计几乎同样好,但具有很大的不确定性。 不确定性使得这些其他行动中的至少一个实际上可能比贪婪行动更好,但你不知道哪一个。 如果你有很多时间步骤可以选择行动,那么探索非贪婪行动并发现哪些行动比贪婪行动可能会更好。 在短期内,奖励在探索期间较低,但从长远来看更高,因为在你发现更好的行动之后,你可以多次利用 它们。 因为无法探索和利用任何单一行动选择,人们通常会提到探索和利用之间的“冲突”。

在任何特定情况下,探索或利用是否更好在某种复杂方式上取决于估计的精确值,不确定性和剩余步骤的数量。 有许多复杂的方法可以平衡探索和利用 (k) 臂赌博机的特定数学公式和相关问题。 然而,这些方法中的大多数都对关于平稳性和先验知识做出了强有力的假设,这些假设在应用程序中被违反或无法验证, 在随后的章节中我们会考虑完整的强化学习问题。当这些方法的假设不适用时,对这些方法的最优性或有限损失的保证并不太好。

在本书中,我们不担心以复杂的方式平衡探索和利用;我们只担心平衡它们。 在本章中,我们为 (k) 臂赌博机提出了几种简单的平衡方法,并表明它们比总是利用的方法更好。 平衡探索和利用的需要是强化学习中出现的一个独特挑战;我们的 (k) 臂赌博机问题的简单性使我们能够以一种特别清晰的形式展示这一点。
2.2 行动价值方法

我们首先仔细研究估算行动价值,并使用估算来做出行动选择决策的方法,我们统称为 行动价值方法。 回想一下,当选择该动作时,动作的真实价值就是平均奖励。估计这一点的一种自然方法是平均实际收到的奖励:
(1)¶[Q_t(a) \doteq \frac{在t之前采取a动作的奖励总和}{在t之前采取a动作的次数} = \frac{\sum_{i=1}^{t-1}R_i \cdot \mathbb{1}{A_i=a}}{\sum{i=1}^{t-1}\mathbb{1}_{A_i=a}}]

其中 (\mathbb{1}{谓词}) 表示随机变量,如果谓词为真,则为1,如果不是则为0。 如果分母为零,那么我们将 (Q_t(a)) 定义为某个默认值,例如0。 当分母变为无穷大时,根据大数定律,(Q_t(a)) 收敛于 (q*(a))。 我们将其称为用于估计行动值的 样本平均 方法,因为每个估计值是相关奖励样本的平均值。 当然,这只是估算行动价值的一种方式,而不一定是最佳方法。 然而,现在让我们继续使用这种简单的估算方法,并转向如何使用估算来选择行动的问题。

最简单的动作选择规则是选择具有最高估计值的动作之一,即上一节中定义的贪婪动作之一。 如果存在多个贪婪动作,则可以以任意方式(可能是随机的)在它们之间进行选择。 我们把这个贪婪的动作选择方法写成
(2)¶[A_t = \mathop{argmax} \limits_{a} Q_t(a)]

其中 (argmax_a) 表示随后的表达式最大时的动作a(再次,任意地断开关系)。 贪婪行动选择总是利用当前的知识来最大化立即奖励;它没有花时间采取明显劣质的行动来看看它们是否真的会更好。 一个简单的替代方案是在大多数情况下贪婪地行动,但每隔一段时间,以较小的概率 (\varepsilon), 从动作价值估计中独立地从具有相同概率的所有动作中随机选择。 我们称使用此近乎贪婪的行动选择规则的方法为 (\varepsilon) 贪婪 方法。 这些方法的一个优点是,在步数增加的限度内,每个动作将被无限次采样,从而确保所有 (Q_t(a)) 收敛于 (q_*(a))。 这当然意味着选择最优动作的概率收敛于大于 (1-\varepsilon) 的数,即接近确定。 然而,这些只是渐近保证,并且对方法的实际有效性几乎没有说明。

练习2.1 在 (\varepsilon) 贪婪动作选择中,对于两个动作的情况和 (\varepsilon=0.5), 选择贪婪动作的概率是多少?
2.3 10臂赌博机试验

为了粗略评估贪婪和 (\varepsilon) 贪婪行动价值方法的相对有效性, 我们在一系列测试问题上对它们进行了数值比较。这是一组2000个随机生成的 (k) 臂赌博机问题,(k = 10)。 对于每个赌博机问题,如图2.1所示,动作价值 (q_*(a),a = 1 , \dots, 10), 根据具有均值为0和方差为1的正态(高斯)分布来选择。
../../_images/figure-2.1.png

图2.1 一个10臂的赌博机问题例子。根据具有均值和方差为0的正态分布选择十个动作的每一个的真值 (q_(a)), 然后根据平均 (q_(a)) 单位方差正态分布选择实际奖励,如这些灰色分布显示。

然后,当应用于该问题的学习方法选择动作 (A_t) 时, 从具有均值 (q_*(A_t)) 和方差1的正态分布中选择实际奖励 (R_t)。 这些分布在图2.1中以灰色显示。我们将这套测试任务称为 10臂赌博机试验。 对于任何学习方法,我们可以测量其性能和行为,因为它在应用于其中一个赌博机问题时经历了超过1000个时间步骤。 这组成了一次 运行。重复这样的独立运行2000次,每次运行都有不同的赌博机问题,我们便获得了学习算法的平均行为的度量。

如上所述,图2.2比较了10臂赌博机试验上的贪婪方法和两个 (\varepsilon) 贪婪方法 ((\varepsilon=0.01) 和 (\varepsilon=0.1))。 所有方法都使用样本平均技术形成了它们的动作值估计。上图显示了带有经验的预期奖励的增加。 贪婪方法在开始时比其他方法改善略快,但随后在较低水平上稳定下来。 它只获得了大约1的每步奖励,在这个测试平台上,最好的约为1.55。 从长远来看,贪婪的方法表现得更糟,因为它经常被卡在执行欠佳的动作。 下图显示贪婪的方法只在大约三分之一的任务中找到了最佳动作,其他三分之二的最佳动作的初始样本令人失望,而且它从未回归过它。 (\varepsilon) 贪婪方法最终表现得更好,因为他们会继续探索并提高他们识别最佳动作的机会。 (\varepsilon=0.1) 的方法探索得更多,并且通常更早地发现了最佳动作,但它从未在91%的时间内选择该动作。 (\varepsilon=0.01) 的方法改进得更慢,但最终, 在关于图中所示的两种性能指标上会比 (\varepsilon=0.1) 的方法更好。 同时间,他还可以随着时间的推移减少 (\varepsilon) 以试图获得最佳的高值和低值。

推荐阅读