如何在蛇游戏中使用深度强化学习

时间:2019-02-19 15:51:09

标签: python tensorflow machine-learning neural-network reinforcement-learning

理想情况下,我想使用使用深度强化学习方法的神经网络。但是,我不想从最初运行游戏(例如,运行1000次)中收集数据,然后使用该数据来填充神经网络(这将是有监督的学习?)。我宁愿使用深度强化学习方法(带有神经网络)。我研究了Q学习,它看起来很棒,并且可以完成所有工作。但是,Q学习的主要问题是蛇板上的苹果(食物)将始终在随机位置(不确定性)产卵,因此,如果我找到最佳策略(使用Q学习),它将无法正常工作当食物在其他位置重生时(需要重新学习该政策)。

此外,我在考虑理想情况下也不使用进化算法。是否有一种纯粹的“基本”方法(RL)来“教导”蛇毒代理,使其在靠近食品项目(例如使用反向传播)的情况下获得奖励,而无需收集大量的预赛然后馈入网络,也不使用Q学习或进化算法?看来我发现的所有资源都使用其中一种,这不是我想要的。

Architecture Idea. input_left=3, input_front=-1, input_right=-1

侧面说明:我能只按蛇的感知每个方向(左,右,前)输入列表吗?每个方向输入列表都包含例如:[0,5],其中第一个数字是食物(1)或墙壁(0),第二个数字是到该对象的距离。如图所示,将输入此输入列表。我猜我也可以只依赖每个输入的单个int,如果有墙或本身,则为-1,如果是苹果,我就给苹果一个距离(蛇的前,左或右)

现在我的问题是:使用这种技术来遍历模型,Tensorflow是否能够做一些魔术来找到最佳功能(已经设置了TF模型)?就其获得的回报/反馈而言,神经网络是否有办法必须完成整个反向传播事情(例如:它距离苹果更近,因此获得的回报很小),但是减去迈出一步的微小代价)…所有这些功能都易于实现,但我想问题出在反向传播部分(我不太了解)。我了解该网络(如果获得了积极的回报)将向上调整发射的权重,而将其他权重保持原样(随机初始化?)……这是正确的吗,Tensorflow / Keras能够应对吗?

不确定这种体系结构是否有意义以及是否可以工作。

任何想法都值得赞赏!

0 个答案:

没有答案