Processing math: 100%

[RL Notes] 动作价值估计的增量更新

1. 增量计算平均值

  前文给出的估计动作价值的方法,需要保存所有历史数据,即历史上观测到的所有动作收益。这一计算实际上可以通过增量计算的方式更有效地进行。

  考虑一个特定动作 a,记 Ri 为这一动作被选择 i 次后获得的收益,Qn 表示选择该动作 n1 次后对动作价值的估计,则

QnR1+R2++Rn1n1=1n1n1i=1Ri

由上式可以进一步得到

Qn+1=1nni=1Ri=1n(Rn+n1i=1Ri)=1n(Rn+(n1)1n1n1i=1Ri)=1n(Rn+(n1)Qn)=1n(Rn+nQnQn)=Qn+1n(RnQn)

使用式 (2),只需要保存 Qnn,就可以计算得到 Qn+1,同时计算量也比式 (1) 少。

2. 一般形式

  式 (2) 可以写成一种更新估计值的一般形式

+×()

其中()可以看成是估计的误差,的基础上,朝着的方向前进,使得误差随着向靠近的每一步而减小。

3. 增量更新

  由式 (3) 可以得到对动作价值估计的更新规则

Qn+1Qn+αn(RnQn)

其中步长 αn[0,1],是 n 的函数。当 αn=1n 时,式 (4) 变为式 (2),计算的是平均值。

4. 应对非平稳问题

  在前文给出的 k 臂赌博机问题中,每个动作的收益由所选动作决定的平稳概率分布产生。如果产生动作收益的概率不平稳,如赌博机某个拉杆在夏天的收益期望大于在冬天的收益期望,使用式 (2) 计算平均值就难以体现这一变化。

  估计非平稳赌博机问题动作价值的一个方法是在式 (3) 中使用常数步长,即

Qn+1Qn+α(RnQn)

其中步长 α(0,1] 是一个常数,此时

Qn+1=Qn+α(RnQn)=αRn+(1α)Qn=αRn+(1α)[αRn1+(1α)Qn1]=αRn+(1α)αRn1+(1α)2Qn1=αRn+(1α)αRn1+(1α)2αRn2++(1α)n1αR1+(1α)nQ1=(1α)nQ1+ni=1α(1α)niRi

可见此时 Qn+1 是对过去收益 Ri 和初始估计 Q1 的加权平均,权重随间隔 ni 的增加以指数形式递减:距离越近的收益权重越大,距离越远的收益权重越小。