首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >策略梯度:为什么混洗数据会导致性能下降?

策略梯度:为什么混洗数据会导致性能下降?
EN

Stack Overflow用户
提问于 2019-02-10 16:09:57
回答 1查看 188关注 0票数 0

以上是代理在gym环境LunarLanderContinuous-v2上运行时每100集的平均得分。橙色和蓝色线条是代理将过渡顺序馈送到策略梯度算法(例如,ppo)时的结果,而红线是代理在将收集的过渡馈送到算法之前对收集的过渡进行打乱时的结果。我不明白为什么简单地对数据进行混洗会产生如此大的不同。据我所知,神经网络假设输入数据是IID,因此DQN等算法会对数据(或重放缓冲区中的随机样本)进行混洗,以打破相关性。但在这里,数据混洗似乎会让事情变得更糟,为什么会发生这种情况?

这是我的项目https://github.com/xlnwel/Distributed-Model-Free-RL/tree/master/dppo

每个工作者对过渡进行采样,直到收集到一定量的过渡,然后计算梯度,将梯度发送给学习器以更新权重,然后重复上述过程。对应于混洗数据的代码在worker.py中的行143到行150。

EN

回答 1

Stack Overflow用户

发布于 2019-02-11 04:16:37

我想说的区别是在策略(策略梯度)和非策略方法(例如DQN)之间的区别。您不能对收集的数据进行混洗,因为在拟合每一集之后,策略本身会发生变化。当您收集新样本时,它们采用的是新策略。然而,在DQN的情况下,您可以更新给定状态-动作对的Q值函数,从而您仍然可以一起使用随机样本并更新它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54614574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档