APP下载

程式设计工具人工生命 v2.0.0 释出 给青蛙添个眼睛

消息来源:baojiabao.com 作者: 发布时间:2026-05-21

报价宝综合消息程式设计工具人工生命 v2.0.0 释出 给青蛙添个眼睛

这是一个人工生命试验专案,最终目标是建立“有自我意识表现”的模拟生命体,技术架构基于02年提出的 一个人工脑模型。 这个专案永远没有结束的时候,开始于模拟一个简单的生命体,然后是青蛙、狗......, 结束于有“自我意识表现”的人工脑。

本次更新内容为几个提交内容的总和,因为这个专案本身的特点,决定了它不可能是个“有用”的程式,就好象你如果真的拿到一只青蛙,也不知道能用它来干什么,所以我也不知道什么时候该释出更新资迅。只好将几次更新累积在一起发。但这个专案足够有趣,对神经网络、人工智能感兴趣的同学们可以看一看。自从上个版本“第一个人工生命诞生”后,目前主要改动是给青蛙加了个眼睛,但非常简陋,指望青蛙进化出一双炯炯有神大眼睛的同学们可能要失望了。以下为更新内容流水账:

2019.03.11 虚拟环境已建好,可以模拟低等生命的遗传、繁殖、变异、进化现象,但目前只能往一个方向运动,相当于一个最简单的单细胞生物,还不具备视觉能力,不具备主动找食能力。

执行run.bat可以检视演示(需要安装Java8和Maven)。Env.java中的几个重要引数说明:

SHOW_SPEED: 调整实验的速度(1~1000),值越小则越慢。ENV_WIDTH: 虚拟环境的大小(100~1000)EGG_QTY: 每次允许Frog下多少个蛋,每个蛋可以孵出4个青蛙。通常下蛋取值在10~1000之间。蛋储存着我们测试的结果。实验的最终目标就是获得一个蛋。FOOD_QTY:食物的数量,食物越多,则Frog的生存率就越高,能量排名靠前的一批Frog可以下蛋,其余的被淘汰。下面是这个测试的动画截图,有兴趣的可以试着自己执行一下:

另外每步演示的结果(egg)会存档在根目根目录下,名为egg.ser,可以删除这个档案以从头开始新的测试。因为还没涉及脑模型的搭建,可以看到有些青蛙跑得飞快,这是自然选择的结果,因为跑在最前面的吃得多。 2019.03.21 添加了脑图,改进随机运动模式为Hungry区驱动。从脑图上可以直观地观察脑结构,方便除错。 2019.04.01 改进脑图的显示bug, 每一次生成Frog时新增随机神经元,并简单实现"卵+精子->受精卵"算法,以促进种群多样性。 2019-04-12 新增一个简单的眼睛(只有四个感光细胞),自然选择的结果是眼睛被选中,但是和运动区短路了,谈不上智慧。但有眼睛后找食效率明显提高了,见下图:

2019-06-13 做了一些重构清理,加上了Happy和Pain两个器官,分别对应进食奖励和痛苦感,后者在靠近边界时激发。观查它的表现,痛苦感生效了,一些Frog跑到边界后就不再前进,而是顺着边界溜下去了,但是Happy器官没有生效,这也很显然,因为Happy属于复杂的进食条件反射链的一部分,在没有记忆器官(算法)引入之前,再怎么优胜劣汰也是没办法用上进食奖励讯号的。见下图:

版权 | License

Apache 2.0

期望 | Futures

欢迎发issue提出更好的意见或加入开发组,尤其欢迎能接触到超级计算机的同学加入,随着虚拟环境的复杂度和神经元数量增多,对电脑速度要求会越来越高。

关注我 | About Me

2019-12-23 19:55:00

相关文章