use*_*935 5 python artificial-intelligence neural-network
所以我一直在考虑在Python 中创建一个与此类似的程序.问题是我对AI几乎一无所知.现在我正在阅读遗传算法和神经网络等等,但有很多东西需要吸收.
我现在最大的问题是我不知道整个事情是如何组合在一起的.所以,如果有人能告诉我这样一个程序的一般框架,我将非常感激.例如,生物如何"看到"周围环境中的东西,它们所拥有的"染色体"类型以及如何创造环境.
此外,有人可以为AI,任何引擎等建议合适的库吗?我一直在考虑使用neurolab,这是个好主意吗?
谢谢!
cor*_*zza 31
有趣的是,我用Python创建了你所描述的内容.
这是一张照片:

绿点是食物,红点是生物需要进化并学习如何食用食物块.
这样的灵感和指导的最佳来源绝对是Polyworld:youtube.com/watch?v = _m97_kL4ox0 .
另一个帮助我了解反向传播的好例子,我建议你也应该学习,这里是:arctrix.com/nas/python/bpnn.py.
虽然这个问题太过模糊而无法正确回答,但一般的提示是,您首先要了解ANN的功能,然后使用这种通用算法构建程序:
例如,您的输入神经元可能与物理或视觉刺激相对应.我面前有什么东西吗?然后将neuron X设置为1,否则设置为0.
你的输出神经元可以映射成力.神经元Y是否有效?如果是这样,在这个世界周期中对这个有机体施加冲动.
我还建议您不要将其他人的库用于神经网络计算,因为这是实际学习如何自己实现它们的好方法.你可以用Pygame进行渲染,然后用PyBox2D进行物理渲染.
现在,关于"看到"其他有机体......这些问题最好在孤立时解决.您需要一个良好的软件设计,这将使您能够将整个问题分成许多子问题,这些子问题更容易解决.
一般来说,观看可以通过光线投射来完成.创建一个方向化的标准化向量(其中长度为1个单位,即sqrt(x*x + y*y) == 1),然后对其进行缩放(x *= factor; y *= factor;).这样,你得到一条向外伸展的线.在缩放之前,您可以循环遍历世界上的所有生物(您必须优化它),并检查向量是否在它们内部.如果是,则计算其长度,并且您的有机体有一些关于其周围环境的信息.
有许多更简单的方法.例如,将每个生物周围的空间划分为四个象限,其中四个代表眼睛(X-向上,向右,向下,有机体的左侧).然后计算从生物体到每个其他生物体的长度(优化!).找到最近的有机体.找出它在哪个象限.瞧,活跃的眼睛!
我希望我能提供帮助,但是当你遇到实际问题时,你必须更精确并回来.阅读常见问题解答.
| 归档时间: |
|
| 查看次数: |
24604 次 |
| 最近记录: |