我正在使用稳定的基线训练PPO2 RL模型。我发现的一件事是,经过训练的代理仍然会在测试数据上显示一些随机行为,如predict方法PPO2所示;deterministic标志应该设置为True,以查看确定性(非随机)行为。
我理解,在训练一个RL代理时,需要进行一定数量的随机探索,以便agent能够学习最优的值策略网络。然而,我认为,一旦对一个代理进行了训练,并用于对新的测试数据进行操作(预测),将使用模型参数,而不会进行任何探索。因此,在测试时,我认为代理操作和随后的奖励是确定性的(一旦测试数据是静态的)。
为什么经过训练的agent对测试数据进行探索/为什么训练的agent在预测测试数据时仍然是随机的?经过训练的代理在多大程度上是随机的(它是否会在90%的时间内遵循其模型预测,并猜测其余的10%)?
发布于 2019-07-24 13:48:38
PPO方法直接产生随机策略。它的输出是作用空间上的一些概率分布函数。
这并不是所有RL算法的情况,但在许多策略梯度方法中是常见的。
在某些情况下,您可能希望这种行为继续下去。剪刀-石头是一个典型的博弈的例子,随机策略是最优的,还有来自博弈论的其他例子。
此外,许多人已经了解到了政策(我不确定在PPO情况下不查它),在这种情况下,随机行为应该与期望值预测相匹配。这在概念上类似于使用SARSA生成\epsilon-greedy策略。值函数与该策略匹配,尽管如果\epsilon足够低,您可能会合理地猜测完全贪婪的策略是最优的。
经过训练的代理在多大程度上是随机的(它是否会在90%的时间内遵循其模型预测,并猜测其余的10%)?
在政策产出是随机的程度上。它将永远“遵循它的模型预测”。
切换确定性实际上阻止了代理遵循模型,并且通常会选择动作分布的模式(最高概率密度)。
与SARSA不同,使用策略梯度方法时,并不总是可以访问根据操作值进行选择的“贪婪”策略。因此,您的deterministic标志可能会根据行动概率贪婪地选择。
在某些情况下(例如,演员-批评家),您也可能有一个基于值的V(s)或Q(s,a)的估计量,并且可以使用它,但通常认为这是次要的策略函数(此外,在一个大的或连续的操作空间上使用它比实际值的策略函数效率很低)。
还请注意,在某些情况下,例如DDPG (代表深度确定性策略梯度),策略梯度方法可以使用确定性策略,并将探索添加为行为策略,从而使算法脱离策略。DDPG不应该在测试期间展示探索,因为PPO是为您准备的。因此,您可能会发现DDPG的行为更接近您最初的期望。
https://datascience.stackexchange.com/questions/56308
复制相似问题