我们有一个自定义的强化学习环境,在这个环境中,我们从稳定的baselines3运行一个PPO代理来解决一个多动作选择问题。agent按预期学习,但是当我们从经过训练的代理中评估学习策略时,当我们设置deterministic=True时,agent的效果比deterministic=False差50%左右。这项研究的目的是为一个现实世界的问题找到新的政策,所以最好能找到一种确定性的政策,因为这对大多数人来说是可以理解的。而且,更多的随机行为会带来更好的性能,这似乎有悖常理。
文档表示只有"deterministic (bool) --是否返回确定性操作。“我理解这一点,因为deterministic=False意味着行为是从具有一定随机性的学习分布中提取的(即,一个特定状态可能导致多个不同的操作),而deterministic=True则意味着这些操作完全基于所学习的策略(即,一个特定状态总是导致一个特定的操作)。
问题是,当使用deterministic=False比使用deterministic=True时性能更好时,它对代理和/或环境有什么看法?
发布于 2022-07-29 16:56:39
在使随机代理具有确定性之前,您需要非常小心。这是因为他们无法达到某些目标。考虑以下经过简化的示例,其中有8个状态:
| | # | | # | |
| X |---| G |---| X |'G‘是目标,'X’是坑,'-‘是墙。“#”状态不可能以确定性的方式修复。例如,如果“#”处的策略左转,则从左上角的两个状态中,代理将永远无法到达目标。随机政策的优势在于能够防止这类问题的发生,并让代理人找到一条实现目标的途径。
此外,行动的随机性应随着时间的推移而减少,以反映某一特定行动是否正确的确定性,但当然也可能存在某些状态(如“#”),其中仍然存在重大的不确定性。
https://stackoverflow.com/questions/72995715
复制相似问题