[RL Notes] 动作价值估计的增量更新
Contents [show]
1. 增量计算平均值
前文给出的估计动作价值的方法,需要保存所有历史数据,即历史上观测到的所有动作收益。这一计算实际上可以通过增量计算的方式更有效地进行。
考虑一个特定动作 a,记 Ri 为这一动作被选择 i 次后获得的收益,Qn 表示选择该动作 n−1 次后对动作价值的估计,则
Qn≐R1+R2+⋯+Rn−1n−1=1n−1n−1∑i=1Ri
由上式可以进一步得到
Qn+1=1nn∑i=1Ri=1n(Rn+n−1∑i=1Ri)=1n(Rn+(n−1)1n−1n−1∑i=1Ri)=1n(Rn+(n−1)Qn)=1n(Rn+nQn–Qn)=Qn+1n(Rn–Qn)
使用式 (2),只需要保存 Qn 和 n,就可以计算得到 Qn+1,同时计算量也比式 (1) 少。
2. 一般形式
式 (2) 可以写成一种更新估计值的一般形式
新估计值←旧估计值+步长×(目标–旧估计值)
其中(目标–旧估计值)可以看成是估计的误差,新估计值在旧估计值的基础上,朝着目标的方向前进,使得误差随着向目标靠近的每一步而减小。
3. 增量更新
由式 (3) 可以得到对动作价值估计的更新规则
Qn+1≐Qn+αn(Rn–Qn)
其中步长 αn∈[0,1],是 n 的函数。当 αn=1n 时,式 (4) 变为式 (2),计算的是平均值。
4. 应对非平稳问题
在前文给出的 k 臂赌博机问题中,每个动作的收益由所选动作决定的平稳概率分布产生。如果产生动作收益的概率不平稳,如赌博机某个拉杆在夏天的收益期望大于在冬天的收益期望,使用式 (2) 计算平均值就难以体现这一变化。
估计非平稳赌博机问题动作价值的一个方法是在式 (3) 中使用常数步长,即
Qn+1≐Qn+α(Rn–Qn)
其中步长 α∈(0,1] 是一个常数,此时
Qn+1=Qn+α(Rn–Qn)=αRn+(1–α)Qn=αRn+(1–α)[αRn−1+(1–α)Qn−1]=αRn+(1–α)αRn−1+(1–α)2Qn−1=αRn+(1–α)αRn−1+(1–α)2αRn−2+⋯+(1–α)n−1αR1+(1–α)nQ1=(1–α)nQ1+n∑i=1α(1−α)n−iRi
可见此时 Qn+1 是对过去收益 Ri 和初始估计 Q1 的加权平均,权重随间隔 n−i 的增加以指数形式递减:距离越近的收益权重越大,距离越远的收益权重越小。