rlPrioritizedReplayMemory
优先采样重放记忆体验缓冲区
描述
非策略强化学习代理将经验存储在循环经验缓冲区中。在训练过程中,代理从缓冲区中提取小批量的经验,并使用这些小批量更新它的角色函数和临界函数逼近器。
缺省情况下,内置的off-policy代理(DQN、DDPG、TD3、SAC、MBPO)使用rlReplayMemory
对象作为他们的经验缓冲。代理统一地从该缓冲区采样数据。执行非均匀优先抽样[1],可以在训练代理时提高样本效率rlPrioritizedReplayMemory
对象。有关优先抽样的更多信息,请参见算法.
创建
语法
描述
输入参数
属性
对象的功能
附加 |
将经验附加到回放内存缓冲区 |
样本 |
回放记忆缓冲区中的经验样本 |
调整 |
调整重放记忆体验缓冲区的大小 |
allExperiences |
返回回放内存缓冲区中的所有经验 |
getActionInfo |
从强化学习环境、代理或经验缓冲区获取动作数据规范 |
getObservationInfo |
从强化学习环境、agent或经验缓冲区获取观测数据规格 |
重置 |
重置环境、代理、经验缓冲区或策略对象 |
例子
限制
优先体验回放不支持使用循环神经网络的代理。
算法
根据经验优先级优先重放记忆样本经验。对于一个给定的经验,优先级被定义为相关的时间差异(TD)误差的绝对值。一个较大的TD误差表明批评网络没有得到相应经验的良好训练。因此,在批评家更新过程中对这些经验进行抽样,有助于有效地提高批评家的性能,这往往提高了agent训练的样本效率。
当使用优先重放记忆时,代理在抽样小批经验和更新评论时使用以下过程。
计算抽样概率P对于基于经验优先级的缓冲区中的每个经验。
在这里:
N重放内存缓冲区中的经验数是多少
p是经验优先级。
α是优先级指数。设置α,可以使用
PriorityExponent
参数。
根据计算出的概率抽样一小批经验。
计算重要抽样权重(w)为抽样经验。
在这里,β为重要性抽样指数。的
ImportanceSamplingExponent
参数的当前值β.控制β,设置ImportanceSamplingExponent
而且NumAnnealingSteps
参数。利用重要抽样权值计算加权损失w和TD误差δ更新评论
根据TD错误更新采样经验的优先级。
更新重要性抽样指数β通过对指数值进行线性退火,直到它达到1。
在这里:
β0为初始重要性抽样指数。指定β0,可以使用
InitialImportanceSamplingExponent
参数。N年代是退火步骤数。指定N年代,可以使用
NumAnnealingSteps
参数。
参考文献
[1] Schaul, Tom, John Quan, Ioannis Antonoglou和David Silver。“优先体验重演”。arXiv: 1511.05952 (Cs)2016年2月25日。https://arxiv.org/abs/1511.05952.
版本历史
介绍了R2022b