为 A.I 生成数据。玩贪吃蛇游戏
Generate the data for A.I. to play the Snake game
我想生成一些数据(蛇的位置、可用的移动、与食物的距离...)来创建神经网络模型,以便可以根据数据对其进行训练以玩贪吃蛇游戏。但是,我不知道该怎么做。我目前的想法是:
- 手动(自己)玩游戏多次迭代并存储数据(缺点:我应该玩很多次游戏)。
- 让蛇做一些随机运动来跟踪并跟踪它们的结果。
- 多次使用深度拳头搜索或类似算法玩蛇并存储数据。
你能向我推荐一些其他方法吗?还是我应该从中选择一种?那是哪一个?
P.S。我不知道问这样的问题是否合适。但是,我不知道whom/where问这样的问题,所以我来了。
如果使用神经网络,从简单的开始。考虑输入和输出并保持简单。
输入:
- 头部左边有多少个方格是空闲的
- 头部右侧有多少个方格是空闲的
- 头部前方有多少个方格是空闲的
- 下一个食物的相对位置left/right
- 下一个食物的相对位置forward/back
- 蛇的长度
将输入标准化为可能的最小值和最大值,以将输入保持在 -1.0 到 1.0 的范围内
输出:
- 左转
- 右转
- 一直向前
(选择激活度最高的输出)
下一个问题是训练。典型的应用可能是对上述神经网络的所有权重使用遗传算法。这会在每个生命周期中随机化并测试神经网络的新版本。 X 次尝试后,创建新的进化并重复改进。这几乎是自动进行随机移动(您的第二选择)
下一个问题是健身训练。你怎么知道哪个神经网络更好?好吧,你可以简单地使用蛇的长度作为适应度因子——蛇越长越好,越多'fit'
我想生成一些数据(蛇的位置、可用的移动、与食物的距离...)来创建神经网络模型,以便可以根据数据对其进行训练以玩贪吃蛇游戏。但是,我不知道该怎么做。我目前的想法是:
- 手动(自己)玩游戏多次迭代并存储数据(缺点:我应该玩很多次游戏)。
- 让蛇做一些随机运动来跟踪并跟踪它们的结果。
- 多次使用深度拳头搜索或类似算法玩蛇并存储数据。
你能向我推荐一些其他方法吗?还是我应该从中选择一种?那是哪一个?
P.S。我不知道问这样的问题是否合适。但是,我不知道whom/where问这样的问题,所以我来了。
如果使用神经网络,从简单的开始。考虑输入和输出并保持简单。
输入:
- 头部左边有多少个方格是空闲的
- 头部右侧有多少个方格是空闲的
- 头部前方有多少个方格是空闲的
- 下一个食物的相对位置left/right
- 下一个食物的相对位置forward/back
- 蛇的长度
将输入标准化为可能的最小值和最大值,以将输入保持在 -1.0 到 1.0 的范围内
输出:
- 左转
- 右转
- 一直向前
(选择激活度最高的输出)
下一个问题是训练。典型的应用可能是对上述神经网络的所有权重使用遗传算法。这会在每个生命周期中随机化并测试神经网络的新版本。 X 次尝试后,创建新的进化并重复改进。这几乎是自动进行随机移动(您的第二选择)
下一个问题是健身训练。你怎么知道哪个神经网络更好?好吧,你可以简单地使用蛇的长度作为适应度因子——蛇越长越好,越多'fit'