Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 你能训练比赛吗;蛇“;使用Q学习(而非深度Q学习)_Python_Machine Learning_Q Learning - Fatal编程技术网

Python 你能训练比赛吗;蛇“;使用Q学习(而非深度Q学习)

Python 你能训练比赛吗;蛇“;使用Q学习(而非深度Q学习),python,machine-learning,q-learning,Python,Machine Learning,Q Learning,我看到很多例子显示人们使用深度强化学习进行训练,但这是我还不知道的,我已经学习了监督训练方法,然后我开始学习Q Learning,认为也许它会变得更有效,我制作了一个简单的蛇游戏,效果很好,所有规则都得到了应用,添加奖励状态和操作,无论需要什么,并通过更新Q表进行Q循环,一切正常,工作正常(顺便说一句,除了Tkinter、math和random之外,没有使用其他库),除了一件事,机器无法真正学习很多东西,无论时间流逝多少,表都会更新,我确信这一点,但根据过去的经验,我想也许Q学习不适合这种游戏?

我看到很多例子显示人们使用深度强化学习进行训练,但这是我还不知道的,我已经学习了监督训练方法,然后我开始学习Q Learning,认为也许它会变得更有效,我制作了一个简单的蛇游戏,效果很好,所有规则都得到了应用,添加奖励状态和操作,无论需要什么,并通过更新Q表进行Q循环,一切正常,工作正常(顺便说一句,除了Tkinter、math和random之外,没有使用其他库),除了一件事,机器无法真正学习很多东西,无论时间流逝多少,表都会更新,我确信这一点,但根据过去的经验,我想也许Q学习不适合这种游戏?我也从来没有见过有人使用Q学习制作游戏“蛇”,所以我就想到了

感谢每一条评论!:)


(顺便说一句,如果你认为我的代码有错误,你可以要求它/它的一部分,我会说,这真的没什么大不了的:p)

你有一个简单的表格,每个可能的状态和操作都有一个条目吗?我不知道如何实际实现,因为snake中的状态数与电路板大小成指数关系,所以即使是一个小电路板的表也不适合内存。是的。。。我只有一个简单的表格,它包含了每个动作的每个状态,仔细想想,机器没有学习到的所有动作都是有意义的,适合所有状态的所有动作(4)(BoardLength^2,我从一个小10x10板开始,有400个选项…)基本上是愚蠢的,而且效率很低。说到这里,我想问,Q学习到底有什么好处?我用它做了几件事,但我不太确定州的数量不是boardlength^2。它远不止这些,因为蛇可能很长,所以你需要跟踪每个可能的细胞是否都是蛇的一部分,从而导致2^(boardlength ^2)状态。如果你真的只有100个状态,那么用表进行q-学习可能会奏效。我很确定,如果我让蛇看下一步,每次它都会检查它移动的部位或边界是否足够……那么你给q-学习算法提供的唯一信息就是蛇头的位置?如果你不给它所有相关的信息,它就无法学到很多东西。