【发布时间】:2017-06-25 06:50:59
【问题描述】:
我是神经网络/机器学习/遗传算法的新手,对于我的第一个实现,我正在编写一个学习玩蛇的网络 (An example in case you haven't played it before) 我有几个问题我不完全理解:
在我提出问题之前,我只想确保我正确理解了大意。有一群蛇,每条蛇都有随机生成的 DNA。 DNA 是神经网络中使用的权重。蛇每次移动时,它都会使用神经网络来决定去哪里(使用偏差)。当种群死亡时,选择一些父母(可能是最高适应度),并以轻微的突变机会交叉他们的 DNA。
1) 如果给定整个棋盘作为输入(大约 400 个点)足够多的隐藏层(不知道有多少,也许是 256-64-32-2?),以及足够的时间,它会学会不将自己封闭?
2) 什么是好的输入?以下是我的一些想法:
- 400 个输入,板上每个空间一个。如果蛇应该去那里(苹果),则为正,如果它是一堵墙/您的身体,则为负。越接近 -1/1 越接近。
- 6 个输入:游戏宽度、游戏高度、蛇 x、蛇 y、苹果 x 和苹果 y(如果通过这种方式训练,可能会学习在不同尺寸的板上玩,但不确定如何输入它的身体,因为它会改变大小)
- 给它一个视野(可能是头部前面 3x3 的正方形),可以提醒蛇注意墙壁、苹果或它的身体。 (不幸的是,蛇只能看到前面的东西,这可能会妨碍它的学习能力)
3) 给定输入法,隐藏层大小的一个好的起点是什么(当然计划调整这个,只是不知道什么是好的起点)
4) 最后是蛇的适应度。除了拿到苹果的时间,它的长度,它的寿命,还有什么要考虑的吗?为了让蛇学会不阻挡自己,我还有什么可以添加到适应度来帮助它的吗?
谢谢!
【问题讨论】:
-
我认为您的问题需要在语义上更加清晰和不那么含糊,因为 StackOverflow 是针对有明确答案的问题,而不是针对一般意见的问题。如果没有为您的问题提供更清晰答案的编辑,您的帖子可能会被 StackOverflow 版主关闭/锁定。
标签: machine-learning neural-network artificial-intelligence genetic-algorithm