我在我的github存储库(“八人广场”)中做了一个游戏,并创建了一些代码来对机器进行游戏。现在,为了学习和joy的目的,我想创造一些人工智能与Tensorflow.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.js,可以思考和玩我的游戏在一个聪明的方式。它可以学习与以前的游戏,并开始玩游戏。
发布于 2019-05-27 01:34:47
你要找的是强化学习。它不像大多数用于ML的Tensorflow方法那么流行。TFJS的例子通常围绕有监督的学习方法。
在这种情况下,这是我的建议。对我来说,最流行的关于ML强化学习的游戏玩方法叫做Q学习。首先,您可以在常规的Tensorflow和Python中研究Q学习,然后一旦您深入理解了这些概念,就可以将其转换为TFJS。你将是第一批!
下面是关于Tensorflow和Q学习的一个很棒的系列:https://medium.com/emergent-future/simple-reinforcement-learning-with-tensorflow-part-0-q-learning-with-tables-and-neural-networks-d195264329d0
我希望这能给你一些方向!
https://stackoverflow.com/questions/52882948
复制相似问题