问题描述
我正在尝试将来自稳定基线 3 库 https://stable-baselines3.readthedocs.io/en/master/ 的 PPO 算法应用到我创建的自定义环境中。
我不明白的一件事是以下行:
mean_reward,std_reward = evaluate_policy(model,env,n_eval_episodes=10,deterministic=True)
我应该总是让确定性等于 True 吗? 当我保持 deterministic="True" 时,我的自定义环境“以某种方式”总是得到解决(即,总是返回 1 +/- 0 std 的奖励)。
当我将其更改为“False”时,它开始以合理的方式运行(即,有时成功(奖励 = 1),有时失败(奖励 = 0)。
解决方法
该参数对应于"Whether to use deterministic or stochastic actions"
。所以问题是当你根据给定的状态选择一个动作时,actor_network 会给你一个概率分布。例如对于两个可能的操作 a1 和 a2:[0.25,0.75]
。
如果您使用 deterministic=True
,结果将是操作 a2,因为它具有更大的概率。在 deterministic=False
的情况下,将以给定的概率 [0.25,0.75]
选择结果操作。