NEAT神经网络JavaScript

时间:2017-01-18 17:00:14

标签: javascript node.js neural-network neat tetris

我开始学习一些关于神经网络的知识,我想创建一个学习玩俄罗斯方块的神经元网络。

所以我偶然发现NEAT JS Library 并在nodejs中使用控制台俄罗斯方块游戏将其连接起来。 我担心的是有些事情是错误的,因为无论屏幕上已经有多少个瓷砖,网络都只会捣碎一个按钮。不确定我是否写了一个不正确的健身功能,或者我的教练正在放弃我最好的基因组。因为当网络通过加速平铺来评分某些点时,这种行为在下一代就消失了。

总是感谢帮助:-)如果你想查看repo

要运行它,只需cd进入dir并使用node.js运行index.js

提前感谢所有人!

1 个答案:

答案 0 :(得分:0)

你可以尝试一些事情......

  1. 测试你的得分功能是否合适。尝试改变它以奖励像在左边放置块一样愚蠢的东西。如果您获得了预期的行为,您可以轻松更改功能以适应您的问题。如果结果与您的预期相反,您可能会告诉算法关于错误而不是分数,那么在返回之前将值乘以-1。
  2. 跟踪每一代的平均分数,看看它们是否会随着时间的推移而变好。如果是的话,一切都很好但你可能需要更多的训练时间。如果不是算法中的某些内容是错误的。
  3. 检查您的进化参数。你应该有尽可能多的人口来确保变化。大约200应该是最小的。使用最好的10%的人口来繁殖。每个复制的基因组都应该有一个小的(3%)机会变异。