为了账号安全,请及时绑定邮箱和手机立即绑定

关于扮演Snake的神经网络的澄清

/ 猿问

关于扮演Snake的神经网络的澄清

关于扮演Snake的神经网络的澄清

我是神经网络/机器学习/遗传算法的新手,对于我的第一次实现,我正在写一个学会玩蛇的网络(以前你没有玩过它的例子)我有几个问题我不喜欢完全明白:

在我提出问题之前,我只想确保正确理解一般的想法。有一群蛇,每一条都有随机产生的DNA。DNA是神经网络中使用的权重。每次蛇移动时,它都会使用神经网络决定去哪里(使用偏差)。当人口死亡时,选择一些父母(可能是最高适应度),并以轻微的突变机会交叉他们的DNA。

1)如果给整个电路板作为输入(大约400个点)足够的隐藏层(不知道有多少,可能是256-64-32-2?),并且有足够的时间,它是否会学会不打包?

2)什么是好的投入?以下是我的一些想法:

  • 400个输入,一个用于电路板上的每个空间。如果蛇应该去那里(苹果)是正面的,如果它是墙/你的身体则是负面的。越接近-1/1,它就越接近。

  • 6个输入:游戏宽度,游戏高度,蛇x,蛇y,苹果x和苹果y(如果按照这种方式训练,可以学习在不同尺寸的板上玩,但不知道如何输入它的身体,因为它改变了大小)

  • 给它一个视野(可能在头前3x3平方),可以警告蛇的墙壁,苹果或它的身体。(不幸的是,蛇只能在前面看到什么,这可能会妨碍它的学习能力)

3)给定输入法,隐藏图层大小的起点是什么(当然计划调整这个,只是不知道什么是好的起点)

4)最后,蛇的健身。除了获得苹果的时间,它的长度,它的寿命,还有其他因素吗?为了让蛇学会不阻挡自己,还有什么我可以添加到健身帮助吗?

谢谢!


查看完整描述

2 回答

?
手掌心

在这篇文章中,我会建议你:

  • 如何使用LSTM神经网络将导航指令映射到动作序列

  • 有助于您学习如何使用神经网络完成任务的资源

  • 如何根据我需要学习的方法来安装和配置神经网络库

你的想法的一般意见:

我可以看到你正在尝试做什么,并且我相信你的游戏理念(使用随机生成的对手身份控制他们的行为,以随机改变他们使用人工智能的方式来智能地表现)很有潜力。

使用神经网络将导航指令映射到动作序列

为了处理你的游戏板,因为它涉及密集(而不是稀疏)数据,你可以找到一个有用的卷积神经网络(CNN)。但是,因为您需要将地图转换为动作序列,所以序列优化的神经网络(例如递归神经网络)可能对您最有用。我确实找到了一些研究,使用神经网络将导航指令映射到动作序列,构建游戏地图,并通过具有多种输入的游戏移动角色:

一般意见,什么会帮助你

听起来你缺少对神经网络如何工作的一些基本理解,所以我的主要建议是研究神经网络背后的更多潜在机制。重要的是要记住神经网络是一种机器学习模型。因此,仅构建具有随机参数的神经网络并不合理。神经网络是从样本数据训练的机器学习模型,并且一旦训练,就可以在测试数据上评估(例如,执行预测)。

机器学习的根源在很大程度上受贝叶斯统计学的影响,因此您可以从获得贝叶斯统计学的教科书中获益,以便更深入地了解基于机器的分类在一般情况下的工作原理。

了解不同类型的神经网络(如长期短期记忆(LSTM)和卷积神经网络(CNN))之间的差异也很有价值。

如果您想修改神经网络如何用于分类任务,请尝试以下方法:

要学习数学: 我的专业意见是学习神经网络的基础数学是非常重要的。如果它是令人生畏的,我会告诉你我能够自己学习所有这些知识。但如果您更喜欢在课堂环境中学习,那么我建议您尝试一下。学习神经网络的力学和数学的一个很好的资源和教科书是:

神经网络库教程

我建议您尝试使用神经网络库的教程,例如:


查看完整回答
反对 回复 2019-08-28
?
元芳怎么了

我看到了类似的应用。输入通常是蛇坐标,苹果坐标和一些感官数据(在蛇头旁边是墙或在你的情况下没有)。

在这种情况下,使用遗传算法是一个好主意。您只进行参数学习(找到权重集),但结构将基于您的估计。GA还可以用于结构学习(查找ANN的拓扑)。但是对两者使用GA将非常难以计算。

弗洛拉诺教授做了类似的事情。他使用GA来寻找机器人神经网络控制器的权重。机器人在迷宫中执行一些任务。神经网络隐藏层是一个神经元,在输入上有反复关节,在自身上有一个横向连接。有两个输出。输出连接在输入层和隐藏层(提到一个神经元)。

但Floreano做了一些更有趣的事情。他说,我们生来就没有确定的突触,我们的突触在我们的一生中会发生变化。因此他使用GA来寻找突触变化的规则。这些规则基于Hebbian学习。他执行节点编码(对于连接到神经元的所有权重将应用相同的规则)。一开始,他在小的随机值上初始化权重。查找规则而不是突触的数值可以获得更好的结果。 一个来自Floreno的文章

并根据我自己的经验。在上学期我和我的同学找到了一个任务,找到了GA的突触规则,但是对于Spiking神经网络。我们的SNN是移动机器人运动模型的控制器,任务是引导机器人到选定点。我们获得了一些结果但没有预料到。你可以在这里看到结果。所以我建议你使用“普通”ANN来代替SNN因为SNN带来了新的女性。


查看完整回答
反对 回复 2019-08-28

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信