Pybrain强化学习;国家维度

时间:2016-11-23 09:32:51

标签: python neural-network pybrain reinforcement-learning q-learning

我正在开展一个项目,将强化学习与使用Pybrain包的交通信号灯模拟相结合。我已阅读本教程并实现了自己的EnvironmentTask子类。我使用ActionValueNetwork作为控制器,因为我希望我的状态是具有连续值的向量,以便它可以包含有关例如每条车道上等待的车辆数量,每个车道的总等待时间等信息。

我将ActionValueNetwork的输入维度设置为我的状态向量的维度,这表明可以使用向量作为状态变量。当我使用Q-learner或SARSA学习器时,代码运行正常,但是一旦调用方法learn(),我就会收到错误消息。此函数包含行

state = int(state)

,错误消息是

TypeError: only length-1 arrays can be converted to Python scalars

这表明只能使用标量形态。

pybrain强化学习环境是否支持矢量形态?如果是这样,我如何修改我的代码,以便它可以与他们的Q学习或其他方法的实现一起使用?

1 个答案:

答案 0 :(得分:1)

在此期间我发现了我的问题。我使用的是Q()学习者,但应该使用实现neural-fitted Q-learning algorithmNFQ()学习者。现在它有效。