691 Star 3.4K Fork 660

drinkjava2 / 人工生命

 / 详情

关于构建脑的一点思考

已完成
创建于  
2022-08-31 15:59

脑的结构构建

我早先也研究过这个东西,主要是基于遗传算法的神经网生成,用以完成某种控制目的(比如控制倒立摆,目标跟踪【就像pid那样的玩意】)。
但随着研究的深入,我想发掘这种方法的潜力,比如声音识别,图像识别,乃至凑在一起的整体功能。
但有个明显的问题是,随机生成的网络只能适用些简单的任务(就像前说的那些),越是复杂的任务,对网络的复杂度要求就越高,一个明显的问题是,遗传算法在网络规模超过一定程度时,增加几个或减少几个亦或是更改权重,连接什么的,对网络整体表现作用将会显著减小,甚至可以说没什么变化(形象点的例子,我们人大脑中多个或少个神经元会对脑整体功能有影响嘛,显然是没有的)。
这就导致这种算法对复杂任务在网络规模超过一定程度后,脑的进化将变得十分缓慢甚至完全原地踏步,最后就完全无法完成任务。
基于这一点我想的是有没有一种办法能做的让【脑结构发生整体上的某种】。
这涉及到复杂结构的生成,有没有一种办法能只修改一些局部的参数就能让整体结构发生大的变化。
这里我想的是一种像【元胞自动机】的一样的东西。
单个细胞简单的几个规则,一些零星的细胞凑在一起,随着时间的演变,就能涌现出极尽复杂的结构,另一方面,随着规则一些细小的变化,涌现出的结构就能产生很大的不同。
我在想能不能基于这种想法,配合遗传算法在规则上的演变,一点点的小变化就能引起脑结构的整体改变,架构不同的复杂网络也能由此产生,相当于是用遗传算法去探寻架构各异的脑,并选出功能最符合需求的
我想我们应当能由此进化出具有复杂网络和复杂功能的脑出来

一些感想

很多时候我在想动物是怎么从一个受精卵细胞生成如此复杂的个体的,现在来看,我觉得【元胞自动机】是最贴近其原理的东西,一个个体伴随着一些规则进行自我复制,状态改变,消亡,就能涌现出复杂的结构,感觉细胞和【元胞自动机】比起来,不过是一个规则更多,状态更多(比如细胞的分化,凋亡等等)的自动机罢了,从另一方面来看,规则就写在dna上,转录蛋白负责读取这些信息并执行,这一切,就和图灵机的行为一样,一条只带(DNA),具有特定规则的读写头(各种转录蛋白,以及一些控制转录流程的蛋白质),执行器(细胞内的其他结构)。
很多时候,通过制定一些规则,你甚至能在元胞自动机里看到一些生物体中具有的结构,比如动物斑纹,大脑中的纹状体,正是基于这些,我才思考的基于元胞自动机生成脑的可能性。

评论 (1)

Shiron 创建了任务

谢谢你写这么多,我也谈谈我个人的想法:

随机生成的网络只能适用些简单的任务?
回:这个不一定,关键是复杂的任务和简单的任务之间不能有断层,要一步步加大任务复杂度,相应地随机生成的网络也会一步步地复杂化。

增加几个或减少几个亦或是更改权重,连接什么的,对网络整体表现作用将会显著减小,甚至可以说没什么变化
回:这个和上面是同样的道理,任务难度是平滑上升的,所以网络进化也是平滑演进的。本人不相信量变形成质变,结构如果能随任务一起量变,这本身就是一种成功的现象

有没有一种办法能只修改一些局部的参数就能让整体结构发生大的变化
回:这个用现有的分裂算法,即阴阳无极八封阵就可以了,有时一个随机的变异就可能导致大分支的增加或消失。但总体上是大变异发生的机率小,小变异发生的机率大。

一个受精卵细胞生成如此复杂的个体的,现在来看,我觉得【元胞自动机】是最贴近其原理的东西,
回:原理可能类似,但我不清楚元胞自动机怎么实现实用化。阴阳无极八封阵也是类似的模仿生物分裂的算法,可能更实用一些,因为是三维的,可以用来进化出任意三维形状。

配合遗传算法在规则上的演变,一点点的小变化就能引起脑结构的整体改变,架构不同的复杂网络也能由此产生,相当于是用遗传算法去探寻架构各异的脑,并选出功能最符合需求的
回:用遗传算法去探寻架构各异的脑,这和我的想法一致,不是人为设计脑结构,而是随机变异和筛选,模仿自然进化,利用数量和算力暴力求解最佳结构。架构各异的脑,这个就没必要了,我们暂时只能用任务难度平滑演进的方式来获得唯一的结构进化,而不是用多种任务获得多种脑结构,后者是大自然的做法,但用电脑里模拟比较累,而且没必要。大自然可以进化出不同的脑结构,但我们只需要进化出一种脑结构就够了,都是脑,结构不重要,功能才重要,只要能解决问题,并可以不断进化。

很多时候,通过制定一些规则,你甚至能在元胞自动机里看到一些生物体中具有的结构,比如动物斑纹,大脑中的纹状体,正是基于这些,我才思考的基于元胞自动机生成脑的可能性。
回:是的,规则很重要,包括外部简单的筛选规则和内部复杂的结构、行为规则。我不清楚元胞自动机怎么定义规则,但想用阴阳无极八封阵来生成结构,大部分时间也是花在思考如何定义规则上。我更喜欢称规则为原料,给出原料,让机器随机去进化。现在的问题是原理怎么给,给多少,是个问题,这个自由度太高,反而一时无所适从。项目开发最困难的情形不是没有选择,而是面对的选择太多。

drinkjava2 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
920504 drinkjava2 1578935955 8839042 shiron 1616211842
Java
1
https://gitee.com/drinkjava2/frog.git
git@gitee.com:drinkjava2/frog.git
drinkjava2
frog
人工生命

搜索帮助