用于在线机器学习MDP的Python库

时间:2012-02-05 02:15:08

标签: python machine-learning markov

我正在尝试在Python中设计具有以下特征的迭代markov decision process (MDP)代理:

  • 可观察的状态
    • 我通过保留一些状态空间来处理潜在的“未知”状态 用于回答DP所做的查询类型移动(t + 1处的状态将为 识别先前的查询[如果之前的移动不是查询则为零] 以及嵌入的结果向量)这个空间用0s填充 一个固定的长度,以保持状态框对齐,无论查询 回答(其数据长度可能不同)
  • 可能并非始终在所有州都可用的行动
  • 奖励功能可能随时间而变化
  • 政策融合应该是增量的,仅按每次移动计算

所以基本的想法是MDP应该使用其当前概率模型在T处进行最佳猜测优化移动(并且由于其概率,它所做的移动预期随机意味着可能的随机性),将新输入状态耦合到T + 1获得之前在T的奖励并重新评估模型。收敛不能是永久性的,因为奖励可能会调整,或者可用的行动可能会发生变化。

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

这是python toolbox for MDPs

警告:它适用于香草教科书MDP,不适用于部分可观察的MDP(POMDP),也不适用于奖励中的任何非平稳性。

第二个警告:我发现文档确实缺乏。如果你想知道它实现了什么,你必须查看python代码,或者你可以快速查看他们的documentation for a similar toolbox they have for MATLAB