如何使用递归神经网络玩简单的2D Java游戏?

时间:2019-04-21 03:26:40

标签: java machine-learning recurrent-neural-network

我用LWJGL做了一个简单的游戏,让您躲避道路障碍而生存。游戏的唯一输入是向上和向下箭头键。我有一个二维数组的“传感器”,其中包含播放器周围区域的安全状态。有哪些好的Java RNN库可用,我将如何将传感器阵列作为输入应用到一个深层的rnn上进行实时训练,并接收无论在路上还是在路上的反馈。我在下面附加了图片,以帮助您进行构想。

我还没有尝试过任何机器学习库,因为我不太了解如何在这种情况下使用它们,因此您的代码片段建议会派上用场。

//My "sensors"; status of player surroundings int[][] stuff = {{top1, top2, top3, top4},{mid1, mid2, mid3, mid4},{bottom1, bottom2, bottom3, bottom4}};

1 个答案:

答案 0 :(得分:0)

可以在GitHub上找到一些好的库,但这不是您应该寻找的。首先,您需要一种针对RNN的培训技术,我个人会建议在遗传算法中使用RNN的NEAT(增强拓扑的神经进化),有很多视频介绍了它在Snake等游戏中的工作原理和实现方式(如此处的{ {3}})。如果您访问GitHub并恰好在“ Neural Network Neat”上,您会发现多个仓库,而剩下的就是工具!

您还可以使用反向传播或qlearning,但我个人认为bp在这种特定情况下效果不佳,如果这是您的第一个ml项目,则ql会有所提高。

我推荐这个仓库不是因为它很好,而是因为它很简单,并且可以通过(https://www.youtube.com/watch?v=BBLJFYr7zB8)来理解这个想法。

这是您需要执行的操作!

  • 进入主要课程,在我们的例子中是Pong
  • 创建输入数组,它实际上只是一个double数组
  • 在“ outputs = nn.getOutputs(inputs);”这一行中更改learn()中的输入。
  • 在gameOver()中更改健身得分
  • 更改gameover()中发生的事情

我认为就是这样!

希望我有帮助,祝你好运!