2.4 Incremental Implementation
背景:目前的行动价值方法都将行动价值估计为观察到的奖励的样本平均值。现在转向如何以计算上有效率的方式计算这些平均值的问题,特别是使用恒定内存和恒定每时间步计算。
为了简化符号,我们将注意力集中在一个动作上。以表示此第i次选择的行动奖励,使用表示其在被选择n-1次后的(平均)估计价值,可以将其写成:
优点:保留所有奖励的记录,然后在需要估计值时执行此计算。
缺点:随着时间的推移,内存和计算需求会随着回报的增加而增加。每一个额外的奖励都需要额外的内存来存储,并需要额外的计算来计算分子中的总和。
正如您可能怀疑的那样,这并不是真正必要的。设计用于更新平均值的增量公式是很容易的,因为处理每一个新奖励所需的计算量较小且恒定。给定和,n种奖励平均值新公式为:
这个实现只需要Qn和n的内存,每个新奖励只需要少量的计算(上式2.3)。下一页的框中显示了使用增量计算样本平均值和ε-贪婪操作选择的完整bandit算法的伪代码。假定函数bandit(a)采取行动并返回相应的奖励。
一般形式是:
(2.4)
表达式在估计中是一个误差(error),通过向“目标”迈出一步,它就会减少虽然目标可能有噪声,但假定目标指示理想的移动方向。例如,在上述情况下,目标是第n个奖励。
请注意,在上述增量方法中使用的步长参数(步长)会随着时间步长的变化而变化。在处理动作a的第n个奖励时,该方法使用步长参数,本书中,我们用α表示步长参数,或者更一般地用,当=1/n时,我们有时使用非正式的速记α=1/n,使n对动作的依赖性隐式存在,正如我们在本节中所做的那样。
2.5 Tracking a Nonstationary Problem
背景:迄今为止讨论的平均方法适用于平稳的bandit问题,即报酬概率不随时间变化的bandit问题。遇到的强化学习问题,实际上是非平稳的。在这种情况下,对最近的奖励给予更多的重视比对很久以前的奖励给予更多的权重是有道理的。
常用的方法之一:恒定步长参数,即常数。
例如,增量更新规则(2.3)用于更新过去n-1代的平均Qn奖励修改为:
,(2.5)
其中,步长大小参数α∈(0,1],常数。因此,是过去奖励与现在初始估计的加权平均:
随着干预奖励数量的增加,给予Ri的权重也随之降低。事实上,权重根据1-α的指数呈指数衰减。
另一种,使步长参数随着时间变化,由大数定律保证收敛到真正的作用值。当然,并非所有的序列选择都能保证收敛,随机逼近理论中的一个著名结果给出了确保概率1收敛所需的条件:
注意,对于样本平均情况,两个收敛条件都满足,但不适用于恒定步长参数的情况。在后一种情况下,不满足第二个条件,这表明估计永远不会完全收敛,但随着最近收到的奖励而继续变化。正如我们前面提到的,在非平稳环境中,这实际上是可取的,而有效的非平稳问题是强化学习中最常见的问题。此外,满足条件(2.7)的步长参数序列通常收敛非常缓慢,或者需要大量调整以获得满意的收敛速度。虽然满足这些收敛条件的步长参数序列通常用于理论工作,但它们很少用于应用和实证研究。
练习2.4 如果步长参数不是常数,那么估计值是之前收到的奖励的加权平均值,其权重不同于(2.6)中给出的权重。就步长参数的顺序而言,与(2.6)类似,一般情况下每个先前奖励的权重是多少?
练习2.5 设计并进行一个实验,以证明样本平均法对于非平稳问题的困难。使用10臂试验台的修改版本,其中所有q∗(a)从相等开始,然后进行独立的随机游动(例如,在每一步上将平均值为零、标准偏差为0.01的正态分布增量添加到所有q∗(a))。做出图2.2所示的图表,用于使用递增计算的样本平均值的行动值方法,以及使用恒定步长参数α=0.1的另一个行动值方法。使用ε=0.1和更长的运行时间,例如10000步。