云计算百科
云计算领域专业知识百科平台

Experience Replay

目录

1. DQN and TD Learning

2. Experience Replay

2.1 Benefits of Experience Replay

3. Prioritized Experience Replay


1. DQN and TD Learning

强化学习的目标就是学习到policy函数 \\pi(a|s) 或最优动作价值函数 Q^{*}(s,a) 去控制Agent,让Agent基于当前的状态 S 来做出相应的动作 A ,争取在未来得到尽量多的奖励。

由于我们并不知道 Q^{*}(s,a) ,因此使用神经网络 Q(s,a;w) 来近似 Q^{*}(s,a)

目标是让预测值尽可能接近 y_t,因此对参数 w 的更新如下。

在使用过transition (s_t,a_t,r_t,s_{t+1}) 后,会将transition (s_t,a_t,r_t,s_{t+1}) 丢弃,这会造成经验的浪费。

按照顺序使用每一条transition (s_t,a_t,r_t,s_{t+1}) 更新参数 w,前后transition有很强的关联,实验证明这样的相关性是有害的,如果把序列打散,消除相关性,则有利于把DQN训练的更好。

2. Experience Replay

把transition存到一个容量为n的队列(Replay Buffer)里。如果队列已满,存入新的transition就得把早前存的的那个删除,然后再存储新的transition。

其中n是超参数,n通常很大,例如取 10^5\\sim 10^6 。

从Replay Buffer中随机抽取一个transition来更新参数 w ,实践中通常使用minbatch SGD,每次随机抽取多个transition,算多个梯度,用梯度的平均来更新参数 w

2.1 Benefits of Experience Replay

  • 打破transition序列的相关性
  • 重新使用过去的经验多次
  • 3. Prioritized Experience Replay

    Prioritized Experience Replay与Experience Replay的区别就是用非均匀抽样代替均匀抽样。

    如果做均匀抽样,那么所有的transition都用相同的学习率;如果做非均匀抽样,根据抽样概率调整学习率, 即如果一条transition有较大的抽样概率,应该将它的学习率设置的比较小。

    • 每一条transition (s_t,a_t,r_t,s_{t+1}) 都被标上 \\delta_t (TD Error)。
    • 如果一条transition是刚被收集到的,还没被用来训练DQN,所以并不知道它的 \\delta_t  ,直接将它的学习率设置为最大值,给予其最高的权重。
    • 在训练DQN时,也要对 \\delta_t 更新,每次使用transition时都要计算 \\delta_t  ,这样transition就有了新的权重.

    总而言之,\\delta_t 越大,那么抽样概率越大,进而学习率小,可抵消大抽样概率造成的偏差。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Experience Replay
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!