我应该使用哪个 Openai Gym 环境来测试时间差异 RL 代理?

人工智能 机器学习 强化学习 开放式
2021-10-26 12:42:32

到目前为止,我一直在使用(我的版本)开放 AI 的代码,以及建议的 CartPole。

我一直在使用 Monte Carlo 方法,对于 cartpole,它似乎工作正常。

试图转移到时间差异,Cartpole 似乎无法学习(使用简单的 TD 方法)(或者我过早停止它,但仍然无法接受)。

我认为是这样的,因为在 Cartpole 中,对于每个时间戳,我们都会得到 1 的奖励,它几乎没有关于天气的即时信息,或者动作好坏。

哪个健身房环境最简单,可能适用于 TD 学习?

最简单的意思是不需要大型NN来解决它。没有卷积网络,没有 RNNS。就像在 cartpole 中一样,只有几个小层的完全连接的 NN。我可以在家里的 CPU 上训练一些东西,只是为了看到它开始收敛。

1个回答

Cartpole 可以很好地使用单步 TD 方法(例如 Q 学习)和简单的神经网络。配置好,一个简单的 DQN 模型应该会在几分钟内解决。您还可以放弃神经网络并使用离散状态或平铺编码等。

你不能做的是将神经网络估计器插入基本的 Q 学习而不做其他调整。这是因为 TD 学习中的引导过程将创建一个失控的反馈,该反馈由初始化的 NN 中的随机和不正确的回报估计驱动。你必须使用像 DQN 这样的东西才能让它工作。这与蒙特卡洛方法不同,在蒙特卡洛方法中,您通常只需插入 NN 代替 Q 表。

DQN的基础是:

  • 使用经验回放。店铺(S,A,R,S)每个步骤的值,并且在训练 NN 时,从该表中抽取一个小的随机批次(例如,可能 16 个样本),重新估计它们的 Q 值以计算 TD 目标,例如 R+γmaxaQ(S,a)并使用它来创建一个小批量来训练 NN

  • 使用“延迟”目标网络来估计 TD 目标。这可以只是你的学习网络的快照,每 N 步拍摄一次,其中 N 通常是 100 到 100000 之间的任何值。

配置良好意味着什么的进一步细节因问题而异。使用 DQN,您将需要使用经验历史大小的超参数、保持网络冻结副本的时间(用于引导估计)、经验表样本的批量大小、探索量。

但在 CartPole 中,将有广泛的可接受的超参数值。所以我怀疑你刚刚插入了一个 NN 来代替 Q 表,并且想知道为什么它不起作用。

我认为是这样的,因为在 Cartpole 中,对于每个时间戳,我们都会得到 1 的奖励,它几乎没有关于天气的即时信息,或者动作好坏。

是的,这是使某些学习目标在顺序决策控制系统中变得更加困难的部分原因。但是,您的蒙特卡洛方法也是如此,通常这与RL中的信用分配问题有关。