我已经实现了几种策略梯度算法(REINFORCE、A2C 和 PPO),并且发现最终策略的动作概率分布可能相当极端。作为说明,我的实现基于 OpenAI 的基线。我一直在使用 NN 作为函数逼近器,然后是 Softmax 层。例如,对于 Cartpole,我最终会得到类似的动作分布. 对于单个动作,我可以理解这一点,但顺序轨迹最终的概率为 1。我一直在计算轨迹概率. 改变学习率会改变我到达这个分布的速度,我使用了. 在我看来,轨迹的概率永远不应始终为 1.0 或 0.0,尤其是在随机开始的情况下。这也发生在 LunarLander 等环境中。
在大多数情况下,由此产生的策略是接近最优的解决方案,通过了解决 OpenAI 设定的环境的标准。一些随机种子是次优的
我一直在尝试识别代码中的错误,但我不确定所有 3 种算法和环境中的错误是什么。
有如此极端的政策概率是常见的吗?是否有一种通用的方法来处理更新,以使策略的概率不会如此极端?任何见解将不胜感激!