【问题标题】:Using a Q-learning model without external libraries使用没有外部库的 Q-learning 模型
【发布时间】:2019-04-07 17:58:03
【问题描述】:

我正在尝试在基于 Pacman 的游戏中使用强化学习。我想使用 Q-learning 技术来生成代理的动作。我计划使用 openai-gym 和 keras 库来训练我的模型,但我希望有一种方法可以保存我的模型并在没有 open-gym 和 keras 库的情况下使用它(在它经过训练之后)。据我了解,Q-learning 可用于生成状态-动作对,我想知道是否可以将所有可能的组合保存到 Pacman 等可解系统中。这似乎有些不切实际,所以如果您有任何其他想法,我很想听听。

【问题讨论】:

  • 使用 open.ai 健身房库或 keras 库。不过,我更喜欢 tf 和多巴胺来进行 Q 学习。使用太多的工具,一次是令人困惑的。只需关注一个状态-动作对方程并实施它。

标签: python machine-learning keras openai-gym q-learning


【解决方案1】:

从您的问题来看,您似乎有一个世界模型(基于 Pacman 的游戏),并且想要训练一个 Q-learning 算法来解决环境问题。完成后,您要保存模型。

要保存模型,这完全取决于您使用的 RL 算法。当然,它们都可以保存,否则在现实世界中将毫无用处。

Tabular RL:Tabular Q-learning 基本上将智能体的策略(Q 值)存储到形状为 (S x A) 的矩阵中,其中 s 是所有状态,a 是所有状态可能的行动。环境解决后,只需将此矩阵保存为csv文件即可。我在我的 GitHub 上的强化学习下快速实现了这一点。

线性强化学习:如果状态空间和/或动作空间太大,可以使用函数逼近。在这种情况下,您将构建一个近似 Q 矩阵的线性模型。要保存此模型,您只需将此线性模型的权重保存为 csv 甚至文本文件。

深度强化学习:与线性强化学习相同。你只需要保存神经网络的权重。如果您自己编写网络代码,将其保存为 csv 文件应该很简单。如果您使用的是 tensorflow,您可以通过以下方式创建检查点:

saver = tf.train.Saver()  # Builds the saver

你的训练在哪里结束,放:

saver.save(sess, model_path)

我在我的 GitHub 上也有一个用于深度确定性策略梯度的实现。

【讨论】:

  • 谢谢,这正是我想要的。
  • 太好了,很高兴我能帮上忙。
猜你喜欢
  • 1970-01-01
  • 2019-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
  • 2018-11-07
  • 1970-01-01
  • 2011-10-14
相关资源
最近更新 更多