我开发了一个“乒乓”风格的游戏,它实际上在屏幕底部有一个球,左右两侧有弹性墙,顶部有一个粘性墙。它随机选择底部的一个点(在一条直线上)和一个随机的角度,从侧壁反弹,然后撞击顶部墙壁。这重复了 1000 次,每次,发射位置的 x 值、发射角度和它在顶墙上碰撞的位置的最终 x 值。
这给了我 2 个输入 - 发射和发射角度的 x 值和 1 个输出 - 最终位置的 x 值。我尝试使用具有 2 个输入节点、2 个隐藏节点(1 层)和 1 个输出节点的多层感知器。然而,它会收敛到一个点 ~20,然后逐渐变细。这是我尝试过的,但没有一个有帮助,要么错误永远不会收敛,要么开始发散:
- 将输入和输出转换为 0 和 1 之间
- 将输入和输出转换为介于 -1 和 1 之间
- 增加隐藏层数
- 增加隐藏层的节点数
- 将发射位置、发射角度和最终位置转换为 0 和 1,导致 ~750+175 输入和 ~750 输出 - 不收敛
因此,在整个晚上和早上都让我的大脑和身体反抗我之后,我希望有人能帮助我找出这里的问题。这是神经网络无法解决的任务还是我做错了什么?
PS:我使用的是Neuroph的在线版本,而不是编写自己的程序。至少这将帮助我避免实施中的问题