为什么训练有素的 RL 代理仍会在测试数据上显示随机的“探索性”行为?

数据挖掘 强化学习
2021-09-30 06:09:57

我正在使用稳定的基线训练 PPO2 RL 模型。我发现的一件事是,经过训练的代理仍然会在测试数据上表现出一些随机行为,如predictPPO2 的方法所示;deterministic标志应设置为 True 以查看确定性(非随机)行为。

我知道在训练 RL 代理时,会进行一些随机探索,以便代理可以学习最佳价值策略网络。然而,我认为一旦一个代理被训练,并被用来对新的测试数据采取行动(预测),模型参数就会被使用,并且不会进行任何探索。因此,在测试时,我认为代理的行为和随后的奖励将是确定性的(一旦测试数据是静态的)。

为什么训练有素的代理在测试数据上进行探索/为什么训练有素的代理在预测测试数据时仍然是随机的?受过训练的智能体在多大程度上是随机的(它会在 90% 的时间内遵循其模型预测并猜测其他 10% 的时间)?

1个回答

PPO 方法直接生成随机策略。它的输出是动作空间上的一些概率分布函数。

并非所有 RL 算法都是这种情况,但对于许多 Policy Gradient 方法来说很常见。

在某些情况下,您可能希望这种行为继续下去。Paper-Scissors-Stone 是随机策略最优的博弈的经典示例,博弈论中还有其他示例。

此外,许多代理已经学习了策略(我不确定在 PPO 的情况下没有查找它),在这种情况下,随机行为应该与预期值预测相匹配。这在概念上类似于使用 SARSA 生成ε-贪婪的政策。价值函数匹配遵循该策略,尽管如果ε足够低,您可能会合理猜测完全贪婪的策略是最优的。

受过训练的代理在多大程度上是随机的(它会在 90% 的时间内遵循其模型预测并猜测其他 10% 的时间)?

政策的输出是随机的。它将始终“遵循其模型预测”。

开启确定性实际上会阻止代理遵循模型,并且通常会选择动作分布的模式(最高概率密度)。

与 SARSA 不同,使用 Policy Gradient 方法,并不总是可以访问根据操作值进行选择的“贪婪”策略。因此,相反,您的deterministic标志可能会根据动作概率贪婪地选择。

在某些情况下(例如 Actor-Critic),您可能还具有 V(s) 或 Q(s,a) 的基于值的估计器,并且可以使用它来代替,但这通常被认为是策略函数的次要功能(此外,与实值策略函数相比,在大的或连续的动作空间上使用它是非常低效的)

另请注意,在某些情况下,例如 DDPG(代表 Deep Deterministic Policy Gradients),策略梯度方法可以使用确定性策略,并将探索添加为行为策略,从而使算法脱离策略。DDPG 不应在测试期间表现出探索,因为 PPO 适合您。因此,您可能会发现 DDPG 的行为更接近您最初的期望。