使用Tensorflow.js开发游戏AI



我在我的github存储库("Lil Square of Eight"(中制作了一个游戏,并创建了一些代码来与机器对战。现在,出于学习和快乐的目的,我想用Tensorflow创建一些AI.js它可以玩游戏甚至获胜。

游戏很简单,每回合玩家点击一个正方形,上面都标有玩家颜色。关闭方块的玩家得分并可以继续回合。

我已经用Tensorflow做了一些测试.js但我完全不理解它。我所能做的就是验证一个方块是否有可以点击的边,并且不给另一个玩家得分的机会,或者自己做一个分数。

const model = tf.sequential();
model.add(tf.layers.dense({ units: 16, inputShape: [8] }));
model.add(tf.layers.dense({ units: 16, inputShape: [16], activation: 'sigmoid' }));
model.add(tf.layers.dense({ units: 1, inputShape: [16] }));
model.compile({ optimizer: tf.train.adam(0.1), loss: 'meanSquaredError', lr: 0.3 });
const xs1 = tf.tensor2d([
[0, 1, 1, 1, 2, 0, 3, 0], [0, 1, 1, 0, 2, 1, 3, 0], [0, 1, 1, 0, 2, 0, 3, 1], [0, 0, 1, 1, 2, 1, 3, 0], [0, 0, 1, 1, 2, 0, 3, 1], [0, 0, 1, 0, 2, 1, 3, 1],
[0, 1, 1, 1, 2, 1, 3, 1],
[0, 0, 1, 0, 2, 0, 3, 0], [0, 1, 1, 0, 2, 0, 3, 0], [0, 0, 1, 1, 2, 0, 3, 0], [0, 0, 1, 0, 2, 1, 3, 0], [0, 0, 1, 0, 2, 0, 3, 1],
[0, 0, 1, 1, 2, 1, 3, 1], [0, 1, 1, 0, 2, 1, 3, 1], [0, 1, 1, 1, 2, 0, 3, 1], [0, 1, 1, 1, 2, 1, 3, 0]]);
await model.fit(xs1, tf.tensor2d([[0], [0], [0], [0], [0], [0], [0], [1], [1], [1], [1], [1], [2], [2], [2], [2]]), {epochs: 550});
console.log(model.predict(tf.tensor2d([[0, 1, 1, 0, 2, 0, 3, 0]])));

编辑

正如所问到的,我希望得到帮助,了解如何使用 Tensorflow 创建一个 AI.js它可以以智能的方式思考和玩我的游戏。它可以从以前的游戏中学习并开始玩游戏。

你正在寻找的叫做强化学习。 它不像大多数用于ML的Tensorflow方法那样流行。 TFJS示例通常围绕监督学习方法进行。

在这种情况下,这是我的建议。 最流行的(对我来说(ML强化学习游戏方法称为Q学习。 首先,你可以在常规的旧Tensorflow和Python中研究Q Learning,然后在你深入理解概念后可以将其转换为TFJS。 您将是第一个!

这里有一个关于Tensorflow和Q学习的精彩系列:https://medium.com/emergent-future/simple-reinforcement-learning-with-tensorflow-part-0-q-learning-with-tables-and-neural-networks-d195264329d0

我希望这能给你一些方向!

相关内容

  • 没有找到相关文章

最新更新