每次训练强化学习代理时的结果都不一样

数据挖掘 深度学习 强化学习 dqn 演员评论家 蒙特卡洛
2022-02-27 08:05:48

我正在使用 PPO 算法为控制问题训练 RL 代理。我正在使用 stable-baselines 库。

代理的目标是在一个区域内保持 24 度的温度,它每 15 分钟采取一次行动。情节长度为 9 小时。我已经将模型训练了 100 万步,并且奖励已经收敛。我假设代理受过足够的训练。我做了一些实验,关于培训的问题很少

  1. 我通过让它从一个固定的初始状态采取行动来测试一个代理,并监视一个情节的行动和状态采取的行动。当我多次测试代理时,每次采取的行动和产生的状态都是不同的。为什么当代理训练有素时会发生这种情况?

  2. 我训练了一个代理 100 万步。我在相同的环境中使用相同的超参数步长训练另一个代理 100 万步,其他一切都相同。这两个代理会聚。现在,当我测试这些代理时,这些代理采取的行动并不相同/相似。为什么会这样?

有人可以帮我解决这些问题吗?

谢谢

1个回答
  1. 代理的一部分包括采取随机行动。因此,代理有 % 的机会会采取随机行动,而不是基于训练的行动。这被称为“探索”。此页面将其描述为“动作选择中的随机性数量取决于初始条件和训练过程。在训练过程中,策略通常会逐渐减少随机性,因为更新规则鼓励它利用已经获得的奖励成立。 ”

  2. 这很正常。代理的网络是用随机权重初始化的,它在训练期间采取的部分动作也是随机的(见上文)。所以不同的训练运行会产生不同的结果。如果你想规避这个问题,你可以为随机数生成器使用一个固定的种子。