《Reinforcement Learning: An Introduction》强化学习导论英文教材自译中文版Chapter 2
Chapter 2 “多臂”赌博机
强化学习区别于其他学习方法最重要的特征在于:它使用训练信息来评估(evaluate)采取的行动而非直接给出正确行动的指令(instruct)。因此需要进行广泛的探索,即:明确地搜索好的行为。单独的评估反馈会表明某个行为有多好,而非它是否可能是最好或最差的。从另一方面来看,单独的指令反馈给出应当采取的正确行为,它与实际采取的行为无关。这种反馈是监督学习的基础,涉及绝大多数关于模式分类、人工神经网络和系统识别的研究。在这两种纯粹的反馈形式中,它们有着本质的区别:评估反馈完全依赖于采取的行动,而指令反馈与实际采取的行动无关。
在这一章,我们在一种简单的设定下——不涉及在超过一种情景下学习如何行动——从评估的方面来研究强化学习。这种无关联性(nonassociative)的设定在探讨评估反馈的准备工作中尽量地避免了完全强化学习问题的复杂性。研究此类案例能让我们更清楚的了解评估反馈和指令反馈的区别以及二者的结合之处。
我们在此探讨一种特殊的无关联性评估反馈问题:K臂赌博机问题的简化版。我们使用这个问题来介绍一些将在后面章节运用于完全强化学习问题的基本学习方法。在本章的结尾,我们会讨论一种更加接近完全强化学习问题的情景,即:当赌博机问题具有关联性时应当如何采取行动。
2.1 K臂赌博机问题
考虑下述学习问题:你面临着k个不同的行动选择,每一次都要从中选择一个行动,在每次选择之后你会收到一个数值型的奖励,该奖励从与你所选行动相关的静态概率分布中产生,你的目标是最大化一段时期内的累积奖励的期望,例如,1000次行动选择或时间步(time step)。
这是k臂赌博机问题的原型,它的命名类似于一种投币机或”单臂赌博机“,但它有k个摇臂而不是一个。每一次行动选择类似于拉动一次投币机的摇臂,而奖励相当于获得的收益。通过重复的行动选择,你可以找到奖励最高的摇臂使收益最大化。另一个类似的问题是一名医生为一些重病患者选择实验性的治疗方案。每一次行动即治疗方案的选择,每一次行动后获得的奖励是病人是否反应良好。如今,“赌博机问题”这一术语被用来概括类似如上所述的所有问题,但本书中我们仅参考它的最简形式。
在我们的k臂赌博机问题中,每一个行动都具有一个期望的或平均的奖励值;让我们称之为行动的价值(value)。我们使用 At 来表示在时刻 t 时选择的行动,对应的奖励为Rt。在任一行动 a 之后获得的价值用 q ∗ ( a ) q_*(a) q∗(a)来表示,它是 a 被选择后获得的奖励的期望:
q ∗ ( a ) = E [ R t ∣ A t = a ] q_*(a)=E[R_t|A_t=a] q∗(a)=E[Rt∣At=a]
如果你准确获悉了每一个行动的价值,那么将轻易地解决k臂赌博机问题:你只需选择价值最高的行动。我们假设你无法确切的获悉行动的价值,但可以估计它们。我们使用 Qt(a) 来表示在时刻 t 时采取行动 a 的价值估计。我们希望 Qt(a) 尽可能地接近 q*(a) 。
如果你维护所有行动价值的估计,那么在任意时刻一定存在至少一个价值估计最高的行动。我们称之为贪婪(greedy)行动。当你在这些行动中选择时,我们说你正在利用(exploiting)你的关于这些行动价值的知识。如果你选择了一个非贪婪(nongreedy)行动,我们说你正在探索(exploration),因为这能使你改进关于非贪婪行动的价值估计。为了在某一步最大化期望奖励,利用是必要的,但从长远角度来看,探索可能会产生更高的累积奖励。举例而言,假设一个贪婪行动的价值是确切已知的,而其他行动的价值估计几乎和它一样好但伴随着很大的不确定性,不确定性意味着这些行动中至少有一个比贪婪行动更好,但是你并不知道是哪一个。如果你还有许多时间可以用来做行动选择,那么探索这些非贪婪行动并发现哪一个行动比贪婪行动更好是可取的。在探索过程中,短期内的奖励是较低的,但从长远的角度来看回报更高,因为在发现更好的行动之后,你可以多次的利用它们。因为在任何时刻不可能同时进行探索和利用,所以必须考虑到探索和利用之间的矛盾。
在任意案例中,探索和利用的对比以一种复杂的形式依赖于价值估计和准确度、不确定性和剩余的时间。对于k臂赌博机及相关问题,有多种精细的方法来平衡探索与利用。然而,它们中的大多数都要求问题具有静态性与先验知识的强假设,后续章节中讨论的运用于实际的完全强化学习问题是很容易违背这些假设的。当这些方法的理论性假设无法运用时,其最优性便难以得到保证。
在本书中我们不需要仔细地研究探索与利用之间的平衡。在本章中我们提出几种简单的关于k臂赌博机的平衡方法,展示它们相较于仅利用方法的优越性。权衡探索与利用是强化学习中特有的挑战;k臂赌博机问题的简易性允许我们能向读者清晰地展示它们。
2.2 行动-价值法
我们来进一步探讨行动-价值法的内在机理,该方法使用行动价值的估计值来进行行动选择。注意,一个行动的真实价值是当其被选择后获得的平均奖励。一种自然的估计方式是对真实接收到的累积奖励值求平均:
式中,1 predicate 为0-1变量,如果 predicate 为真则为1,否则为0。如果分母为0,则定义Qt(a)为某一缺省值。当分母趋于无穷大时,根据大数定律,Qt(a)收敛于q*(a)。我们称其为估计行动价值的采样平均法(sample-average method),因为每一个估计值都是相关奖励样本的平均值。当然,这只是其中一种方法,而且也非最佳方法。尽管如此,让我们暂时只考虑这一简单的估计方法,先处理如何使用价值估计来进行行动选择的问题。
最简单的行动选择规则是选择一个具有最大价值估计的行动,即在之前章节中定义的贪婪行动。如果存在多个贪婪行动则任选其一。我们将贪婪行动选择方法写为:
式中,argmaxa 表示使后续表达式达到最大值的行动a。贪婪行动选择总是利用当前的知识去最大化即时奖励;它不会去关注表面上较差但也许实际上更好的行动。另一种简单的方法是在大多数时间都采取贪婪行动,但偶尔以一个较小的概率ε等可能地随机选择其他所有行动而不考虑行动价值估计。我们称此类方法为近似贪婪行动选择规则——ε-greedy法。此类方法的优点在于,随着步数增加至无限大,所有行动都会被采样无数次,因此保证了所有的Qt(a)均收敛于q*(a)。这就暗示了选择到最优行动的概率将收敛为等于或大于1-ε,即近乎于必然。然而这只是渐进的收敛保证,在实际应用中的效果缺乏验证。
2.3 10-臂赌博机案例
为了粗略地验证贪婪和近似贪婪行动价值法的相对有效性,我们将在一系列案例中定量地比较它们。这是一组由2000个随机生成的10臂赌博机问题组成的集合。对于每一个赌博机问题,如图2.1所示,每一个行动的价值,q*(a),a = 1, …, 10,通过均值为0,方差为1的高斯分布随机生成。然后,当一个学习方法在此问题中于时间t选择了一个行动a时At时,环境返回一个通过均值为q*(At),方差为1的正态分布随机生成的奖励值Rt。这些分布见于图2.1中的灰色区域。我们将这些测试任务集合称为10臂赌博机测试集。对于任一学习方法,我们都可以将其应用于任一多臂赌博机测试案例,根据至少1000步的表现来衡量并改进其性能。这通常被称为1次测试(run)。重复进行2000次独立的测试,每一次测试选择一个不同的赌博机测试案例,我们可以获得学习算法的性能估计。
图2.1 一个10-臂赌博机示例。10个行动的真实价值 q*(a) 采用一个均值为0,方差为1的正太分布随机生成,而后,它们的实际价值采用均值为 q*(a) ,方差为1的正太分布随机生成,如图中的灰色区域所示。
图2.2在如上所述的10-臂赌博机测试集上比较了贪婪算法和2种不同的ε-greedy算法(ε=0.01和ε=0.1)。所有方法均使用采样平均技术来估计所有行动的价值。位于上方的图显示了随着经验增加,期望奖励也在不断增长。贪婪算法的期望奖励的增长速度略快于其他算法,但其最终停滞在较低的水平。它最终获得每步平均奖励仅为1,相比之下,最佳的每步平均奖励可能达到1.55。从长远来看,贪婪算法的表现略逊于其他算法,因为它常常会陷入某些次优的行动。位于下方的图显示贪婪算法在任务开始的前1/3时就找到了最优行动,但在剩余的2/3的时间里,它的关于最优行动的初始采样是持续的、令人失望的。ε-greedy算法最终表现更棒,因为它们始终在探索和提升识别最佳行动的几率。ε=0.1的ε-greedy算法进行了更多的探索,因此通常更早的发现最优行动,但在整个时间域中其选择最优行动的几率低于91%。ε=0.01的ε-greedy算法改进的速度更慢,但在图中显示的2种评价指标上表现的比ε=0.1的算法更好。根据时间的推移逐渐减少ε的值也是一种可能的平衡探索-利用矛盾的方式。
图2.2 ε-greedy行动价值算法在10-臂赌博机测试集上的平均性能评价。这些数据由2000次在不同案例上的独立测试并求取平均值后获得。所有算法使用采样平均技术进行行动价值的估计。
ε-greedy算法与贪婪算法相比所取得的优势与具体任务有关。例如,假设奖励的方差更大:为10而不为1。那么基于噪声更大的奖励,算法需要采取更多的探索才能发现最优行动,ε-greedy算法的优势应该会更大;从另一方面来看,如果奖励的方差为0,贪婪算法在1次搜索后即可获得所有行动的真实价值,在此案例中贪婪算法的实际表现可能会更优,因为它将迅速发现最优行动并永不探索。但是,如果我们弱化其他的一些假设,即使是确定性的案例,探索也具有相当大的优势。例如,假设赌博机问题是非静态的,即:真实的行动价值随时间的变化而变化。在这个例子中,为了确定一个非贪婪行动没有变得优于贪婪行动,即使是确定性的案例,探索亦是必须的。正如我们将在后续的章节中所展示的,非静态环境在强化学习中是最常见的。即使底层的基础任务是静态的和确定性的,学习者们也会面临一系列随着学习的进行和智能体策略变化而变化的类赌博机决策任务。强化学习要求算法在探索和利用之间找到令人满意的平衡点。
2.4 递增式实现
我们目前所讨论的行动价值方法均使用采样平均法来估计行动价值。我们现在来讨论一个问题:这些平均值如何能通过高计算效率的方式来获得,更具体地说,通过固定的内存和每步固定的计算量。
为了简化,我们从单个行动开始讨论。用 Ri 表示在第 i 次选择该行动后获得的奖励,用 Qn 表示它被选择 n-1 次后的行动价值估计,我们可以将其简写为:
Q n = R 1 + R 2 + . . . + R n − 1 n − 1 Q_n=\frac{R_1+R_2+...+R_{n-1}}{n-1} Qn=n−1R1+R2+...+Rn−1
上式的实现要求必须维护一个关于所有获得奖励的记录,然后当需要该估计值时执行该式的计算。但是,如果照此进行,那么内存和计算量的需求将随着获得奖励的增加而增加。每一个新获得的奖励均需要额外的内存来记录它和额外的计算量来计算分子上的求和公式。
如你所想,这些并不是必须的。我们很容易地就可以设计一种仅需少量内存和计算量就可以改进平均值的递增公式来处理每一个新获得的奖励。给定 Qn 和第n个奖励, Rn ,所有n个奖励的平均值可由下式计算:
即使n=1时,上式亦有效,对任意的 Q1 , Q2 = R1。这种实现方式仅仅要求为 Qn 和n分配内存,以及为每一个新获得的奖励执行式(2.3)中的少量计算。下面的框图展示了在一个完整的赌博机案例中使用增量式计算采样平均和ε-greedy行动选择方法的伪代码。函数 bandit(a) 表示采取一个行动并获得一个对应的奖励。
(2.3)中展示的改进规则是一种在本书中频繁出现的形式。该一般形式为
表达式[ Target - OldEstimate ] 代表一种估计误差。通过向 “Target ” 前进一步可以减少该误差。该目标表示一个理想的前进方向,尽管它可能存在偏差。例如,在上例中目标为第n个奖励。
注意,在上述递增式中的步长参数( StepSize )会随着步数的变化而变化。在处理行动a的第n个奖励时,算法的步长参数为1/n。在本书中,我们使用符号 α 来表示步长参数,或者更一般地,使用 αt(a) 。
2.5 探讨一个非静态问题
目前为止我们讨论的均值方法对于静态的赌博机问题是适宜的,即获得奖励的概率不随时间变化的赌博机问题。如前所述,我们常常会遇到非静态的强化学习问题。在这些案例中,相对于很久以前获得的奖励,给予最近获得的奖励更高的权重是有意义的。一种流行的实现方式是使用一个固定的步长参数。例如,用于改进过去n-1个奖励的平均值 Qn 的增量式(2.3)可以表示为:
其中步长参数 α ∈ [ 0 , 1 ] \alpha \in [0, 1] α∈[0,1] 为一个定值。这使得 Qn 成为初始价值估计 Q1 和过去所有奖励的加权平均:
我们称其为加权平均是因为权重的和 ( 1 − α ) n + ∑ i = 1 n α ( 1 − α ) n − i = 1 (1-\alpha)^n+\sum^n_{i=1}\alpha(1-\alpha)^{n-i}=1 (1−α)n+∑i=1nα(1−α)n−i=1,其正确性读者可以自行检验。注意给予奖励 R i R_i R<