update readme1.md

This commit is contained in:
drinkjava2 2023-10-17 09:47:30 -06:00
parent f2dd48a5ba
commit cbc3e390de
11 changed files with 1 additions and 32 deletions

1
1.md
View File

@ -1 +0,0 @@
2019.04.01 改进脑图的显示bug,

1
2.md
View File

@ -1 +0,0 @@
每一次生成Frog时添加随机神经元,

1
3.md
View File

@ -1 +0,0 @@
并简单实现"卵+精子->受精卵"算法,

2
4.md
View File

@ -1,2 +0,0 @@
以促进种群多样性。
2019-04-12 添加一个简单的眼睛(只有四个感光细胞),

1
5.md
View File

@ -1 +0,0 @@
自然选择的结果是眼睛被选中,

1
6.md
View File

@ -1 +0,0 @@
但是和运动区短路了,

1
7.md
View File

@ -1 +0,0 @@
谈不上智能。但有眼睛后找食效率明显提高了,

1
8.md
View File

@ -1 +0,0 @@
见下图:

View File

@ -62,7 +62,7 @@ Frog: 这是人工生命的主体,目前起名叫青蛙(Frog),其实叫什
另外每步演示的结果(egg)会存盘在根目根目录下名为egg.ser可以删除这个文件以从头开始新的测试。因为还没涉及脑模型的搭建可以看到有些青蛙跑得飞快这是自然选择的结果因为跑在最前面的吃得多。
一些重要的测试参数如显示区大小、是否每次测试要删除保存的蛋等请参见Env.java中开头的常量设定可以手工修改进行不同参数的测试。
2019.03.21 添加了脑图改进随机运动模式为Hungry区驱动。从脑图上可以直观地观察脑结构方便调试。
2019.04.01 改进脑图的显示bug, 每一次生成Frog时添加随机神经元并简单实现"卵+精子->受精卵"算法,以促进种群多样性。
2019.04.01 改进脑图的显示bug, 每一次生成Frog时添加随机神经元并简单实现基因交换算法,以促进种群多样性。
2019-04-12 添加一个简单的眼睛(只有四个感光细胞),自然选择的结果是眼睛被选中,但是和运动区短路了,谈不上智能。但有眼睛后找食效率明显提高了,见下图:
![resut2](result2.gif)
2019-06-13 做了一些重构清理加上了Happy和Pain两个器官分别对应进食奖励和痛苦感后者在靠近边界时激发。观查它的表现痛苦感生效了一些Frog跑到边界后就不再前进而是顺着边界溜下去了但是Happy器官没有生效这也很显然因为Happy属于复杂的进食条件反射链的一部分在没有记忆器官算法引入之前再怎么优胜劣汰也是没办法用上进食奖励信号的。见下图

View File

@ -1,2 +0,0 @@
2019.04.01 改进脑图的显示bug, 每一次生成Frog时添加随机神经元,并简单实现"卵+精子->受精卵"算法,以促进种群多样性。
2019-04-12 添加一个简单的眼睛(只有四个感光细胞),自然选择的结果是眼睛被选中,但是和运动区短路了,谈不上智能。但有眼睛后找食效率明显提高了,见下图:

View File

@ -1,20 +0,0 @@
另外每步演示的结果(egg)会存盘在根目根目录下名为egg.ser可以删除这个文件以从头开始新的测试。因为还没涉及脑模型的搭建可以看到有些青蛙跑得飞快这是自然选择的结果因为跑在最前面的吃得多。
一些重要的测试参数如显示区大小、是否每次测试要删除保存的蛋等请参见Env.java中开头的常量设定可以手工修改进行不同参数的测试。
2019.03.21 添加了脑图改进随机运动模式为Hungry区驱动。从脑图上可以直观地观察脑结构方便调试。
2019.04.01 改进脑图的显示bug, 每一次生成Frog时添加随机神经元并简单实现"卵+精子->受精卵"算法,以促进种群多样性。
2019-04-12 添加一个简单的眼睛(只有四个感光细胞),自然选择的结果是眼睛被选中,但是和运动区短路了,谈不上智能。但有眼睛后找食效率明显提高了,见下图:
![resut2](result2.gif)
2019-06-13 做了一些重构清理加上了Happy和Pain两个器官分别对应进食奖励和痛苦感后者在靠近边界时激发。观查它的表现痛苦感生效了一些Frog跑到边界后就不再前进而是顺着边界溜下去了但是Happy器官没有生效这也很显然因为Happy属于复杂的进食条件反射链的一部分在没有记忆器官算法引入之前再怎么优胜劣汰也是没办法用上进食奖励信号的。见下图
![resut3](result3.gif)
2019-06-26 找食效率太低又改回到4.12的用连接数量代替权值这个逻辑人为设计的算法居然比不过随机连接。Pain器官的加入没有提高找食效率必须与感光细胞合用才能知道是哪个边界急需引入记忆功能。
2019-06-28 为了让青蛙看到边界又加了个新的眼睛它是一个可自进化的nxn点阵的眼睛将来会取代只有四个象素点(但能看得远)的老眼睛。到目前为止,依然还没有进行模式识别和记忆功能开发。另外脑图可以动态显示了,用一个红圈标记出被动态跟踪显示的青蛙。
2019-07-28 有以下改动: 1.在Env区中间加了一个陷阱区Trap以增加趣味性自然选择的结果是青蛙会自动绕开陷阱区。2.增加一个Active器官它的作用是一直保持激活发现比Hungry器官驱动更能提高找食效率。3.增加一个Chance器官,它的作用是引入随机扰动,打破青蛙有时候围着一个食物打转就是吃不着的死循环。目前进食奖励信号没用到,白白浪费了。
另外Chance和Eye类里也再次运用了随机试错原理去确定关键参数效果还不错有兴趣的可以看一看源码。
![resut4](result4.gif)
另外发现青蛙其实是有记忆能力的,因为连接本身就是一种记忆,只不过它没有复杂的模式识别能力,例如给个蛇的图片它就认不出来。以后的工作将以模式识别为重点(当然随机连接看起来很有用,以后还可能保留)基本原理是见note中提到的仿照波传播及全息存储原理在思维区逆向成像。而且脑可能改成三维结构并根据逆向成像原理要将所有输入输出器官全移到三维结构的同一侧(即思维区)。这将会是一个非常大的改动下面我简单画了一个3D示意图来说明我想象中的这个模式识别和记忆的原理至于对不对还需要实验来验证:
![3d-model](3d-model.gif)
这个模型的最顶层表示眼睛的感光细胞(或任意输入输出细胞),同时也是思维区,红色表示一个长条的图形,兰色表示一个三角图形,如果这两个图形经常有规律地同时出现,就会把它们共有的节点撑大,见紫色的节点,当红色图形单独出现,就会强烈激活紫色节点,然后紫色节点的信号反向传播,就会激活三角图形,反之亦然。这就同时解释了模式识别和记忆(或者说回忆)功能的的原理。一个节点可以被多个感光细胞共享,所以它的存储能力是很强的。而且可能这个原理比较符合生物脑结构。当然,实际编程时,虚拟神经元不一定要排成正立方三角,而可能通过胡乱排放,大致上过得去就行了,也许能乱拳打死老师傅,最终要靠电脑自动随机的排放,然后用优胜劣汰来筛选。目前有个难点是这个记忆功能在思维区成像是如何有条不紊地大体上按串行进行工作的,这个问题先放一放。
2019-08-04 更新了一个分组测试功能,如果测试青蛙数量太多,可以分批来测试,每轮测试最少的青蛙数量可以少到只有一个,这是用时间来换空间。
2019-08-05 有了分组测试功能后,顺手加上了一个青蛙走跷跷板自动平衡的演示,它每次只出场一个青蛙, 每轮包括100场测试大约跑90多轮半个小时(电脑慢)后,出现了下面的画面:
![result5](result5_seesaw.gif)
这个版本的目的是为了增加一点趣味性,显得青蛙还是有点"用处"的,省得让人以为这个项目不务正业,青蛙只会找食。这个版本青蛙的脑结构和找食版的青蛙基本相同,区别只是在于环境不同,也就是说它的表现随着环境而变化,这符合"通用人工智能"的概念,即信号感受器官是统一的(通常是眼睛)但能根据不同的环境完成不同的任务。走跷跷板演示是最后一个2维脑的版本今后这个项目将沉寂一段较长时间我将致力于将青蛙脑重构为3D金字塔形脑结构(见上文)因为这个项目的缺点已经很明显它不具备对2维图像的模式识别能力用随机试错的方式只能处理非常简单的、信号在视网膜的固定区域出现的图像信号。