0

这个领域对我来说还是很新的,所以如果我问愚蠢的问题,请原谅我。我正在利用 MCTS 运行基于模型的强化学习任务。基本上我有一个代理在一个离散的环境中觅食,代理可以看到它周围的一些空间(为了简单起见,我假设完全了解它的观察空间,所以观察与状态相同)。代理有一个由 MLP 表示的世界的内部转换模型(我正在使用 tf.keras)。基本上,对于树中的每一步,我使用模型来预测给定动作的下一个状态,并让代理根据预测的状态变化来计算它将获得多少奖励。从那里开始是熟悉的 MCTS 算法,包括选择、扩展、推出和反向传播。

本质上,问题在于这一切都运行得非常缓慢。通过分析我的代码,我注意到很多时间都花在了推出上,这可能是我想像的,因为需要多次咨询 NN,并且每次预测都需要一些不平凡的时间。当然,我可能会清理我的代码以使其运行得更快(例如更好的矢量化),但我想知道:

  1. 有没有办法加速/解决为在 MCTS 中推出而进行的传统随机游走?
  2. 通常还有其他方法可以加速 MCTS 吗?就运行时间而言,它与使用 NN 是否不能很好地混合?

谢谢!

4

1 回答 1

0

我正在解决类似的问题,到目前为止,以下内容对我有所帮助:

  1. 确保您在 GPU 上运行 tensorflow(您必须安装 CUDA)
  2. 估计你的代理需要计算多少步才能获得好的结果
  3. (我目前正在研究的)并行化
于 2021-07-21T16:23:06.527 回答