问题描述
我在自建任务中实施PPO2强化学习,并且总是遇到代理似乎已接近成熟,然后突然在思想上丧失其性能并且无法保持其稳定性能的情况。我不知道什么是合适的词。
我只是想知道造成如此灾难性的性能下降的原因是什么?有任何提示或提示吗?
非常感谢
learningprocess1 learningprocess2
解决方法
我猜你的奖励函数没有上限,在某些边缘情况下会产生极高的负奖励。
防止这种情况发生的两件事是:
- 限制奖励函数的值
- 确保您可以处理学习环境不稳定的情况,例如进程崩溃、冻结、遇到错误。例如,如果您在代理跌倒时给予负奖励(机器人试图行走)并且环境由于一些罕见的错误而没有检测到跌倒,那么您的奖励函数会一直给予负奖励,直到情节停止。
大多数时候这没什么大不了的,但如果你不走运,你的环境甚至可能产生 NaN 值,这些值会破坏你的网络