如何使用递归神经网络玩简单的2D Java 游戏?
How to use Recurrent Neural Network to play simple 2D Java game?
我用 LWJGL 做了一个简单的游戏,你可以通过躲避道路障碍来生存。游戏的唯一输入是向上和向下箭头键。我有一个 "sensors" 的二维数组,其中包含玩家周围区域的安全状态。有什么好的 Java RNN 库可用,我将如何将我的传感器阵列作为深度 rnn 的输入来实时训练它,并接收反馈是在路上还是在路上。我在下面附上了图片以帮助理解这个概念。
我还没有尝试过任何机器学习库,因为我不太了解如何在这种情况下使用它们,所以您的代码片段建议会派上用场。
//My "sensors"; status of player surroundings
int[][] stuff = {{top1, top2, top3, top4},{mid1, mid2, mid3, mid4},{bottom1, bottom2, bottom3, bottom4}};
可以在 GitHub 中找到一些不错的库,但这不是您应该寻找的。要启动你的 RNN,你需要一种训练技术,我个人会推荐 NEAT(增强拓扑的神经进化),它在遗传算法中使用 RNN,有很多视频解释它是如何工作的以及在 Snake 等游戏中的实现(像这里:https://www.youtube.com/watch?v=BBLJFYr7zB8).如果你去 GitHub 并且就在 "Neural Network Neat" 你会发现多个 repos,剩下的就是实现它们!
您也可以使用反向传播或 qlearning,但我个人认为 bp 在这种特定情况下效果不佳,如果这是您的第一个 ml 项目,ql 有点高级。
我推荐这个 repo 不是因为它好,而是因为它简单而且它通过 (https://github.com/fabiorino/NeuralNetwork-plays-Pong)
以下是您需要执行的操作!
- 转到主要 class,在我们的例子中是 Pong
- 创建输入数组,实际上只是一个双精度数组
- 在这一行更改 learn() 中的输入 "outputs = nn.getOutputs(inputs);"
- 更改 gameOver() 中的健身分数
- 改变 gameover() 中发生的事情
我想就是这样!
希望我帮到你,祝你好运!
我用 LWJGL 做了一个简单的游戏,你可以通过躲避道路障碍来生存。游戏的唯一输入是向上和向下箭头键。我有一个 "sensors" 的二维数组,其中包含玩家周围区域的安全状态。有什么好的 Java RNN 库可用,我将如何将我的传感器阵列作为深度 rnn 的输入来实时训练它,并接收反馈是在路上还是在路上。我在下面附上了图片以帮助理解这个概念。
我还没有尝试过任何机器学习库,因为我不太了解如何在这种情况下使用它们,所以您的代码片段建议会派上用场。
//My "sensors"; status of player surroundings
int[][] stuff = {{top1, top2, top3, top4},{mid1, mid2, mid3, mid4},{bottom1, bottom2, bottom3, bottom4}};
可以在 GitHub 中找到一些不错的库,但这不是您应该寻找的。要启动你的 RNN,你需要一种训练技术,我个人会推荐 NEAT(增强拓扑的神经进化),它在遗传算法中使用 RNN,有很多视频解释它是如何工作的以及在 Snake 等游戏中的实现(像这里:https://www.youtube.com/watch?v=BBLJFYr7zB8).如果你去 GitHub 并且就在 "Neural Network Neat" 你会发现多个 repos,剩下的就是实现它们!
您也可以使用反向传播或 qlearning,但我个人认为 bp 在这种特定情况下效果不佳,如果这是您的第一个 ml 项目,ql 有点高级。
我推荐这个 repo 不是因为它好,而是因为它简单而且它通过 (https://github.com/fabiorino/NeuralNetwork-plays-Pong)
以下是您需要执行的操作!
- 转到主要 class,在我们的例子中是 Pong
- 创建输入数组,实际上只是一个双精度数组
- 在这一行更改 learn() 中的输入 "outputs = nn.getOutputs(inputs);"
- 更改 gameOver() 中的健身分数
- 改变 gameover() 中发生的事情
我想就是这样!
希望我帮到你,祝你好运!