将神经网络与遗传算法一起用于乒乓球或超级马里奥

Using a neural network with genetic algorithm for pong or supermario

我正在尝试使用 GA 来训练一个 ANN,它的工作是垂直移动一个杆,这样它就可以使球弹跳而不会撞到杆后面的墙壁,换句话说,一个单杆乒乓球。 我打算直接问它,因为我想知道问题出在哪里。 游戏 window 是 200x200 像素,所以我创建了 40000 个输入神经元。 明显的疑问是:GA 能否处理 40000(输入)*10(隐藏)*2 个元素(基因)的染色体? 因为我认为答案是否定的(我实施了这个解决方案但似乎不起作用),解决方案看起来很简单,我只给 NN 提供了 4 个参数,它们是棒和球的坐标 x,y,钉了它。 很好的解决方案,但问题是:我如何在屏幕上的敌人数量不固定的超级马里奥这样的游戏中应用这样的解决方案?我当然无法创建具有动态输入数量的神经网络。 我希望你能帮助我。

你必须使用特征来表示你的状态。例如,您可以将屏幕分成小块,并根据考虑到敌人的函数分配一个值(例如,如果敌人在小块中或与最近的敌人的距离,则为布尔值)。

您仍然可以使用像素,但您可能需要对它们进行预处理以减小它们的大小(例如,使用循环神经网络)。

顺便说一句,NN 可能无法处理 200x200 像素,但它能够使用大小为 84x84x4 的预处理像素表示状态来学习玩 Atari 游戏(参见 this paper)。