8

我正在尝试在 Python 中设计一个具有以下特征的迭代马尔可夫决策过程 (MDP)代理:

  • 可观察状态
    • 我通过保留一些状态空间来回答 DP 进行的查询类型移动来处理潜在的“未知”状态(t+1 时的状态将识别前一个查询 [如果前一个移动不是查询,则为零] 以及嵌入式结果向量)这个空间用 0 填充到固定长度,以保持状态帧对齐,而不管查询是否回答(其数据长度可能会有所不同)
  • 可能并非在所有州都可用的操作
  • 奖励功能可能会随着时间而改变
  • 策略收敛应该是增量的,并且只计算每次移动

因此,基本思想是 MDP 应该使用其当前的概率模型在 T 处做出最佳猜测优化移动(并且由于其移动的概率是预期的随机性,暗示可能的随机性),将 T+1 处的新输入状态与奖励相结合从上一次移动到 T 并重新评估模型。收敛不能是永久的,因为奖励可能会调整或可用的操作可能会改变。

我想知道的是是否有任何当前的python库(最好是跨平台的,因为我必须在Windoze和Linux之间改变环境)已经可以做这种事情(或者可以通过适当的定制来支持它,例如:派生类允许用自己的方式重新定义说奖励方法的支持)。

我发现有关在线每次移动 MDP 学习的信息相当稀缺。我能找到的大多数 MDP 使用似乎都集中在将整个策略作为预处理步骤来解决。

4

2 回答 2

1

我是一名研究生,在 Python 中做了很多 MCMC 的工作,据我所知,没有任何东西可以直接实现 MDP。我所知道的最接近的是PyMC。挖掘提供的文档它提供了一些关于扩展类的建议。他们肯定没有开箱即用的奖励等。

如果你真的想开发一些好的东西,你可以考虑扩展和继承 PyMC 的东西来创建你的决策过程,这样你就可以将它包含在 PyMC 的下一次更新中,并帮助很多未来的人。

于 2012-02-06T07:07:01.630 回答
1

这是一个用于 MDP 的 python 工具箱

警告:它适用于普通教科书 MDP,而不适用于部分可观察的 MDP (POMDP),或任何类型的非平稳性奖励。

第二个警告:我发现文档真的很缺乏。如果您想知道它实现了什么,您必须查看 python 代码,或者您可以快速查看他们的文档以获取他们为 MATLAB 提供的类似工具箱

于 2013-07-21T18:31:34.093 回答