【问题标题】:how to define a state in python for reinforcement learning如何在 python 中定义状态以进行强化学习
【发布时间】:2018-12-23 13:05:54
【问题描述】:

我需要为我的 RL 问题创建一个状态空间,它有大约 10 个状态变量,每个状态变量包含大约 2 或 3 个变量值。这将使状态空间大约有 600,000 个状态。如何在 python 中实现?

【问题讨论】:

    标签: reinforcement-learning q-learning


    【解决方案1】:

    鉴于您的问题中的状态数量,也许您应该考虑使用某种function approximation 而不是使用表格表示。

    如果您最终决定使用包含 600k 行和与操作一样多的列的表,那么 pandas DataFrame 可能会起作用。

    【讨论】:

    • 是的,这正是我正在寻找的,我正在考虑使用神经网络进行函数逼近,但如果是这种情况,我是否需要对 600k 状态进行一次热编码并将其输入到网络?
    • 是的,我猜如果你的变量是分类的并且你想使用神经网络,也许你应该使用热编码。如果它们是数字的,也许您可​​以将它们视为连续值,即使它们是离散的。另一种选择是使用不同类型的函数逼近器,它能够消化分类数据,例如决策树。
    • 感谢这有很大帮助。在 python 中实现这个时,你能建议我如何实现从一个状态到另一个给定动作的转换。任何参考将不胜感激
    • 谢谢!这完全是另一个问题,状态转换函数与 RL 算法无关。通常,您的环境是一个函数env(s,a),它获取当前状态s 和给定动作a,并返回下一个状态s',一个标志表明情节是否已经结束,有时还有一个奖励(奖励可以看作是一个独立的函数)。
    • 这里 [gym.openai.com/envs/#classic_control] 你可以看到一些典型的玩具环境,它们有助于理解环境概念(如果你用谷歌搜索,你可能会找到这些环境的更简单的 Python 实现)。
    猜你喜欢
    • 2022-06-19
    • 2019-01-05
    • 2017-04-07
    • 1970-01-01
    • 2018-04-05
    • 2017-02-18
    • 2013-09-14
    • 2019-12-07
    • 1970-01-01
    相关资源
    最近更新 更多