人工生命 2.0.3 更新,两条腿的青蛙和吃青蛙的蛇

Frog | 人工生命 (https://gitee.com/drinkjava2/frog)

这是一个人工生命试验项目,最终目标是创建“有自我意识表现”的模拟生命体,技术架构基于02年提出的 一个人工脑模型。 这个项目永远没有结束的时候,开始于模拟一个简单的生命体,然后是青蛙、狗......, 结束于有“自我意识表现”的人工脑,或者说,结束于被机器人代替人类的那一天。

(接上回 模拟体全息存贮的模式识别),以下为本次项目更新流水账: 
2019-12-27 开始设立history目录,给主要的版本直接在history目录下创建副本,以方便运行。在history\003a_legs目录下(依然是2维脑)尝试给青蛙加两条腿,看它能不能自动学会走路。一条腿位于下方,负责左右移动,一条腿位于右侧,负责上下移动,每条腿有抬腿、落腿、转动和相应的感觉细胞。只有当腿落下且转动(用红色表示),而且必须另一条脚同时抬起来时青蛙才会位移,具体什么时候抬腿、什么时候转动腿完全由脑神经随机排列决定。经过一段时间的生存汰淘之后,青蛙会进化出会利用两条腿走路了,但需要的时间非常长,约几个小时之后才达到最高吃食率50%左右,走路风格也比较诡异,是小碎步而不是大踏步。但至少这是青蛙第一次利用两条腿来走路,还是有点意义的,这证明生命进化中就算神经元随机排布,进化出眼睛和腿也是非常简单自然的事。这个实验只给青蛙加了两条腿,但同理如果有四条或更多的腿它应该也是可以随机进化出来的。这也符合我的观点就是外设这种输出设备不重要,想要加,加多少随时都可以加,重要的是脑的进化。所以在以后的一段时间时,还是把青蛙的腿去掉,这样可以将重点放在脑的进化本身。     

2020-05-04 在进行3维脑改造过程中,发现找食率很低,发现自己也看不懂以前的程序怎么编的了,所以在history目录下又添加一个003b_simple目录,把2维脑简化一下,去掉不重要的器官,好仔细分析它的逻辑。 
2020-05-07 经过一番折腾和走弯路之后,最后还是原汁原味地将2维脑003b目录的逻辑搬到了3维脑core目录里了,实现了同样的找食率(~50%左右)。但是效率很低,没有实现我一开始设想的用3维数组存放脑细胞的方案。从现在起,可以专注于改进3D脑本身了。
2020-06-26 添加了一个小蛇到虚拟环境中吃青蛙,设定小蛇只能看到青蛙,青蛙只能看到蛇(严格说是蛇的舌头)。可以看到小蛇会追着青蛙,而青蛙会躲开小蛇,当然也有躲不开被吃掉的。除了引入负值连线用蓝色线条来表示外,并且边线本身也可作为一个细胞被连接外,技术细节上倒没有什么新突破。但这个演示有趣的地方在于它证实了就算是完全随机的排列脑细胞,在长期的优胜劣汰后,生命也会进化出捕食和逃避行为。即然可以进化出捕食和逃避行为,而生命进化又会向越来越复杂的方向进化,所以这个原理可以解释为一种意识的萌芽了。高等生命的意识,本质上也无非就是大自然随机运动产生的一种很复杂的现象而已。  
 
下一步的工作还是将会移回到体全息存贮的模式识别,因为青蛙需要这个模式识别功能来更好地分辨出蛇和其它物体的区别,而且个人感觉有很多潜力可挖,它有两个最大的优点:一是可以小样本学习,二是可以同时处理多维的信息输入输出(即单个输入联想到多个输出,或多个输入联想到单个输出,或多个输入联想到多个输出)。

猜你喜欢

转载自www.oschina.net/news/116747/frog-2-0-3-released