Replies: 1 comment 5 replies
-
无论是 on-policy 还是 off-policy 都是不建议 reuse sample 的,能用新鲜的就用新鲜的。 |
Beta Was this translation helpful? Give feedback.
5 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
我不确定是否是我的设置有问题,目前我在V3和V4的online phase中都出现了若干步(
3M,Total Step8M)之后到达峰值(此时V4对战V3数据avg_pt~1.3,符合文档中对强度的测试),之后表现下降的现象。虽然此时停止训练已经能获得较好的结果,但是我希望能继续推进训练并提高模型的表现。根据一般RL中解决遗忘的一些方法,我在V3中尝试了随时间降低lr、epsilon和temperature,并设置了比较高的sample reuse rate等等操作,最后也只能做到稍微延缓,并没有解决这个问题。
另外我注意到V4已经移除了sample reuse部分的代码,是否也是实验中效果不佳的结果?
EDIT:经过进一步的实验,如果boltzman_epsilon继续减小,则模型表现可以达到稳定,在更多的训练中没有下降(但也没有上升)。有两种不同的猜想:
(1)模型已经收敛,只是boltzman_epsilon比较大时存在一些稳定性问题。
(2)模型仍未收敛,但是因为boltzman_epsilon太小而无法进一步学习。
2024/9/3 EDIT: 添加一些参考对局,分别展示了现象发生前,训练6小时后,训练24小时后的对局。经过24小时后PT骤降至-60,可以认为是非常异常的现象。
Before_forgetting.json
After_6hours.json
After_24hours.json
我发现的是模型遗忘之后各个动作的Q值非常接近,这可能进一步导致了模型无法准确采样。
其他项目中类似的现象:
(1)Lunar Lander:链接1,表现为agent着陆失败后不再尝试着陆。链接2展示了一些不同采样方法的对比,受其影响我尝试了一些不同的采样策略,但是没什么效果。
(2)CartPole:链接2,这里提到overfitting 可能是造成问题的原因,因此我尝试了相关方法,但是效果不大。
(3)Drone simulator for collision avoidance:链接3同样提到了采样方法的问题。
另外补充目前尝试过的有一定作用的策略:
(1)调整boltzmann_epsilon和boltzmann_temp。其中如果boltzmann_temp设置为0,则模型表现退化很慢,但并没有什么提升。
(2)进行了一些关于overfitting的对策,包括提高weight_decay以及加入dropout。对模型性能产生了一些积极影响,但是结果并没有改变模型遗忘的现象。
(3)增加batch_size以及opt_step_every,有一定效果
(4)大幅降低lr。目前我已经尝试将lr设置为1e-10,较为有效的防止了这一现象,但是并没有解决问题。
(5)改变Baseline。有一定效果。
(6)改变采样策略。有一定效果。
(7)减少train_play大小。有一定效果。
其他参考链接:
链接4
Beta Was this translation helpful? Give feedback.
All reactions