在视频游戏中模拟人类行为

时间:2018-03-25 22:41:38

标签: tensorflow machine-learning neural-network

我正在尝试创建一个模仿我的游戏行为的机器人。游戏是实时的。我可以访问游戏的内部状态。玩家可以执行一系列操作。

基于游戏状态实现if / then决策树机器人很容易,但它不会产生真实的人类玩家。

我虽然使用机器学习和神经网络可以解决这个问题。我最初的方法是每100毫秒记录游戏的状态和行动。我将一系列游戏状态和我的行动输入LSTM,并试图预测在接下来的100毫秒内应该采取什么行动。这个问题是95%以上的时间,我(玩家)闲置并且没有向游戏发送任何输入。因此,训练的结果是网络预测一系列游戏状态之后的下一个动作应该是空闲的。

我想过使用一种不同的方法,只有在玩家发送输入时才会记录游戏状态。这样网络就无法预测玩家应该闲置。当玩家没有发送输入时,这会错过游戏状态中的潜在重要信息。

有关如何处理此事的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以采取的另一种方法是使用成本函数权重使每个动作(即空闲和其他动作)处于平等地位。这里的问题可能是你有一个不平衡的数据集(就标签而言),例如:你可能有10"闲置"为每个"跳跃"你拥有的标签/行动;这反过来推动了神经网络与主导标签的关系。

在这种情况下,您可以将交叉熵的类权重设置为[1 10],即与您拥有的每个标签的频率成反比。见Profile Picture Source