Python人工智能课程:在 Python中发展的人工智能

所以我一直在考虑在 Python 中创建一个类似于this的程序。问题是我对 AI 几乎一无所知。现在我正在阅读遗传算法和神经网络等,但是有很多东西需要吸收。

我现在最大的问题是我不知道整个东西是如何组合在一起的。因此,如果有人能告诉我这样一个程序的总体框架,我会非常感激。例如,生物如何“看到”周围环境中的事物,它们拥有的“染色体”种类以及环境是如何创建的。

另外,任何人都可以为 AI,任何引擎等建议合适的库吗?我一直在考虑使用 neurolab,这将是一个好主意吗?

Thanks!

32

有趣的是,我已经在 Python 中创建了您所描述的内容。

这里有一个图片:

enter image description here

绿点是食物,红色的是需要进化和学习如何吃食物块的生物。

对于这样的事情,最好的灵感和指导来源绝对是 Polyworld:.com/watch?v=_m97_kL4ox0

另一个很好的例子帮助我了解反向传播,我建议你也应该学习,在这里:arctrix.com/nas/python/bpnn.py

虽然这个问题太模糊了,无确回答,但一般的提示是,你首先要对 ANN 的功能有一个坚实的基础,然后用这个通用算法构造一个程序:

检查用户输入(相机应该移动吗?程序应该退出吗?)

对于每种生物:

检查它是否还活着,等等。

接受来自世界的输入

评估其神经网络

将结果应用于身体

应用正面或负面的反馈(正如你所看到的,这一切都归结为这一点)

更新世界(你可以使用物理引擎)

(可选)绘制世界

例如,您的输入神经元可能与物理或视觉刺激相对应。我面前有什么吗?然后将神经元 X 设置为 1,否则设置为 0。

你的输出神经元可以映射成力。神经元 Y 活跃吗?如果是这样,在这个世界周期中对这个有机体施加冲动。

我还建议您不要使用其他人的库进行神经网络计算,因为这是实际学习如何自己实现它们的好方法。不过,您可以Pygame用于渲染,PyBox2D用于物理。

现在,关于“看到”其他生物……这些问题最好在孤立时解决。您需要一个好的软件设计,它将使您能够将整个问题分为许多子问题,这些子问题更容易解决。

通常,可以通过光线投射来查看。创建一个定向的归一化向量(长度为 1 个单位,即sqrt(x*x + y*y) == 1),然后对其进行缩放(x *= factor; y *= factor;)。这样,您将得到一条向外延伸的线。在缩放之前,您可以循环遍历世界上所有生物,并计算其周围的信息(您必须对此进行优化),并检查其向量是否在其中。

有许多更简单的方法。例如,将每个生物体周围的空间分成四个象限,其中四个象限代表眼睛 (X-生物体的上、右、下、左)。然后计算从生物体到每个其他生物体的长度 (优化!)。找到最近的生物体。找出它在哪个象限。瞧,一只活跃的眼睛!

我希望我是有帮助的,但你必须更精确,当你有一个实际问题

6

http://scikit-learn.org/是一个很好的资源(和框架),让您了解 python 中的机器学习。

如果要构建神经网络,http://pybrain.org/是一个很好的框架。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(219)
魔兽世界3.13数据库:从网络访问魔兽世界数据(wow armory)
上一篇
卷积神经网络python代码:一个简单的卷积神经网络代码
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(73条)