【问题标题】:How to implement a neural network to play an endless runner game?如何实现神经网络来玩无尽的跑步游戏?
【发布时间】:2020-02-17 22:06:53
【问题描述】:

在学习了神经网络的基础知识后,我想创建一个小而独特的项目(比手写数字等更难的项目)。 我选择实现一个无尽的跑步游戏,记录我的动作并使用收集的数据训练一个神经网络。

游戏是这样的:

玩家可以左右移动(箭头),目标是避开小行星。 当玩家按下左箭头时,所有小行星的坐标、玩家位置和左移都会被记录下来。 当玩家按下右箭头时,会发生同样的事情,但“移动”设置为向右。 我在弄清楚如何记录不运动时遇到了问题,所以当我按下向上箭头时,我将其编码为不记录运动(直线)。所以当我不动的时候,我按向上箭头(以中等速度)

最多可以有 20 颗小行星,但我收集了一个较小数据集的数据,看看它是如何工作的。

收集的数据如下所示:

如您在第一行中所见,共有 42 列。 板上所有小行星的 x 坐标的 20 列。 20 列显示板上所有小行星的 y 坐标。 1 列代表玩家的 x 坐标 1 列移动(0 - 左;1 - 右;2 - 直线,无移动)

我收集了 4042 个样本: 还剩 1140 个 1122 对 1780直​​

正如我之前所说,我准备它来处理 20 颗小行星,但我只收集了其中少数的数据,所以其余的列都用零填充。

我用 tensorflow 训练了一个神经网络

data = pd.read_csv('collected_data.csv')
y = data['move']
x = data.drop('move', axis=1)
x_train = x.to_numpy()
y_train = y.to_numpy()

x_train = tf.keras.utils.normalize(x_train, axis=1)

model = tf.keras.Sequential([
    tf.keras.layers.Dense(41,activation='hard_sigmoid',input_shape=x_train[0].shape),
    tf.keras.layers.Dense(41, activation='hard_sigmoid'),
    tf.keras.layers.Dense(41, activation='hard_sigmoid'),
    tf.keras.layers.Dense(3,activation='hard_sigmoid')
])
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy'])

model.fit(x_train, y_train, epochs=10)

model.save('model.h5')

结果:

我的模型根本不适合。当我运行游戏时,宇宙飞船根本不动,总是选择直行。我尝试了不同的神经网络架构,更多的层,更少的层等,但它几乎不会改变结果。我没有足够的数据吗?数据太复杂?我选错型号了吗? 我将不胜感激任何建议。谢谢!

【问题讨论】:

  • 嗨 Bartosz,我建议您研究强化学习来解决此类问题。强化学习擅长学习有一组目标导致游戏成功(幸存)或不成功(崩溃)的游戏。见gym.openai.com\
  • 您好,感谢您的评论。问题是我知道强化学习通常用于此类事情,我想对监督学习做同样的事情。有可能吗?
  • 理论上是的,但你这样做的方式可能不是。我认为您需要生成一些可以从中采样的概率输出(例如强化学习),否则您的模型将始终做同样的事情(这可能不是一件坏事)。其他你可能想要跟踪历史的东西,这样你就可以看到之前的 N 个动作是什么。另一件事是您应该删除最后一层的激活函数,因为您已指定损失函数为“from_logits”。
  • 好的,谢谢。我将尝试通过强化学习来做到这一点。

标签: python tensorflow machine-learning neural-network


【解决方案1】:

好的,谢谢。我将尝试通过强化学习来做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 2019-09-10
    • 2016-04-05
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多