稳定基线3库中的“确定性=真”是什么意思?

问题描述

我正在尝试将来自稳定基线 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 会给你一个概率分布。例如对于两个可能的操作 a1a2[0.25,0.75]。 如果您使用 deterministic=True,结果将是操作 a2,因为它具有更大的概率。在 deterministic=False 的情况下,将以给定的概率 [0.25,0.75] 选择结果操作。