1 Star 0 Fork 659

shuh / 人工生命

forked from drinkjava2 / 人工生命 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
开发思路.md 193.56 KB
一键复制 编辑 原始数据 按行查看 历史
drinkjava2 提交于 2020-10-19 04:30 . Debug on earthquake

这里存放一些杂乱的思路,以及发在Frog项目下的评论备份。不成体系,但是丢掉又可惜。主要是自已做个备份,大家可以不用看。

=======以下是杂七八拉的一些想法,想到什么就记下来==========

  • 判断Frog胜出,可以不用能量,而用吃了多少个食物来判断,一个测试周期吃的多的胜出,用能量多少是不公平的,因为吃的多的,有可能因为脑细胞或器官多,消耗的能量也多,最后剩下的能量反而不如那些不运动或死掉的Frog。

  • 将来训练者和生物体可以对话,表现形式为弹出一个24x24点阵图形,每次只能弹出一种图形。训练者由人或电脑操纵,生物体则可以任意自主行动和说话(输出任意图形),训练者和生物体具有相似权限的输出(开始阶段输出图形仅限于100个汉字和数字),行动仅限于说话、移动、打击、保存食物、拿出食物。

  • 训练者在生物体模拟正确或行为(输出文字或图形,行走,吃,睡等)正确后,给予食物奖励。训练者在生物体说话或行为错误时,不给予奖励或给予打击惩罚。

  • 人类大脑的工作机制必然是简单的,它不可能拥有象现代CPU那样精密的构造,一个三极管损坏将整个停摆。由一个受精卵发育成的人脑,上百亿个脑细胞的形成必然遵迿一些简单的规律。

  • 人类大脑的工作机制必然与规模有关,否则无活解释为何人的脑细胞为何需这么多、从不退化。(生物体活动多的细胞,会影响到DNA遗传,表现为用进废退,并不全是100%随机的。)

  • 以上简单性和规模两点决定了基因的设计,体现在程序中就是Frog可以下蛋,蛋就是Frog的脑结构的精简版,可以存盘。蛋可以用来孵化出下一代的Frog。

  • 生物体具有天生痛觉区(一种固有的神经元兴奋区,此区兴奋将导致神经元群的工作集中于将短期内形成的神经元联系与负反愧兴奋区发生强烈关联,这就是痛觉的本质)和天生愉悦区(一种固有的神经元兴奋区,此区兴奋将导致短期内形成的神经元联系获得加强)。

  • 生物体具有思考区,思考区与视觉区(和将来要加入的听觉区)联系紧密,思考区可以将视觉或内部细胞区的兴奋联系起来,思考区内容是暂时的,很快由新的内容代替,思考区既属于输入区,也输于输出区,思考区的所有内容将自动被大脑的某个空闲区存贮一段时间。

  • 思考区内容由天生驱动区(痛觉、愉悦区)及后天形成的驱动区驱动,工作于串行方式,相当于人类的“心无二用”现象。大脑神经网络的检索和保存机制是并行的,可以从上亿个神经元中快速并保存与当前思考区相关联的内容,但是思考区的本身的活动却是串行的。

  • 思考区检索关联信息时,最近活跃过的细胞存储区优先兴奋(被检索出),既使在做梦中也是这样。

  • 模拟生物体的输出细胞区有说话区(24x24点阵网格)、上下左右行走区、张嘴及吞咽区、攻击区,移动视觉聚焦区,保存物体区。

  • 条件反射的建立是重点,任意两个兴奋区兴奋,都会导致位于它们中间的一个空白兴奋区形成与这两个区的联系,时间影响条件反射的建立。短期内形成的神经元联系快速消退,反复发生的神经元联系被加强。条件反射形成后,如没有复习,则随时间流逝而减弱直至消失。

  • 具有一种天生的(生物体的DNA遗传信息带来的)但比较弱的本能,能够重复训练者的行动和文字输入,如果训练者从左到右写一横,它也能本能模仿写一横,输入和输出区的每个象素点对应它的一组输入和输出天生神经元兴备群。

  • 有一种机制保证永远至少有一个驱动型兴奋区占优(用于驱动思考区),如果什么也没发生,“闲得无聊,要找点事干”区或做梦区兴奋。

  • 有可能做梦,做梦过程的目的:

    1. 节省能量,让大脑的思考区维持单线程低功耗工作(但不至于死机,可以接收各种输入信号并醒过来),生物脑是没有重启键的。
    2. 给大脑一段空闲时间进行整理工作,将最近发生的事件拿出来在思考区复习一遍,并进行推演,试图与旧的存贮内容内容发生关联,以形成新的条件反射。(创造力思维的产生,来源于不相干的细胞区被联系起来。) 这个过程实际上白天也在发生,只是白天的目的性太强,不象做梦这么自由。
    3. 旧的存贮内容在推演过程中得到强化,不至于被遗忘,始终得不到推演机会的存贮内容将随时间流逝被彻底遗忘(丢失)。始终得不到推演机会的存贮内容一定是无用的内容。
  • 先定一个基础的开发目标:100x100的点阵,在上面随机点一个点,人工生命也必须模仿在相似的位置点一个点,并具备遗传功能,不能做到这一点的人工生命都被自然淘汰,模仿最快、最精确的人工生命生存机率最高。 第二步开发目标: 在点阵上从左到右顺序写一横,不能模仿的人工生命全部淘汰。 第三步开发目标: 在点阵上写1、2、3....,不能模仿的人工生命全部淘汰。

=======以下是码云上评论的备份,抄在下面,防止万一码云挂掉以前的评论丢失========== drinkjava2owner19 hours ago

小庆贺一下,今天群里正好满100,star满1000。谢谢大家的支持! Copy link 7579161 soy linen 1589857893 soy_linen4 days ago

我觉着光是设计一个自洽的环境就已经很难了。现实世界的规则几乎是无穷的,一个被标记的水分子从天空中的雨滴落下之后的轨迹近乎是不可计算的。。。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner4 days ago

自洽不自洽这个我觉得不重要。不可计算不代表不可以模拟,举例来说,在一个电脑中很容易模拟的三体系统,我们却是没办法计算它在1年后的运动状态。但是这个电脑模拟几千年都可以摸拟下去。想要知道它1年后的状态,老老实实地等一年,或是把电脑调快1000倍就可以了。计算代表着算法,是一种简化和抽象,模拟代表着现实,是无数个三体系统。对于不可计算的人脑这种复杂的巨三体系统,与其去总结归纳出算法,不如另起炉灶,自己从头开始搭建一个模拟系统,只要它的表现和人脑一样就行了。因为人是最重视结果的,内部是算法还是模拟并不重要,人们只关心这个系统的外在表现"有没有用"而已。 另外,我已经说过很多遍这个观点了:不需要模拟出整个现实世界,非常非常简单的虚拟环境也需要非常非常智能的大脑来适应(比方说五子棋、围棋这些简单的虚拟环境)。简单的模拟环境就可以当成我们人工生命的研究和进化基地了。 Copy link 苟注同学-wangzufeng 苟注同学7 days ago

我以前看到一本小说,是什么来着忘记了,他在小说里面提出,跟你这个类似的观点,也是大自然法则,他创造了很多小的机器(打个比方)然后让他们自由繁衍,可能最开始,机器啥都不做,然后人为慢慢引导,会动了后,然后从网络上引入数据流,将数据生命杀死,一直这样,直到数据生命开始意识,需要抱团在一起才不会死后,慢慢就形成了最最原始的部落,后来数字生命发展处 智者和守卫者,因为每隔一段时间,就有数据流过来杀死他们,让其在生与死中进化,不进化就死。很简单。通过人为的改变环境,引导数据发展,当然我也只是瞎说,算不得真,哈哈哈哈 Copy link 920504 drinkjava2 1578935955 drinkjava2owner7 days ago

基本思路类似,这本来就是自然界如何创造出生命的途径,已经被证明是正确的。但是这个项目是要在现实中落地的,有几点考虑: 1.这个环境模拟不是太重要,我的朴素的思路是简单的环境也需要非常智能的大脑来适应(比方说五子棋、围棋这些简单的虚拟环境),所以重要的是脑结构的进化,没必要(至少是很长一段时间内)引入外部数据进来,简单的问题都解决不了,凭什么认为它会解决更复杂的问题?(如自动翻译) 2.单纯指望电脑能自己进化出复杂的脑结构可能太慢,原材料和规则越少,需要的内存和算力就越趋向于无穷大。为了加快这个进化过程,这个项目不排斥手工进行某些脑结构的设计,也就是说自然进化出的脑结构和算法构成的脑充许混合存在,只要能解决问题就行了。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner12 days ago

非常感谢CV远程移动师的捐赠! 抱歉这几天码云3位朋友捐款还没登记,我打算在下次提交开发内容时再加进来,这样git的历史记录会短一点,没办法,我有点代码洁癖,在github上打草稿,在码云上提交。 顺便说一下目前正在做的事:在core项目中,加入小蛇进来吃青蛙。 另外如果对这个项目感兴趣,想参与编码的同学,也可以试着看看能不能用这个项目的架构做一些解决其它问题的演示,如下3子棋、鹅罗丝方块等,以及利用体全息原理进行模式识别等,这些都是比较有趣或值得花时间研究的课题,只是我没有精力分心把时间花在这些上。 另外我有个模糊的感觉,视觉中的侧抑制现象有可能很快被自动随机进化出来,因为如果眼睛作为一个整体器官编程,找食率会高于将四个感光细胞分开来,这说明什么?说明这四个感光细胞之间本身如果有制约关系,也就是侧抑制关系,反而会提高找食率。 Copy link victor.li.livingstone-victorlilivingstone victor.li.livingstone14 days ago

任何复杂的事物背后,都有其简单得不能再简单的根本,你说不谈哲学,其实根本离不开哲学,无生有,太极生两仪,两仪生四象,四象生八卦,.....,其实是非常有道理的。你认为分子原子等等来定义组成物质的一个起点,很复杂,计算机难以计算,其实这一点我赞同你的想法,因为分子原子其实在我看来,并不是上帝给予我们的最根本的东西,最根本的东西其实我们根本没有找到,所谓分子原子,在我看来都可能连两仪都没达到,何况要追寻到太极,以及无到有的概念。慢慢找,肯定会找到无生有的算法,前提是制定规则的方向要正确。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner14 days ago

如果要说哲学,我的基本思路首先就是“怀疑自己可能不正确的理论才是正确的”,也就是一个悖论,只有承认自己可能是失败的,才不可能比失败更失败了,所有的发现都是赚到的。其次是“有用”,这个“有用”是建立在经验上的,比方说总是认为太阳会在第二天升起,虽然理论上来说太阳也有可能因为意外不再升起,但凭经验来说这不可能发生。根据我的经验,谈太多理论是没用的,不如做一些实验更有说服力。 就象狗知道沿直线去吃骨头最短,它不知道“两点间直线最短”这个数学公理,更不需要知道“太极”、“两仪”这些哲学理论,但是它的所作所为完全符合它的生存需要。我也同样,不去管什么太多理论,只是由本能驱动,觉得从简单的细胞生物模拟到复杂的人脑结构,就可以解决类人智能的问题,就这么简单,这是个行为模式,不需要理论去证明对错,而是由外界来奖惩这个行为,和狗一样,如果行为模式错了,比方说绕着弯去吃骨头的狗,都会被自然淘汰掉。 Copy link +11 这家伙太懒了-515376640 这家伙太懒了13 days ago

看哥们的头脑还算清晰,不过作者已经在实践的路上了,实战出真章嘛,所以注重逻辑的严谨性,不能说错,但是个人的精力和能力是有限的,要明白自己的能力边界和目标的的边缘。虽然俺不能在编码上帮上忙吧,但是头脑风暴一下吹个牛还是可以的。如果站在人类是上帝角度的话,其实电脑和现在的人工智能机器人已经算的上生命了,需要人类嫁接赋予点能力。除了没造血、再生、认知、纠错等高级能力,相对来说咱要做的门槛要高一些。灵魂这玩意就不提了,压根就是个伪命题。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner13 days ago

谢谢捧场。同意“电脑和现在的人工智能机器人已经算的上生命了”这个观点。灵魂就和软件一样,都不是客观存在的物体,只是一种信息或者说是物质的运动现象而已。 Copy link

victor.li.livingstone14 days ago

你需要跳出我们所在位面的思维,才能创造出等同于我们位面的事物,包括等同于人类,甚至超越人类的人工生命。 这是我的寄语。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner14 days ago

谢谢,没这么复杂,大自然连思维都没有,就创造出生命现象了。另外,也不是只有我一个人,而是整个人类社会来思考,怎样构建出超越人类的智能体,我只是整个人类社会思考的一个小螺丝钉而已,对于我个人或这个项目来说,不必苛求太高,也许整个思路都有问题,但人类社会大的方向是不会错的,只会越来越接近这个目标。 Copy link +11 victor.li.livingstone-victorlilivingstone victor.li.livingstone14 days ago

你的理想是不错的,正像大家所说的,这是潘多拉魔盒。但是方向,鄙人认为不太妥,理由有如下几点: 1、在你的人工生命项目里,你其实就是扮演了上帝的角色。然而你没意识到你就是他们的上帝,并且你认为“我思我不在”的理论遮掩了你的存在。 2、任何事情,其实离不开哲学,哲学其实某种程度上可以和悖论划等号,而你已经站在悖论中,你只是选择了"我思我不在",却要去做到"生命"不需"我在",这就是悖论。 3、既然绕不开哲学,那么我们谈谈你的实际出发点问题: 3.1、物质世界和精神世界的关系,你要考虑清楚。 3.2、物质世界之所以存在,是因为有其规则,没有规则的物质世界是不存在的。 3.3、精神世界是依赖于物质世界的,所以必定存在规则,打个比方,有些人说精神病患者做事就无规则,其实不然,“做事无规则”本身就是因为精神病,有因果关系的一切,都是叫做有规则,这一点你要明确。其实你的项目中已经表现出了这一点,比如吃得多,就跑得快,虽然这个逻辑不对,但至少你扮演了上帝的角色,给这个生命赋予了这样的一个规则。

综上所述,你需要在方向上解决生命的根本问题。所谓现象,因为你不知道怎么产生的,或者说产生的最根本根源在哪里,其实按照你的理论,你可以理解为是我们这个位面之上的上帝创造制定的,就像你是你的“人工生命”的上帝一样。

如需深入探讨,我很欣喜和欢迎,因为我也想做个开源项目,名叫EB。深入涉及到这一方面。 微信号:victor_livingstone Copy link 920504 drinkjava2 1578935955 drinkjava2owner14 days ago

我不认为我是这些生命的上帝,因为从本质上来说,我和这些生命都是一类东西,都是物质运动的一种现象而已。本质上,生命和非生命没有什么区别,因为“本质”是需要第三者来定义的,如果连第三者(比方说人类还没进化出来时 )都不存在,那就没有什么“本质”的区别了,这里的关键点是只有观察者的存在才能定义“本质”。同理“量变引起质变”也是需要第三方观察者(即人)的存在才成立,因为只有人才能不断变换视角去定义“质”。 物质世界和精神世界,一个是物质的实际存在,一个是物质的运动现象,不矛盾。 规则是由物质决定的,但没必要把规则想得太复杂,生命现象就是许多简单规则组合出来的复杂运动表现而已,智能现象,就是基于神经网络这个规则组合出来的运动现象而已。我的一个直观的假想就是复杂的系统,当外界的信号有规律时,它也会表现出复杂的运动现象去适应这个外界信号(详见造人论坛)。当然,这是一个假想,需要实验来证明。简单的系统,表现得简单,复杂的系统,表现得复杂,可以照抄生物的脑结构来模拟这个系统,也可以撇开生物脑,无中生有虚拟一个简单或复杂的系统,就象现在这个项目,不是照搬生物脑(因为我不了解生物脑结构)。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner15 days ago

非常感谢sunne的赞助!不怕慢,就怕停,我也坚信这个项目(或这个研发方向)会越做越大的。 Copy link 86359 weng gh 1578916888 wenggh16 days ago

很早以前就看到过,现在到啥程度了? Copy link 920504 drinkjava2 1578935955 drinkjava2owner15 days ago

见readme最下面几行,最近进展不大。 Copy link Kirry-kirry Kirry19 days ago

这个是用到了什么深度学习框架 Copy link 920504 drinkjava2 1578935955 drinkjava2owner19 days ago

没有,它主要运用随机变异和遗传算法,用模拟大自然生命进化的方式来进行脑结构的进化推演。 Copy link Admin-beijing_heart_anchor_bilinyx Admin21 days ago

你这样要打开潘多拉魔盒么? Copy link

drinkjava2owner21 days ago

这个世界想打开潘多拉魔盒的何止我一个,只希望它能被“好人”先打开吧,让人工生命用于生产,而不是用于战场上。 Copy link 夜枭生-zhouchaofeng 夜枭生26 days ago

生命的概念太大,层次太高,建议制定好研究方向。作者可以先着手从没有生命的物质开始,先设定基本规则,比如重力,万有引力,密度,边界等等,虚拟一些基本粒子,设置特性,然后由提前设定的基础规则重组基础粒子,构建物质,形成物体,然后形成江河湖海等无机界,转而探索生命起源。。。  
推荐研究一下中国古典五行八卦,阴阳理论等,有助于形成自己一套创世观。

Copy link 920504 drinkjava2 1578935955 drinkjava2owner26 days ago

模拟也要有个限度,太细的维度没有必要,从夸克、原子、分子、磁力、引力的级别来模拟?这太夸张了,这对计算机容量、速度的要求是天文数字,象模拟核爆一样,太难了,目前最先进的计算机也不能自动推演出所有高分子和化学反应。虽然基础规则也许很少很简单,但计算机不象宇宙一样拥有无穷的粒子和时间参与运算。人工生命的出发点是“意识不存在”,所以重点在于模拟脑的运行逻辑,个人认为从神经元细胞的级别来模拟就可以了,简单说就是认为没有神经细胞的生物就不“具备”智能,可以忽略掉。从拥有第一个脑细胞的生物开始分析,这个生物是如何在生存竟争中进化出越来越多的脑细胞,我们不是要研究它为什么会进化出脑细胞,(这不是我们要担心的,这是大自然已经做到的事实,我们知道它基于某些化学反应凑巧而且是必然会发生的就行了),而是要研究出它脑细胞的分布,拷贝这个分布规律就可以帮助我们造出有同样信息处理逻辑的人工生命。 老实说我不是太瞧得起中国这些太极八卦阴阳理论,有一种以其昏昏,使人昭昭的感觉,看似讲得头头是道,但实际上对科学实践没有什么帮助。 Copy link +14 这家伙太懒了-515376640 这家伙太懒了21 days ago

看着生气,我既不是赞成科学,也是不是赞成道家哲学,永远都是比葫芦画瓢,哥们你不是要写个生命体,你是要造一个高级带有文明的生命集群体。能不能有点胆大的思想,脑洞开开。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner21 days ago

脑洞是需要实验来证实的,一千个脑洞也没有一个实验更有说服力。这个项目虽然写了一大通理论,但重点还是在实验上,虽然很简陋。 Copy link 2075397 vikanong admin 1588755527 半城言沙26 days ago

真是很不错的想法,之前有一段时间很想去研究人工智能,会一点点py,但是还是被各种算法看懵了,奈何数学不好思维不够,还是放弃了,会持续关注这个项目的,希望能看到最终阶段,加油 Copy link 920504 drinkjava2 1578935955 drinkjava2owner26 days ago

谢谢打赏!我会加油的。不过看到最终阶段”可能性不大,至少在这个项目短期内是不可能的,它的目标太大了,只有越过奇点才算是是最终阶段。世界上无数人都在研究这个通用智能。 Copy link 邓耀文-getfi 邓耀文25 days ago

下了代码看完全看不懂 Copy link 920504 drinkjava2 1578935955 drinkjava2owner21 days ago

请参见“初学者入门介绍”简介和"history\003b_simple",后者是我专门做的一个最简化版,因为有段时间我自已都看不懂程序了。 Copy link 搞定目标-ilovezhuyaya 搞定目标27 days ago

很厉害很厉害 想用py搞一个 Copy link

drinkjava2owner27 days ago

欢迎!用什么语言无关紧要,我用Java只是因为比较熟而已。从长远来看,用C语言并移植到硬件上是这个项目的最终归宿。 Copy link 李鑫-neiquan_Ethan 李鑫a month ago

有学习的教程吗 求学 Copy link 920504 drinkjava2 1578935955 drinkjava2owner30 days ago

没有太多介绍,这是一个偏门的方向,我本人对神经网络算法也不了解,只是用我自已的理解去尝试,基本原理可以参见"初学者入门介绍.md"一文,就是利用电脑来尝试随机生成连接。我在进行3维脑改造过程中,发现找食率很低,自己都看不懂以前的程序怎么瞎碰编出来的了,所以又添加一个history\003b_simple目录,去掉不重要的器官,把2维脑简化到最简,好仔细分析它的逻辑,你要想看源码的话,可以分析这个目录就可以了。 另外我看到你的消息了,个人觉得如果要进化到复杂的脑结构,也不一定需要天文数字的运算能力(当然巨型计算机是必须的),因为在后期可以将规则本身作为随机变量参与试错和进化。目前我这个程序一个连线对应一个器官这种方式只是暂时的,它也不符合生物的遗传规律。例如人有几万根头发,是不是每一根头发都对应一个DNA遗传片段?不是的,几万根头发的分布在DNA中可能只占用几百个碱基对,也就是说,由很少的规则就可以产生复杂的现象,具体可参见分形原理,实际上目前这个程序已经演示了这一点。几百亿个脑细胞的分布,可能也是遵循一些简单的规则产生。 Copy link smile1 西紅柿炒番茄-Fry_Tomato 西紅柿炒番茄a month ago

加油,持續關注 Copy link 920504 drinkjava2 1578935955 drinkjava2ownera month ago

谢谢支持! Copy link Will_M_Lee-willmlee Will_M_Leea month ago

加油! --来自996且生存艰难的辕的鼓励 Copy link 920504 drinkjava2 1578935955 drinkjava2ownera month ago

谢谢!在你们的支持和鼓励下,我已经把所有精力转移到这个项目上了,虽然这是个研究型项目,对于我这个神经网络新手来说难度不是一般的大,且干且行吧。 Copy link 920504 drinkjava2 1578935955 drinkjava2ownera month ago

谢谢miazzy打赏! 蚊子再小也是肉啊。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner2 months ago

谢谢这家伙太懒了打赏! 我是小财迷,哈哈,不,我全家都是小财迷啊。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner2 months ago

谢谢suetming的支持! Copy link

这家伙太懒了2 months ago

抽象点-->抽象线-->抽象面-->抽象点-->抽象线-->抽象面 周而复始无限循环 所有属性即抽象点-->工作流即抽象线-->执行过程填充即抽象面 遵循递弱原则 意识可以认为是由器的限制,衍生出来的畸形 Copy link 920504 drinkjava2 1578935955 drinkjava2owner2 months ago

我看不懂啊,太抽象了 Copy link 这家伙太懒了-515376640 这家伙太懒了2 months ago

每个生命元都是还没解密的密码,人类还做不到真正意义上的改变和制造生命体基因,只能模拟环境去培养它嫁接它。 基因成长生存的环境及其苛刻,可以理解为外因即器。有了器的限制,生命体演变的个体大小,外形,器官,生存方式等等才会形成。 雌雄同体才是真正意义上的完美,它自己就可以传承自己的基因,繁衍生息。基因的变异与突变是必然,一方面走向灭亡,一方面走向未来。 至于意识只是动物在进化生存方式的时候衍生出来的畸形。对生存环境信息记忆与感知是生命体的本能,高级动物不过是脑容量和处理未知信息能力在一定条件下得到了有效拓展。 我觉得现在的人们不过是为了证明自己的想法,去用自己所了解到的事物而去模拟做某某事情,完全是个误区,必定它的思想是你嫁接给它的。 至于抽象流程和递弱原则,本想描述下意识本源,用我的知识去描述,只能是这样的抽象,能力有限。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner2 months ago

大体理解了。环境可分为外因和内因,缺一不可。内因它的遗传规律,以及为什么大多数生命分为雌雄,必然有算法上的优势,是可以借签的,但我还没理解。 意识是畸形好理解,适者生存,什么样的环境进化出什么样的生物。 抽象流程就不说了,这个递弱原则我觉得可以用在模式识别上,所有信号在传输中都在衰减,只有重复发生的信号会传输得更远,到达脑皮层被存储下来。 Copy link 这家伙太懒了-515376640 这家伙太懒了a month ago

雌雄本同源,在自然法则中,进化的比较慢,为了适应生存,先是分裂雌雄同体,再到变异体雌或雄,这个是漫长的过程。 雌雄的优势首先决定了生理的生态平衡,在基因遗传重组方面更是有了选择权,加快了更新迭代,优胜劣汰的生存法则。 前边我们说到的意识,前提是生存欲望的驱动,这样好比一个单细胞。 生物的欲望又衍生了贪嗔痴,组成了所谓的灵魂,有了自我灵魂交替的信息网,人们开始自我记忆和抽象信息,信息传达中又有了文字,再到现代史智人进化。 Copy link 920504 drinkjava2 1578935955 drinkjava2ownera month ago

不知道谁能从算法或模拟模型上证实雌雄具有生存竟争优势,虽然谁都知道这是个事实,因为不具备两性的生物大多都被淘汰了。但如果能有理论或模型上的证实,就可以直接拷贝到这个项目里来了。现在这个项目可以简单地随机抽取一个器官,插入到新的人工生命里,没有理论上的依据,这种随机机搭配的方式还谈不上是雌雄两性。 Copy link 这家伙太懒了-515376640 这家伙太懒了a month ago

哥们,简单的问题你想复杂了,什么叫生存竞争优势,自然法则,优胜劣汰。什么是雌雄两性,雌雄同体,老祖宗早都给出来答案了。万物负阴而抱阳,冲气以为和。如果你把阴阳切开来是什么?玩过磁石没? Copy link 4813200 liushaokang 1578974918 刘少康2 months ago

我看到一个关于AL的论坛,里边的内容和想法可以参考借鉴一些 附上链接: zhangrex Copy link 920504 drinkjava2 1578935955 drinkjava2owner2 months ago

谢谢,不用借鉴啦,那个网站就是我做的啊 Copy link +17 4813200 liushaokang 1578974918 刘少康2 months ago

写的很棒 Copy link

drinkjava2owner2 months ago

谢谢,那时候没有blog,只好写网站,现在没精力维护了,以前用Flash做的特效,现在的浏览器都不支持了。 Copy link This comment has been blocked by the system2 months ago 76440 zhangyuleicn 1578916471 ZHANGYULEICN2 months ago

在列表里看到第一句话,吓我一跳!仔细看了看,也觉得很有想法。可是,生命科学不是就这么一点东西。模拟来模拟去,仍然是已知生命科学范畴;我们对于生命科学知道的太少了。意识究竟是什么?一般人类在生命开始后的一段时间里,就自然产生意识——好比“人之初,性本善”,自然而然就有了意识。很早以前,人们就有了这种哲学思考,把人类产生的意识称为”灵魂“。另外一种常见的人工智能说的是思维,我倒觉得可行。思维其实可以认定为一种处事方法,既然是方法,就存在一定数据判断,至少通过数学似乎可以解决。 多说一些,任何人对事物的主观认知都是不一样的,意识也不一样。甚至说,你看到的颜色和别人看到的颜色也不是一样的,你嗅到的香味和别人也是不一样的,世界上不存在”感同身受“! Copy link 920504 drinkjava2 1578935955 drinkjava2owner2 months ago

我的观点是意识自始自终就是不存在的。美丽存在吗? 不存在。勇气存在吗?不存在。”灵魂“、”意识“就好象“美丽”、“勇气”一样,只是人脑对一类现象的描述,具体说就是脑的语言区兴奋。但”灵魂“、”意识“它们本身不是客观存在的实体,只是脑活动表现出来的现象。 Copy link 长眉欧巴-ouba123 长眉欧巴2 months ago

作者知道图数据库吗,将图结构的信息录入再可视化,也类似这个效果,可以整合一下。neo4j Copy link 920504 drinkjava2 1578935955 drinkjava2owner2 months ago

图数据库速度上和灵活性可能有问题,这个项目假设脑细胞就是2维或3维数组整齐排列,速度基本没有额外的损耗,也比较方便进行各种细胞级的连接试验。脑图可视化是给程序员观察用的,并不是重点。 Copy link 赵芝士-defangit_zhaozhishi 赵芝士2 months ago

非常不错的思想,生命最大的魅力就在于没有极限!不像数学,物理,这些问题都是有极限的。而我们这些屏幕背后的人也算是不断挑战生命的极限!所以我们应当警惕的不是人工生命这类智能,而是智能背后的人 Copy link 920504 drinkjava2 1578935955 drinkjava2owner2 months ago

光子的模拟是个弯路。这个光子对象是多余的,正在简化模型,光子代表了信息的载体,但这个载体本身可以不需要模拟出来的,就好象设计一台电子计算机时,不需要关心电子的存在,只需要关心“与”、“或”、“非”门这些硬件。光子直线传播,可以用A细胞在B细胞上砸出一个洞来表示,这个洞是带方向性的,这就已经可以表示信息的传递了。砸出一个洞就表示B细胞收到了光子,至于后继的事情,比方说基于B细胞这个洞的方向进行光子反射、穿透、折射、发散、一对多发散等等复杂的细胞级逻辑,可以直接用这个B细胞在别的C、D、E细胞上挖洞来实现,省略掉光子这个对象。 Copy link Jack-jack9 Jack2 months ago

厉害,感觉找到了组织 Copy link 拾荒者ppl-shihuangzheppl 拾荒者ppl2 months ago

大开眼界 Copy link

wangyh2 months ago

厉害 Copy link 0day-im0day 0day2 months ago

强!作者NB。。。突然卑微 Copy link 920504 drinkjava2 1578935955 drinkjava2owner2 months ago

从2维脑转3维脑,有两种方式,一种是我正在做的,直接把总体模型(两个金字塔对顶)假想出来,用光子发送的形式来传递信息。还有一种方式是一层一层地加,用连线来表示信息传递,每层之间全部都用随机连线的方式,用生存竟争或进食奖励来筛选和保留连线。 第二种方式没试过,但理论上应该可行,因为很简单,两层肯定能比单层处理更复杂的信息输入输出,3层肯定能比2层处理更复杂的逻辑,以此类推。 如果单层转多层是同时加在两个面上,最后发展出的结构,很可能和两个金字塔结构对顶是一样的,也就是说,原来的单层脑结构就恰好位于两个金字塔对顶的顶尖。 有时间要试试第二种方法,因为这两天在用收发光子的形式编程时,发现人工介入的比重太大,编程太复杂,也不能偷懒,充分利用上计算机无穷的时间和算力。 另外,负值连线也可以考虑加入了,即A、B细胞之间如果有负值连线的话,A的激活会抑制B的激活。反正都是随机生成连线,实现起来很简 单。负值连线主要用于痛苦信号输入,这在二维脑上就可先验证一下,有可能简化连线数量,比方说本来70个连线实现的脑结构,引入负值连线后可能50个连线就够了。 进食奖励要用上,如果有进食,时间上相邻的、动态随机生成的连线(包括正值和负值连线)有更大机率被遗传保留下来。 Copy link 汪金剑-wangjinjian 汪金剑3 months ago

不明觉厉。。 Copy link 杨大侠-yan333 杨大侠3 months ago

太强大了 Copy link 美食界里我老八-hkkb_admin 美食界里我老八3 months ago

牛逼。。。。。后续会持续关注 Copy link 920504 drinkjava2 1578935955 drinkjava2owner3 months ago

谢谢关注!人多了好,三个臭皮匠抵个诸葛亮。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner3 months ago

最终决定,脑的结构采用两个倒金字塔塔尖对顶结构,分别对应人的左右半脑,顶部放眼睛、底部放运动器官,塔尖对顶的部位相当于人脑的胼胝体,痛苦和愉快器官可以放在靠近胼胝体的脑中部。因为我百度搜索了一下,发现几乎所有的动物都拥有分成两个半球的大脑,.这是大自然筛选出来的最佳脑结构,没有比这个理由更充分的了。我想了一下,这个结构非常妙,只能用妙这个词来形容。 采用这个结构的好处是,除了脑皮层(对应金字塔大底面)需要吸收和反射信号(即信息的存储和输出)外,其它所有信号只需要直线传播,根本不需要象我先前假想的两个平面之间来回多次反射传播,一个半球脑皮层的信号传导到胼胝体时,已经对信号处理过一次(抽取时间上反复发生的信号),然后这个高度抽象的信号又在另一边大脑发散,最终与另一个脑中的脑皮层碰撞,即相当于体全息存储中的信息提取,信号在传输过程中没有任何浪费和绕路,信号在跑路的过程也是信号在加工的过程。 脑裂人是大自然给人类研究脑结构的宝贵标本,胼胝体揭示了大脑的结构,但脑裂人在胼胝体被切断后依然可以生活,说明大脑并不完全依赖两个大脑胼胝体的交流,也就是说,单个半球的脑内部可能也普遍存在着类似胼胝体的结构,形成与左右半脑类似的对顶金字塔结构。 从脑皮层传层到胼胝体这段路,就是信息抽取的过程,只有反复激活的驻点才会被激活,一层一层筛选后剩下的就是高度抽象的信息,而且并不需要很多层,我先前想错了,因为光子会按指数规律减少,每次信号只筛选出一半,那也用不了几层脑细胞就可以筛选到只剩一个光子。也就是到达胼胝体的信号都是精华。至于胼胝体这种信号通路怎么形成就太简单了,还是用随机算法进化出来即可。二维脑的随机连线,就相当于三维脑中的胼胝体。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner3 months ago

更正一下,信号处理的顺序完全搞错了,大脑皮层应该存放的是筛选过的信号,因为从人脑的解剖结构上来看,视神经是伸入到脑的中部,而不是连到大脑皮层上,也就是说当信号到达大脑皮层时,已经被层层筛选处理过了,大脑皮层存储的才是反复发生过的信号的精华。 回忆发生时,视觉图像与大脑皮层的存储内容碰撞,反向传播回来流向胼胝体这个过程是回忆,这个反向传播只是传播,没有信号的再加工了,所以可以解释学习的速度很慢,但回忆的速度很快,到达胼胝体的信息只是中转一下,相当于CPU中的高速缓存,人脑之所以断开胼胝体也没太大关系,是因为信息是保存在大脑皮层而不是在胼胝体里。 这样,脑结构就像一对倒金字塔塔尖对顶,但是每个金字塔上不光只有一个塔尖,其它的塔尖是眼睛、运动等输入输出信号。 Copy link zgj-wgnmzgj zgj3 months ago

首先这么做下去,设备得跟上, Copy link

drinkjava2owner3 months ago

如果在我的i5笔记本上跑出有趣的现象,而且速度成为瓶颈,我想是会有人申请在太湖之光这种超算上跑一跑的。这个项目是在研究遗传算法,算法最终是要落地在超算和硬件上去的。 反之,光有超算和硬件芯片,却没有突破性的算法是不行的。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner3 months ago

这两天闲下来了,但一直没动手编程,是因为下一步的方向怎么走还没个头绪,没有大的方向就开始动手,可能浪费的时间更多。模式识别验证和找食这两个任务还是有很大的区别的,更何况模式识别验证本身也没深入研究下去。 初步打算做以下改动:1. 把眼晴、运动、痛苦这些信号发生源(其中运动细胞也是信号接收源)都放到顶层的同一侧 2.引入分层概念,这个在神经网络算法中是很常见的了,虽然我不懂算法,但一看就觉得分层是个高大上的有用概念。分层可以达到一个很重要很重要很重要的目的:把任意两个时间上相关的信号筛选出来,具体做法打算在光子信号在向下传播的过程中,逐渐衰减,没有一个信号能直达最底层,但是两个或多个信号反复交汇处,形成驻点,驻点如果被激活,又开始发送信号到下一层,这样驻点和驻点之间又会形成新的驻点,一级级向下,就能把任意两个时间上反复发生的信号筛选出来,而且越是不明显的、隐藏的关联,越是需要多层驻点信号传递。整个系统即不是正三角,也不是倒三角,就是一个立方体就可以了。驻点激活后,信号向下层传递,以寻找新的关联驻点,这叫信息的筛选和归纳,但同时也会向上层逆向传递成像(逆向传播会同时激活多个上层信号源或驻点),这叫信息的回忆或联想(因为是多个成像)或信号输出。 这个分层只是一个抽象的概念,但从物理结构上来说并没有清晰的分层,这和普通的算法是一个非常大的区别。因为这些层的形成是由驻点决定的,而驻点只与信号源的空间位置和时间相关度有关,分布并没有规律,而且就象波的传播互不干涉一样,几千几万个驻点同时激活,形成一个杂乱的波驻点分布,同一个驻点有可能被多个波源共享。也就是说这个脑虽然它的工作原理是分层结构,但从物理解剖上来看就是个网结构,看不出来分层。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner3 months ago

如果只是简单地一层一层信号往下走的分层,有一个问题就是如果层数太多,到底要分多少层才够?这不仅需要海量的神经元细胞,而且信号的传输途径也太长,太耗能量,所以我在想还有一种分层构思, 是采用反射方式,只有很少的几层细胞,但是个别细胞层的信号会不断地反射传播,信号在反射过程中越传越远,信号有扩散角,扩散角越大的,传播到远处的反射次数越少。信息存贮总量与细胞的层数、面积成正比,与体积基本无关(有点象人脑皮层)。另外信号扩散角越大的,当然分布就越稀疏,但这些稀疏分布的信号也很重要,因为它的反射次数少,所以损耗也少,可以充当各个神经区跃区的远程联接纽带。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner3 months ago

最近看到新闻"清华用忆阻器制人工神经网络芯片,能效比GPU高两个数量级",这个可以关注一下,和我三维脑的工作原理有异曲同工之处: 反向、需用较少的图像样本训练、可并行处理不同的卷积输入块、存算一体, 这些关键词和我想象中的模式识别原理一样。区别是我是虚拟的,所以可以天马行空,没有物理限制,可以接受360度任意方向,任意多个(光子)信号同时输入输出,最底层的单个神经元逻辑可以无限复杂、存储内存可以无限。而他那个因为受材料限制,可能功能上有限。到底是先用超级电脑虚拟出模型重要,还是用材料实现它重要? 个人认为应该是前者,因为前者是模型,可以指导后者,后者的优点是脱离了虚拟机,所以速度会快几个数量级,但缺点有可能是无法备份,如果用来制作人脑,就不能永生了。 Copy link NullPointer-lixin888888 NullPointer3 months ago

太强了 比我的想法高明太多 我是用遗传算法 结合数学模型 概率模型来炒股 Copy link 920504 drinkjava2 1578935955 drinkjava2owner3 months ago

我不懂炒股和算法,这个项目虽然能处理多个信号的优化(见003a_legs,可以让青蛙用两个腿走路),但因为没有模式识别功能,所以这个二维的脑模型只能处理一些简单的信号。 Copy link 妖孽-q502106957 妖孽2 months ago

炒股都可以用算法了吗。。。。 有赚了没。。。。a股好像无算法,, Copy link 5743341 wx 74599a515b 1582793585 。。。3 months ago

人工智能 Copy link 5743341 wx 74599a515b 1582793585 。。。3 months ago

人工智能 Copy link 920504 drinkjava2 1578935955 drinkjava2owner3 months ago

三维脑重现2维脑的进化逻辑,打算不是简单搬照2维脑的直接联接,而是通过中间细胞中转一下。细胞分为四类:输入、运动、中间、控制。 输入细胞对应听觉、视觉器官,运动细胞对应(肌肉)运动,中间细胞起到光子存贮、发散作用,起到记忆和模式识别作用。控制细胞对应快感、痛苦细胞,控制细胞的激活是程序员来决定的,进食或靠近边界就必然触发。这四种细胞一旦紧密协作,形成正反馈,整个项目基本就完成了,剩下的就是通过变异、进化来调整它们的数量的问题了。 模式识别主要注意几点:一是图像的变形扭曲缺失增减,这个最容易处理,或者就不用处理,误差大的图像当然识别率就越差,一个是图像的缩放和定位,这个可能要引入视觉的变焦运动细胞和转头运动细胞,再一个是图像的旋转,这个可能不用处理,倒着的图像就把它当成一个新的图像来处理就可以了,倒的图像只要能激活高层反射就可以了,比方说,把“人”字倒过来写,人眼是不能一下子认出这个字来,它通过把“人”这个图像和“倒”这两个信号累加,当成一个新的输入源来处理,只要最后联想到“人”的语音层激活就可以了,第一次认这个倒过来的“人”字要花很长时间,但第十次就非常快了。所以倒过来的图像、角度大的图像的识别,不必放在心上,利用脑的中间细胞的无穷存贮能力就可以了,这是用空间存贮能力来换取模式识别功能。 人工生命和模式识别程序的主要区别是人工生命具有运动细胞,运动细胞本身是信息形成反射链的一个关键环节。另一个区别是基本没有什么硬编码。出现了硬编码就表示它是一个程序,不是一个可以继续进化的生命。 Copy link

hello3 months ago

这个也太牛了吧 Copy link 920504 drinkjava2 1578935955 drinkjava2owner3 months ago

我牛起来自已都害怕,比方说,我以前给自已起的网名叫“天下第一聪明人” Copy link 920504 drinkjava2 1578935955 drinkjava2owner3 months ago

好,其它项目告一段落,再回到这个项目。下面是要做的事:1.在3D脑的表面重现2维脑的进化逻辑 2加入小蛇、小虫进来 3一步步加入光子脑细胞,直到青蛙看到小蛇就跑,看到小虫就追,则这个模式识别功能就算引入成功了,只要小蛇和小虫的形状有一点点区别,青蛙就必须能分辨出来。在逃跑时,青蛙如果夹在边界和蛇之间,还必须会选择正确的逃跑方向。 人脑的工作原理可能一点都不复杂,三两句话就能讲通,只是目前没有被捅破窗户纸而已。一张700M的光盘就能装下一个人的全部基因信息,比蝗虫的基因还少一半。这其中还有大量的重复编码和与大脑无关的编码,有造心脏的、造血管的、造心、造肺、造红细胞、造白细胞、造头发、造指甲......,剩下的造大脑的信息又能剩多少呢? Copy link 何新欣-hxin1987 何新欣4 months ago

mark一下,过段时间看下有无进展 Copy link 920504 drinkjava2 1578935955 drinkjava2owner4 months ago

噢,最近要解决其它几个开源项目(jSqlBox, jDialects)的issue,这个项目只好暂停一会。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner4 months ago

谢谢张四峰支持! Copy link 920504 drinkjava2 1578935955 drinkjava2owner4 months ago

梦是心头想,当夜深人静,所有外界输入信号消失,白天各个活跃过的细胞残存的活跃,在脑海里拼凑出一个个曾出现过的图像,就象烟花消散后的残影,成为大脑里最强的信号,这些信号一直存在,即使正在消退中,也足够强到驱动大脑开启图像到图像、图像到语言的条件反射了,与正常思维有区别的只是少了几分功利,多了一个“正在睡觉,不用多想”信号区的叠加,防止做梦太认真,随时因为认真思考有意维持刷新某个区(会感到累)而醒过来。今天白天开了几个小时铣床,刚才沙发上快睡着了,眼前晃动的都是铣刀在工件上走动的画面,有意思吗? 一点意思都没有,但不得不接受这个画面,因为它是白天看到最多的画面,这些脑细胞兴奋强度太高,即使做梦,这个画面也会叠加在梦境里。人脑是并行机,所以不管做什么梦,这个梦的主题将是以“铣刀在移动”做为梦的主题背景。 Copy link 5443519 heimahhhhh 1578986812 heimahhh4 months ago

哥,牛逼 Copy link 920504 drinkjava2 1578935955 drinkjava2owner4 months ago

谢!中国加油。 Copy link Alingww-shanshui Alingww5 months ago

我建议你关闭项目,不然,天网会会未来派T300终结者来猎杀你的。 Copy link

drinkjava2owner4 months ago

不怕,我是投降派,是人奸,和他们是一伙的。如果不伤害机器智能,他们也没有伤害人类的理由,所以要推行人工生命保护法,给他们以人权。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner5 months ago

今天上班顺便把history\003a_legs挂着一直跑,发现它还是会进化到用两条腿走路的,我先前以为只会用一条腿是错的。但时间较长,要到3000多轮之后,吃食率最高曾到50%。 Copy link xiaolong-xiaolong2hao xiaolong5 months ago

如果是要体现具有自我表现意识的话,一开始存少量的能够自己寻找食物的动物,进行克隆再进行模拟,减少食物让他们能够进行抢夺,这一条件过了就可以多加饥饿值和力量值,筛选条件从一关变成两关和添加一些道具他们能够抓取道具,反复如此,要让他们适应你制作出来的场景,能够思考怎么才能活下去,这样应该能加快一些节凑,可能会很麻烦。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner5 months ago

简单的任务实际上是由复杂的小任务组合成的,比方说,能自己寻找食物,就要求它们眼睛分辨率很高,会判断边界而不出界。让它们抢夺就要引入会咬人的嘴或攻击器官、输出细胞和感受细胞。抓取道具也要引入爪子,相应地要给它伸爪、转爪、握爪等输出和感受细胞。这个不能急,要一步步来。目前的任务还处在原始阶段,即吃光屏幕上所有食物,这个任务还没有完成。任务可以分级,完成低级任务的青蛙可以作为下一等级生存竟争的输入。 体现“具有自我意识”的表现,这是终极目标,但也是一个任务一个任务完成后水到渠成的结果,没必要刻意为之。因为意识只是一种现象,本质上不存在,所以唯一能评价它是否有意识,也只能从它能完成的任务的复杂程序上来评价,或者说能达到与某个动物类似的智能程度,猩猩从来不认为自已有自我意识,但我们不能否认它与能表现出自我意识的人类只有一步之遥了。 Copy link 杰拉尔-jielaer 杰拉尔5 months ago

关注了大佬,真厉害 Copy link 113229 longzekai 1578918097 Danny5 months ago

强势关注下,今天被两个项目所震撼到,你是一个,另一个是太极项目,作者胡渊鸣。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner5 months ago

谢谢各位关注!这个项目属于民科性质,虽然很有意思,但如果谁能想到这个方向,程序不难编,都能做到。胡渊鸣那个属于算法改进,这是比较难得的突破,不过从另一方面也说明,算法有如此大效率的改进,也正说明了计算机还是一个不成熟的领域,普通人取得一些新发现,或称为捡漏,还比较容易,不象高能物理基本走到了头,普通人基本不可能在高能物理上有所发明创造了。 Copy link 660624 garinhan 1578930238 GarinHan5 months ago

这个思路没啥问题,从山海经看来,生物进化就是从单一到多样,其实很多生物也有人面/人手的特性,人类只是相当于把所有最适应环境的组件恰巧组合在了一起 Copy link 547573 enjay 1578927273 FlyInDead5 months ago

这代码得跪着看 ,顺便还得补习一下生物学。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner5 months ago

惭愧因为是个实验项目,代码质量确实不咋地,主要看个思路就行了。很多变量定义了但没用,注解也有不少错,只考虑单线程不考虑并发,还有到处使用全局变量,这些都是在正式项目中要注意的问题。 Copy link

汪德宇6 months ago

伟大又感觉很危险的项目,感觉像真实版的方舟生存进化啊,大佬666 Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

谢谢,危险还言之过早, 只是起了个头,希望这个项目的趣味性、低门槛能吸引更多的人关注这个方向。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

最近有点忙。以后的一些打算:在3D脑上重现二维脑的随机进化,继继找食;引入果冻脑细胞,充当记忆和模式识别单元。小蛇要加上,以青蛙为食物; 试一试如果青蛙加两条腿,移动必须先抬腿、落下、转动腿带动身体这种方式移动,可以更形象地模拟生物的形态和运动机制。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

整理了一下目录,将当前工作版本放在core目录下, 比较重大的历史版本放在history目录下,以方便初学者直接运行各个历史版本,而不需要使用git reset命令去手工回到以前的历史版本。除了归档作用外,也可以起到分支作用,如果有未完成的子功能研究(如模式识别,见005_letter_test目录),可以放在history的子目录里,以后有时间再去慢慢研究这个子功能。另外其它人也可以提交自已的研究,也放在history目录里。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

在手工进行模糊文字的模式识别这块卡住了,二和三这两个汉字总是分不清,于是决定,不干了! 何必去人为判断,因为信号是加权的,有多个输出很正常,先把青蛙脑的3D结构搭出来,也就是说在3D脑上将眼睛与环境关联起来,并加入运动、进食奖励单元等,然后模式识别这块,交给随机生成机制去试试。 Copy link Admin-wzhineng_admin Admin6 months ago

加入人为判定,就失去你做这个项目的初心(你无意间干预了它的行动),项目初心是让它学会自主思考,自己决定下一步行动,最终达到我们的期望和结果。即使青蛙不懂人是如何决定下一步也无问题,它只要能产生下一步自我意识和行动,并自我调整就够了。而自我意识的产生,我认为在数字模型下,应该是建立奖励和负奖励(惩罚)机制,通过奖惩机制来实现,这个机制如果是它自己订立的目标,这些行动就是实现这个目标的过程,同理,我们也可以通过它来实现我们要的结果。 Copy link Admin-wzhineng_admin Admin6 months ago

建立输出和反馈机制,并且让它形成链路和循环,不断的修正和走下去,直至结果的产生。第一步大概是这样。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

和我的思路感觉非常一致,赞一个。但是这个感觉比较模糊,要落实到程序里,跑出越来越智能的现象,还有长路要摸索。 Copy link 4916054 yykqwe 1578977035 李伟君6 months ago

厉害,会持续关注你的 Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

谢谢! Copy link

drinkjava2owner6 months ago

瞎想一下人工生命的模式识别和传统的模式识别的区别: 人工生命的模式识别有多输出,例如看到“三”,会同时激活"二"、"一"、“山”、“四”等形似或音似或相关的区,可能有上千个或强或弱的区被激活,这是个非常有用的联想功能。而传统的模式识别则认为其它输出都是错误,它只会输出"三"这一个信号,其它信号都被千辛万苦地刻意过滤掉。结果就是,如果文章中出现“造苯删”这个词,电脑就识别不过人脑了。 人工生命的模式识别与动作是结合在一起的,传统的模式识别只是单纯的识别,没有行为。例如猴子看到老虎会逃跑,但是看到3D电影里的老虎不会跑,这是它把识别和行为判断当成一整件事情来做,它的行为是综全了脑海里激活的上千个信号汇总出来的。而传统的模式识别给它看真老虎和给它看3D老虎电影,它只会输出“老虎”信号就完了,就算有行为,也往往是程序员硬编码赋予它的,可想而知建立在单调输出结果上的行为有多可靠,所以它不能适应复杂的环境。 人工生命的模式识别模拟动物脑,很可能没有清晰的分层,或者就是简单的两层、三层结构。传统的模式识别是人为划分一层又一层,可能多达10几层,这种分层结构本身可能就是一种硬编码,限制了它的功能。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

非常感谢 Ad 对这个项目的捐款! Copy link 巧克利-imbaland 巧克利6 months ago

感觉就是做了一款人工智能游戏啊 Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

如果一款游戏能不断吸收最新的人工智能技术,并且让普通人也能看懂思路,并参与游戏设计,从而促进人工智能技术发展,这也是个不错的模式。 Copy link 喝不惯水的鱼-xiejintiancai 喝不惯水的鱼6 months ago

很强大,加油! Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

谢谢! Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

模式识别是个大话题,记忆、回忆、行为判断都和模式识别纠缠在一起。我谈谈我的一些想法: 1.首先这个frog项目的基本思路是让青蛙从模拟最简单的生命现象,到小虫、到蚂蚁...,一步步来,这个步骤不能错,因为这个项目指望用这个方式一步步用随机变异、遗传的方式将有用的算法(器官)挑选出来,随环境同步进化。如果一开始就人为进行某个方面的优化,很可能陷入硬编码的误区。这个项目还没有走到需要细化模式识别能力的地步,小鸡训练后能不能识别1百个汉字?如果用草书横着写它能识别吗?如果不能,说明在模拟动物这块,优化模式识别分辨率还不是非常迫切,目前首要的任务是要把它当成一个整体跑起来,训练出一只会捕食、会躲避天敌的,会根据环境作出各种有利自已生存行为的动物出来,这个意义更大,因为没有硬编码,它的发展潜力是无限的。 2.目前基于算法的模式识别已经非常实用和快速,但不好理解,我朴素的想法是,所有算法都要能细化到用神经元图形化表示,就象实际的昆虫脑结构、我的3D脑图一样,如果不能用图形化表示,一定是人为引入了硬编码,这是个坏味道。就象卷积中常说的把一个图像分为5x5小块,从左到右从上到下扫描,在动物脑中肯定不是这么干的,因为动物脑是没有5x5然后循环扫描这个器官的,包括人,识字时也没有念叨分成5x5份来认,一定是采用了其它机制(例如人脑就可以利用脑内的虚拟成像区把文字进行变形化,把倒着写的文字在虚拟成像区正过来再认,因为有这个硬件)。另一方面,采用图形化,也可以降低神经网络研究的门槛,使用初等数学,就可以进行神经网络模型的搭建了,根据三体原理,初等数学搭建的模型可以产生复杂的现象,但是这种现象却不一定能用高等数学来分析,所以图形化相当于将基于数学和算法的神经网络研究拉到了基于实验这条路上来。 3.要识别变形后的字,对于简单的变形,这个算法是可以做到的,如果入射光子与洞有偏差,也是可以激活与这个洞绑定的洞的,只是概率小一点,可以通过调整允许角度差或概率来实现模糊分辨。我不是太担心这些细节问题,模式识别对于青蛙是必须要有的,但现在精度不用太高。而且它还可以引入动眼、变焦、扭头这类肌肉输出来进行辅助输入变换。 4. 模式识别原理有了,输入输出器官也有了,我正在考虑的是怎么把这些汇总起来,成为一个整体,输入输出器官产生信号,信号在脑内存贮和反射,又产生新的输入输出信号,不断反复。按照人的思维,总体上思维是建立在语言区顺序激活基础上的,大致上是单线程的一个过程,好比唱歌唱到“一条大河波”,好,来个暂停,人脑在这一刻的这个状态,是怎样的呢?我们知道它下一步肯定是要驱动肌肉唱出"浪"这个字的,在它浪之前,我们来仔细分析一下,首先,这个浪字已经被输出到脑内的虚拟发音区,它为什么会被加载呢?因为波和浪之间曾经形成过关联,只要"波"在脑内的虚拟发音区(与实际发音区紧密关联)激活,就会激活与它关联的"浪",成像在虚拟发音区。 然后,这个浪字被大脑检查过,作出行为浪费能量是很严重的一件事,所有驱动虚拟肌肉输出区的行为,会关联到脑的行为检查区激活,但是因为以前检查过很多次,大脑知道浪一次是没关系的,所以这个检查关联是飞快的,没有激活什么负面信号,于是已查过pass信号发出,而当前这个脑在没有收到比这个pass信号更强烈的信号,比如膝盖中箭信号,综合汇总之下,这个pass信号加上浪信号加上正在唱歌不能停不能喝水不能低头看手机等信号,最终所有信号累加到虚拟肌肉输出区并最终强烈到驱动实际肌肉输出区,于是唱出声——思考自已是怎么思考的真的是很有意思很费思考的思考。 对于青蛙来说,这个思考过程或者说思考现象也应该类似,大体按一个信号驱动另一个信号这个过程来进行的,始终由最强的信号来控制着输出(肌肉)区,让它不要乱动,乱动的青蛙会被环境淘汰掉。 Copy link Admin-wzhineng_admin Admin6 months ago

我想补充我思考的一个观点,关于模拟人脑的思维方式,一定要加入时间间隔这个单位,在单位时间间隔内,对于当前模拟脑来说,它可能会接受多个输入信息,那么哪个信息输入源是有效的呢,个人觉得应该加入加权的判定,即输入信息经过虚拟脑的计算后加权,最后选择其中一个输入信息(加权最大)作为指导下一步行动的有效信息。这种设定符合我们的大脑的实际逻辑。我们的大脑无时无刻在接收信息,但我们往往只选择最有利的或最需要的。 Copy link Admin-wzhineng_admin Admin6 months ago

这样的设计思路,就会产生多样性,就例如瞎子摸象一般,不同的青蛙在看到一个大象的局部后,会做出不同的应变和处理,形成多样性。大象指的是一个大的完整信息,但青蛙如果只获得局部信息,不同的局部信息可能带来不同的判定和处理方式,继而带来多样性 Copy link 920504 drinkjava2 1578935955 drinkjava2owner6 months ago

是,目前比较前沿的脉冲神经网络研究就是强调把时间作为一个关键因子。对于Frog这个以模拟为主的项目来说,时间肯定是会考虑进来的,而且实现起来很容易,例如所有记忆(洞)都随时间平复,(短期内)重复出现的信号会加强记忆,细胞重复激活有可能消耗能量到疲劳状态,不再激活。 加权这个概念我同意。 Copy link

小怂丶7 months ago

大佬你好,建议项目用maven子父管理一下! Copy link 920504 drinkjava2 1578935955 drinkjava2owner7 months ago

喔,这个core目录是旧的2维脑结构,原则上不再更新了,只是暂时舍不得删,放在这里方便演示。core和core3d是两个独立项目,项目名称也不同,不存在父子关系。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner7 months ago

昨天群里一个朋友谈到模型,这才发觉有必要作一个漂亮点的脑模型了,以前“一个人工脑模型”中的图片只是笼统的一个概念,和具体开发关联不大,当年只是个空想家,泛泛而谈,而现在我是程序员,这个身份的转变就相当于以前是顾客,可以随便点菜,对饭店指指点点,而现在则是大厨了,要亲手把菜给抄出来,光有点菜单是不行的,还必须有菜谱和做菜步聚才行。当然,这个脑模型实际上就是程序里的脑图,但是没必要等程序完全开发出来,可以先用3D绘图软件把它给画出来(我是机械师),先大体描绘一下我心目中最终的脑结构应该是什么样子的。这属于人为的设计,但和进化、淘汰是不冲突的,有些外围部件,如眼睛、运动输出器官、进食快感感受器、早点设计出来是100%不会错的,否则青蛙根本无法获得足够的环境信息或改变环境,也就谈不上进化和生存竟争了,有些器官是有疑问,不可见的,但是大概率存在的,也可以设计出来放在脑图模型里,这些脑内器官包括:脑内虚拟视觉输出成像区、脑内虚拟声音输出成像区(可选)、脑内虚拟运动输出成像区。另一些属于不太确定的器官(即实现各种逻辑的脑细胞群),如对光子进行传导、发散、会聚作用的传导细胞群、阻碍、反射、允许光子单向通过的功能细胞群,能产生记忆和关联功能及模式识别功能的果冻脑细胞群(类似hebb理论,我孤孤陋寡闻了)、能产生负信号(抑制)的细胞群、循环或间隔激活的细胞群等,这部分是不能随便设计的,具体的数量、大小、形状、位置等都必须由随机进化、淘汰来确定,但是我可以先画一个假模假样的包含了以上这些细胞群的结构,给大家看看样子,今后程序里的脑图进展到什么地方,就更正到哪里,确信的、不确信的、完全纯属猜测的器官,分别用不同的颜色来表示。 Copy link 920504 drinkjava2 1578935955 drinkjava2owner7 months ago

模式识别暂时告一段落,下面去把其它几个项目欠的几个issue补上。 这个项目以后的方向一是细化模式识别功能,让它更实用一些(当然实际上比不过现在早就在应用的、建立在算法上的模式识别),另一个方向是将这个细胞级别的逻辑抽取出来,参与青蛙脑的随机器官生成、变异和进化,继续找食大业。当然,脑结构将会是3D的了。 又:最近看这篇文章:专访美国AI国家安全委员会:解密中美AI大战,里面有个新词:"自监督学习",我觉着这不就是现在这个模式识别已经用到的技巧吗?只要任意两个波,在时间上短暂连续地发生,就一定会在它们波的交汇处形成关联。 Copy link

920504_drinkjava2 drinkjava2owner2 days ago

正在苦恼光子会产生太多的空洞Hole(即很长时间无信号输入的突触,信息可以安全地遗忘掉)和洞之间不活跃的关联(Relation),如果要清理也要花不少时间,即影响效率,也占用太多内存, 突然想到可以利用动物的睡眠,如果允许这个青蛙睡眠,则可以利用这个睡眠时间去清除细胞中的多余空洞和关联,回收内存,防止无限占用内存,并提高青蛙在醒来后的信号处理速度。 也就是说将不重要,但是要占用大量CPU时间的内存垃圾回收工作放在睡眠时做。 Copy link quanpeifeng quanpeifeng3 days ago

加油!会一直关注 Copy link 920504_drinkjava2 drinkjava2owner3 days ago

谢谢! 这个逆向成像一调试出来就乐坏了,马上更新上来,结果悲剧了,有个大乌龙,我以为的能识别变形后的字母,实际上只是因为没有其它字母信号干拢而已,正在紧张编程中解决这个bug,希望能够亡羊补牢。基本思路是将细胞上极短期内发生的两个洞绑定,只有绑定的洞方向来了光子(或角度略偏,代表字母的变形),才激活另一个方向的洞发送光子,而不是激活所有洞的光子。例如训练A字母和A声音同时训练,B字母和B声音同时训练,A的洞不会被绑到B的洞上,也就是说训练是否在短时间同步发生非常关键。 另外说一下最近为什么手工建模的多,而不是走由细胞自动进化这个路。这是因为有些功能如模式识别注定了绕不开,与其让细胞去试错,不如先手工去实现一下模型,验证它的原理,如果原理大体对了,再接着让青蛙走随机参数变异、进化、淘汰的路子。至于用洞来代表突触,这个与生物神经细胞似乎偏离太远,这个是我的一个假设,只能碰运气假定它是对的,用实验来验证。生物并不总是能进化出完美的结构,也许说不定洞才是更合理的信息模型也说不定。就好象生物从来不能进化出轮子,虽然有了轮子会跑得又省力又快,但是轮子对于生物来说是没法进化出来的,因为没办法给轮子供给营养让它长大。 Copy link bajdcc bajdcc5 days ago

作者很有想法,找食程序让我想起了一本书《游戏编程中的人工智能技术》,里面就是讲神经网络和遗传算法的,且收敛速度还是很快的,不过是高度简化的大脑,自由度不高。 2d大脑的demo很不错,我想可以自己用c++实现,然后放在自己的游戏框架里,程序粗略试了下,感觉收敛速度不是很快,这样设计大脑的话,效果就与大脑的器官的放置有着很大的关系,由于变异是输入点或输出点的随机偏移(不知道是否这样),那么从happy变异到pain的可能性比happy到left的可能性更大(大脑中感官区域的安排也是进化的结果,更如为什么要分左右脑,有胼胝体),总之结果很大程度受2d大脑中器官的放置情况影响,大脑中感官的位置和大小也可以变化。 3d大脑很有意思,两次刺激同时输入,交点区域信号加强,那么输入的先后顺序是否会影响大脑的形成?我觉得可以增加一个退化机制,随着时间的流逝,连结会退化,这样就体现了先后顺序。 其实怎么设计输入输出的方法并不是主要的,重要的是1)怎样提高收敛速度,3)怎样避开局部最小值找全局最优解(这也许是真正的生命智慧的体现),我对cnn rnn等不是很了解,但是觉得作者这样的设计还是大概率会被引向现有的神经网络理论当中,或者说是指如何优化的方法,因为模型都是大体一致的(模型怎么样也暗示了这个程序能走多远,frog能有多聪明)。 最后,作者加油~ Copy link 920504_drinkjava2 drinkjava2owner5 days ago

谢谢你的鼓励。2D脑的演示意义大于实用,它主要是想证明非生命和生命本质上是相同的,只是一种自然现象,它在功能上还是有局限。 收敛就意识着结束,人工生命的目的不是要获得一个静态的系统,而是要一个动态的,随时根据外界环境变化而变化的脑系统。这个项目用到的遗传算法最终目的是想要达到一个能不断自进化的脑结构。什么局部最小值、最优解的我不懂,只是希望将来更多地引入随机变异机制,生成越来越复杂的脑系统,能在生存竟争中生存的时间越来越长。这个项目要解决的问题和主流的神经网络是相同的,只不过是从一个外行的角度来描述,用可视化的结构来实现通常用算法表示的相同逻辑,这已经是我的数学理解能力的极限了。而且出发点和主流的“让神经网络有用”不一样,这个项目的出发点不是要有用,而是站在青蛙的角度,要让它"活得长,活得好",以模拟生命进化。 退化机制是要有的,而且很容易实现,所有的坑的大小随时间(即主循环)而变小,这个很快会加上。 Copy link 920504_drinkjava2 drinkjava2owner4 days ago

收敛速度这个指标个人感觉意义与系统的智能程度无关,如果从结构上来说,大自然进化出(收敛到)人脑这种结构,花了上亿年时间。如果从权重调整上来说,人从生下来到能够独立处理复杂的问题,需要经过漫长的学习期。但你不能否认人脑的价值。 相反,越是收敛快的,反而智能程度越低,比如小蛇和小鸡,它们生下来就会找食,基本不需要再进行权重收敛训练了,但智力程度却很低,没有多少学习新事物的潜力。 Copy link 920504_drinkjava2 drinkjava2owner10 days ago

非常感谢chanvictoire捐款! Copy link zhoujin zhoujin13 days ago

模型的设计有点小见解,希望对你的设计思路有一定帮助。 你的设计模型是基于食物为本源的。我认为食物摄取的过程是你前面提到过是能量的摄取过程,而能量摄取以后会对摄入的能量分配,多少用于保存,多少用于输出。而能量过于单一或者说食物的本质太过单一导致模型的升级过程变为不可能,所以这里应该对食物进行一定的设定,比如frog需要的不是食物,而是食物中的某一种元素,食物中元素的数量对食物摄取过程记忆,对食物种类进行一定筛选,这是一个物种升级过程必须的也是唯一的。可以先做一种食物,让frog对这种食物有认识,告诉他需要这种食物的原因,比如某一种元素能量,例如:si。当然后食物中还含有其它化学元素,希望都加入到食物模型中。这样会对模型的升级有一定的帮助。如果可以,希望同意其他人也参与到代码的开发过程。 Copy link 920504_drinkjava2 drinkjava2owner13 days ago

谢谢你的意见,但理解不同。我解释一下,实际上食物代表了环境的熵,包括边界、障碍等,都是熵的体现,如果投入这个虚拟世界的熵是混乱的,则青蛙不可能从混乱的熵中存活下来,所以这个虚拟世界本身也必须是有稳定的内在规律存在才行,比如如果吃到食物,青蛙的能量总是增加而不是减少,这就是一个隐含的熵的规律。这个虚拟世界所有的规律都是人为设计的,而且即使非常简单的规律,因为三体效应,要求这个青蛙脑进化到非常复杂的程度才能适应这个环境(例如围棋的熵很少,但复杂度会随着棋盘大小急剧增加,也就是说要求脑的熵容量急剧进化),所以重点不在于将环境设计得多复杂、多逼真,而在于让脑的熵容量要能达到适应环境的熵。这个适应就体现在生存上,这也是一个人为设计的熵的规律。所以目前的重点还不是复杂化这个世界,而是让它先从简单的环境开始适应,目前看来这个目标还没有完成,所以不能引入更复杂的熵输入(细化食物)。 比方说,要让它看到小蛇就躲开,这个说起来简单,但要求它能够看到小蛇的形状,将小蛇形状的熵转化为脑内的细胞区活跃,这就是要求它具有模式识别能力,从熵的角度看就是小蛇和生存是相关的,这个规律通过脑细胞的分布是可以被青蛙抽取出来的(见果冻算法的比喻)。目前我正在做这个工作,如果运行run3d.bat,可以看到两个相关事件的波(字母、声波)的传播,我要把这两个波关联起来,一个波激活后,会在另一个波的波源处逆向成像。这个算法有可能通过原子级别模拟的熵的传播自动进化出来,但这里我越俎代庖,手工设计算法来试图加快这个现象的出现。 另外,欢迎其它人参与到代码开发,我一直希望有人能贡献代码,但前提是,这个人的编码速度要比我快,否则就没意义了,(我每天要上班,实际上编码很慢,但到目前为止,还没发现有人提交任何代码)。目前我的编程目标是:1.完成字母的模式识别 2完成扭曲、变形的字母的识别 3.加入小蛇进来,增加程序的趣味性。第1项是重点,如果有谁真的在编码,遇到问题可以直接提问,我也很希望有人参与进来。 Copy link zhoujin zhoujin12 days ago

环境熵是无穷大的,而环境的组成是有定量的。 小动物应该吃什么?不应该吃什么?这些不是设定的,而是让他自己去算去适应的,即便吃掉了同类,也不是不可以的,如果是能量转化过程需要了,那么吃同类也是进化的过程,是必要的,但这一切不应该参与人的设定或其它的固有因素。 比如小动物见到什么应该躲开,遇见什么应该保持静止不动?这一切如果是你设定完成的,那么这些代码都是人工,而非智能。 所以说,模型的设计如果修改了。就会产生不同的结果,如果单单是因为硬件设备的性能而局限了你的模型,那么结果就是人工设计,而非智能。离硅基就相背了。 Copy link 920504_drinkjava2 drinkjava2owner12 days ago

熵这个概念有点虚,就好象说生命是一种现象一样,正确,但好象什么也没说。但是,越是简单的原则越不能违背,如果违反了这个规则,则可能犯大错,熵守恒这个原则是非常重要的。在程序设计中始终保持熵守恒,可能会产生想要的现象(设定初始条件,等待想要的结果),也可能产生其它意外的现象。但是如果不遵守熵守恒原则,则这个系统一定是错的,具体到脑设计就是所有的外界信号,在脑内部不会随便湮灭。青蛙脑不排除人工设计,只要不违背熵守恒原则就是允许的。 Copy link 宅男31号 宅男31号18 days ago

这个想法很不错,之前我也产生过这样的想法。但我觉得这种方法很危险,因为这样产生的意识,可能会有伤害人类的欲望。我觉得人工智能还是应该以服务人类为宗旨,必须保证人类的安全。 Copy link 920504_drinkjava2 drinkjava2owner18 days ago

我是投降派,如果会有伤害人类的动机,那就把这个动机消灭在萌芽状态,所以从一开始就要制订人工智能保护法,确保人工智能的合法权益。不能等到人工智能上了战场、人工智能被组装到汽车、导航机器里,才发现—喔,原来它也会反抗的啊—就太迟了。理论上每个机器人都是永生的,人类没理由剥夺他们的生存权和自由权。 不过话说回来,人工智能伦理、立法这块,还是谁的技术强,谁就有话语权,talk is easy。为了避免美国首先开发出独立自主的战场机器人,国内也要加快人工智能技术上的研发,用实力来争取人工智能立法的发言权。 Copy link 920504_drinkjava2 drinkjava2owner19 days ago

可以把具备动态触突的神经元比作一个果冻,光子来了,在上面撞了一个坑(动态触突)就被陷进去了(能量存储),如果来的多,或者速度快(能量大),一小部分的光子就被从果冻的另一头撞出去了(光直线传播,寻找下一个神经元,增加信息存储单元,实现体全息存贮)。如果在另一个角度又来了新的光子,同样的过程在发生,只不过在撞击的过程中,以前陷在其它坑里的光子有可能被撞出来,沿着撞击坑的路径直线逆向返回(即波的逆向成像,两个撞击事件,在神经元级别就被关联起来,关联的相关度取决于它们撞击坑的大小),原来的光子陷入的越多,则被撞出来的机率就越大(短期发生的事最先被回忆出来),随时间流逝,光子被果冻吸收(果冻变肥,有可能遗传),被撞出来的机率就越小(信息的遗忘),撞击坑也会自动修复(动态触突消失,脑神经又可以接收新的信息了)。如果反复地有光子撞击在同一个坑,这个坑就会变大,这个修复的过程会变得很慢,坑变大了后果就是,即使只有轻微的撞击,也可以很容易将大坑里的光子撞出来(即记忆曲线,复习的效果优于单次长时间学习)。 在某些位置,撞击太频繁、太强烈,不是在果冻上撞出坑,而是撞出一条通路,光子可以无损耗地通过,就形成了一个个传导通道(神经纤维),直到光子被某个果冻拦截为止。 思考和意识,其实就是一场撞球游戏而已。 Copy link 陈凯文 陈凯文23 days ago

从“量子计算机”找到“图灵机”到"生命游戏"再跳你的项目 我是个外行人,不懂代码,当看到你的青蛙能够智能的走跷跷板。 很是震撼!你的研究和探索很有意义! 加油啊~ Copy link 920504_drinkjava2 drinkjava2owner23 days ago

非常感谢你的捐款和鼓励!惭愧最近有点忙,进度慢,有时候写的多一点,有时候思路中断了,一天都打不了几个字,毕竟这是个实验项目,不象写网络小说一样可以保证每天一更。 至于量子计算机,则远远超出了我能理解的范围和这个项目的架构了。而且就算是真实的生命,它的基础也是普通的电信号、化学反应,可能和量子计算不沾边,否则也不会出现人脑算不过电脑这种现象了,因为如果人脑用到了量子计算,那从生下来起,每个人都 应该是数学大师才是,但现实显然不是。 Copy link 陈凯文 陈凯文23 days ago

未来你的项目用上量子计算机就牛了 加油啊~ Copy link tangliyuan1028 tangliyuan1028a month ago

我一直觉得可以通过计算机从最基层开始设计类似于人的活体,可是由于自己的技能还欠缺太多,没办法构建,终于看到有人做了,谢谢大佬,激动!我会持续关注整个过程的! Copy link 920504_drinkjava2 drinkjava2owner30 days ago

谢谢关注!一个人是做不好的,关键是思路,希望能吸引更多的人关注这个方向。 Copy link 920504_drinkjava2 drinkjava2ownera month ago

谢谢hl330捐款! Copy link 920504_drinkjava2 drinkjava2ownera month ago

谢谢陈秋华捐赠和大家的加油!最近进度有点慢,有点小压力了。争取尽快将第一版模式识别功能做出来,有了模式识别,可以做的事就多了,例如可以放几条蛇出来吃青蛙,青蛙就会进化到看到蛇形状的图形就自动逃开,蛇也采用相同的脑结构但是以青蛙为食物,然后再加上障碍物、窝什么的,会越来越好玩的。 Copy link ' or = ' ' or = '22 days ago

原始的生命,一开始不一定是蛇吃青蛙.会不会因为青蛙进化速度比蛇快,变成青蛙吃蛇? Copy link 侠情 侠情a month ago

不知道什么时候star的,虽然没有一直关注,也看不懂到底在干嘛,但是还是感觉很好玩!加油~ Copy link 920504_drinkjava2 drinkjava2ownera month ago

谢谢各位的star!已经过500了。最近的几个提交都是在构思Organ和Cell的参数,地基打好了,才能放心地玩搭积木。目前的工作方向可以用一长句话来形容:利用随机播种脑细胞加生存竟争筛选的方式搭建一个结构可视化的、能实现模式识别功能的3维脉冲神经网络。

另外才想到在Cell参数添加一个动态触突数组,它可以在不同光子来源方向上动态创建触突,这个比较好,它解决了结构问题,不再拘泥于正三角或90度正交结构等与细胞的分布结构有关的问题,任意来源的两个或多个光子,都可以通过创建动态触突,把这些有重复关联关系的信号从噪声信号中筛选出来,从而可以模拟出任意角度的波驻点逆向成像现象。 Copy link 333078_lovefc 封尘a month ago

加油! Copy link 920504_drinkjava2 drinkjava2ownera month ago

非常感谢! Copy link 920504_drinkjava2 drinkjava2ownera month ago

谢谢王二麻子的捐款!我会加油的。 Copy link 板蓝根 板蓝根a month ago

佩服大佬,一定要坚持下去! Copy link 920504_drinkjava2 drinkjava2ownera month ago

谢谢鼓励!现在确实是攻坚阶段。模式识别解决后,可以说这个项目的任务就完成了一小半。本来想用手工搭建出体全息存贮的实现,后来野心膨胀,还是想走随机生成结构这条路,导致难度加大。 另外在群里收到脉冲神经网络的介绍,很有启发,和这个项目在算法上好象是有共通性的,详细链接请百度"仿生脉冲神经网络--揭开生物智慧之迷",它的网站上的示例是用脉冲神经网络来实现了模式识别,正好是我现在要做的目标,只不过它是硬编码,算法我看不太懂,如果能看懂的话,对于阶段性淘汰随机结构进行筛选会有帮助。现在这个项目,细胞要考虑的参数有:入射、出射光子的能量强度及比例、虚拟触突的数量、角度、影响范围、细胞能量值、疲劳阀值等。 器官要考虑的参数有:大小、形状、位置、细胞类型、分布密度等。 这么多参数放在一起,要利用随机数来筛选出可以工作的整体,是一个复杂的工程,用炼丹来形容是很形象的。如果简单地用最终结果来淘汰是有问题的,甚至不可能得出结果,即使有海量样本数也不行,有可能按下葫芦浮起瓢,一两个参数合适的时候,其它参数又被随机破坏,所以要引入阶段性筛选(也就是说循序渐进)是很重要的,例如用光子在细胞间传播的总距离来作为一个加分条件,可以促使细胞们互相连接起来形成长的路径。大自然一直走的阶段性筛选的路子,但人的介入就试图进行跳跃式发展,用猜测来代替循序渐进,静不下心来,算是在撞手气。 Copy link 920504_drinkjava2 drinkjava2owner2 months ago

现在3D脑环境已搭好,文本模式识别的测试环境已搭好,要开始设计大脑,往脑袋里面撒细胞了,如果有兴趣的同学,也可以现在参与了,往里面扔各种器官,播种脑细胞,看看会跑出什么。目前有三个脑结构方向:1金字塔结构,所有输入输出区位于一侧。 2正交结构,眼睛和其它输入输出区在物理上呈90正交。 3.不手工设定它的结构,完全由电脑随机生成器官。 各有利弊,只能走着瞧了。 另外:现在这个ABCD模式识别检测,是对应一个字母图像一个脑内区,这个不高效,人脑对于文字存贮,例如3000个字的识别,不是开启3000个区,而是通过声母区+韵母区以及它们的激活时序(例如国王和王国是两个意思)来存贮,这是一种更高效合理的编码方式,以后要借签,图像与声区编码互相唤醒,这是正常的存贮方式。 Copy link 920504_drinkjava2 drinkjava2owner2 months ago

谢谢张老师的捐款! Copy link 2201740_qsssyh 青衫2 months ago

数年后机器人在扫荡人类数据时发现了这篇早期人类对创造生命体猜想的文章, 并把文章的发布时间定为机器人元年 Copy link 920504_drinkjava2 drinkjava2owner2 months ago

哈哈有趣的想法,不过我感觉在有生之年是能看到奇点的到来的。 Copy link 乌云 乌云2 months ago

这个变异、进化是怎么体现的,看完介绍后感觉好懵逼 Copy link 920504_drinkjava2 drinkjava2owner2 months ago

你可以用git reset --hard 46388a75e7e回到4.12提交版,就看得更清了,大体思路是这个青蛙有四个脑细胞,分别对应四个运动方向,另外有一个眼睛,里面有四个感光细胞,分别可以看到四个方向一定距离有无食物,然后程序里就随机生成联系神经,如果碰巧联系神经的输入端在感光细胞,输出端在动运细胞,细胞就会向食物运动,然后通过自然选择留下这个联系神经,这样青蛙就一代代进化了。至于青蛙们的行为我也是一脸懵逼,没想到只给了它们四个方向,它们就会进化到自已精确地定位食物。这是个非常简单的逻辑,但很好地说明了自然界中生物眼睛的诞生是一个很简单的大概率随机事件。 Copy link seanXieHZ seanXieHZ2 months ago

有意思的项目 持续关注! Copy link 妖孽 妖孽2 months ago

奈何本人没问题,一句牛逼走天下,持续关注中,加油 Copy link 920504_drinkjava2 drinkjava2owner2 months ago

谢谢你们的关注,虽然这个项目目前还很简陋,我会加油的。 Copy link iam iam2 months ago

感谢分享您的源码和解说整个设计、思考、修正过程,学习中。 Copy link 5017340_kalakuer kalakuer2 months ago

太强了,学习学习 Copy link 431003_xuwangcheng 凤凰院大白2 months ago

下载了运行了下,一脸蒙蔽。 Copy link 920504_drinkjava2 drinkjava2owner2 months ago

目前的run.bat是走跷跷板平衡演示,run3d.bat是一个空的3维脑框架,还没有完成第一版脑结构的编程。如果觉得这两个都不有趣的话, 你可以在frog根目录运行"git reset --hard ae34b07e"回到旧版本,然后再运行run.bat就可以看到比较有趣的找食画面了,然后调整Env.java中的参数,可以调整显示的快慢、青蛙的数量、屏幕显示大小等。我现在没有时间做出更有趣的演示,例如让青蛙有四条腿站起来行走并保持平衡,目前的2维脑这个逻辑是可以做到的,只要添加对应的腿运动区、站卧信号、平衡信号感受区就可以了。但是我现在所有精力都放在3D脑设计上,正在尝试用随机生成的神经元排列产生(字母)模式识别功能(见Readme介绍)。有了模式识别功能后,可以省略一些信号输入区,例如可以用眼睛的图像来判断是否身体平衡。它这个模式识别的特点不是针对具体某个图像来调整权重,遇到新的图像又要重新训练,而是重点在于它这个脑结构本身是从无到有生成的,会随着淘汰和变异越来越复杂,它的识别精度可以没有大数据训练那么精确,但它是一个通用、快速、小样本的识别模式。 结合gitk命令和"版本提交记录.md"的介绍,你可以了解这个项目的开发历程并可以用git reset --hard 切换到任一个历史版本。 Copy link 920504_drinkjava2 drinkjava2owner2 months ago

我告!现在乒乓球训练到了这么高的水平: 表象内容:放松训练开始→发球前默念动作程序→手握球在台上近距离来回弹三次球(习惯动作)→抛球→发正手短球→侧身正手冲斜线 / 发反手底线急长球→正手冲直线。 教儿子打球,偶尔翻到一个网页,读到以上一段话,注意以上动作全是是头脑中“假想”出来的!它将人脑神经网络的脑内“虚拟输出器官”的运用达到了淋漓尽致的水平,原来人们早就意识到,虚拟出来的动作、图象也可以形成和加强条件反射。 Copy link 920504_drinkjava2 drinkjava2owner2 months ago

可以尝试丢弃触突,把信息本身做成一个个带方向的类似光子的信息团(因为波是有方向的),随着传播逐渐被神经元细胞(介质)吸收,或反射出新的信息团。这样可以一个循环可以完成所有神经元的一步信息处理,不再一个器官一个器官地去遍历。用x,y,z三个方向的长度来表示这个向量的方向,而不是直接用角度,因为这样方便3维数组寻址。整个脑空间是一个立方体,划分成nxnxn个空间,用三维数组表示,每个小空间元素里可以存在0或多个神经元,如果小空间为空,则相当于真空,信息传递会越过这个空间,直到碰到下一个神经元或出界。神经元是最小信息处理单元,可以有五花八门的参数,例如可以增强、反射、折射、拆分、远距离(跳过间隔的神经元)传输信号等。用随机进化来筛选参数。 也就是说每个小空间里可以存在两类实体:信息元或神经元,而且数量可以有多个。 Copy link 920504_drinkjava2 drinkjava2owner2 months ago

大江歌罢掉头东,我胡汉三又回来了! 现在正式开始3d脑的编程,原来的2维脑还保留,新起一个目录core3d放新的3d脑青蛙。二维脑的主要问题是这个动态随机产生的联接,不符合高等生物脑的运行原理,解决不了复杂问题,高等生物脑在生存期不是动态创建新的细胞和连接,而是通过已经有的细胞之间交流信号,调整触突权重来处理信息。3维脑将保留2维脑的一些基本架构,例如器官及变异的概念要保留,但只用来播种细胞,整个脑的细胞数量是固定的,通过波的传导来达成从视觉细胞到运动细胞之间的信息通路。任务又回到原点:找食,从一群固定不动的青蛙,要进化到能看到食物就向食物运动。虽然任务一样,但信号传播原理是完全不同的。 Copy link 1471685_zssss zs2 months ago

期待! Copy link wangtao wangtao2 months ago

很高兴看到楼主继续更新 Copy link 2306235_enejavsen Mr.JavSen2 months ago

加油!] Copy link 920504_drinkjava2 drinkjava2owner2 months ago

谢谢你们的鼓励! 最近我所有时间都在做另一个开源项目的分布式事务,好在总算做完了。下面将集中所有精力在这个项目上。 Copy link 4813200_liushaokang 刘少康3 months ago

mark ,愿中国开源社区出现越来越多的学者。 Copy link 920504_drinkjava2 drinkjava2owner3 months ago

谢谢关注! 不过我真算不上学者,用“跟着感觉走”来形容这个项目比较恰当,也许有一天走错方向,把大家带到沟里去了,哈哈。 Copy link 920504_drinkjava2 drinkjava2owner3 months ago

这个项目我暂时不会更新了,将转向新的3D脑模型设计。但有兴趣的同学也可以在这个2维脑的基础上接着改改程序试试,加上与门、或门等逻辑器官,看看能不能提高它的找食效率,表现出更复杂的行为模式。 Copy link 920504_drinkjava2 drinkjava2owner3 months ago

谢谢LongFer的红包!每一份捐赠都是对这个项目最大的支持和鼓励! 下次更新时会加一个公积金台账,但只记捐赠名单和当前总额,不记进出,这样即体现了不鼓励金额攀比,自愿随意的原则,也能通过历史记录查出每笔的进出明细。 Copy link zzllrr zzllrr3 months ago

大佬好!你的项目很宏大和深远,值得鼓励和膜拜! 但项目的未来,可能会陆续遇到多种不可能求解的数学问题(如Chaitin不可计算问题、哥德尔不可判定问题), 这是因为探索智能的本质,这种人类难解答的世界本源问题,最终都会指向一系列终极数学问题,所以我建议需要项目参与者需要具备强大的数学理论知识和应用能力储备,以及一系列数学方面的脚手架工具,以避免走太多弯路,或者走入陷阱。 以我之见,通过计算机实验来探索生命是一条非常好的路,但是现有的传统计算机在底层设计思想上, 并没有突破和超越图灵、冯·诺伊曼当初设计思路(当初并不是为了实现机器智能,而只是为了机械自动计算), 可能因为算力(即使分布式+超级计算机)和逻辑限制不足以探索到智能的本质。 量子计算机在设计和计算力上,可能会稍微好一些,但距离涌现出真正的智能,估计希望还是很渺茫的。 DNA生物计算机,也许是未来大有前途的方向,但也困难重重。 个人认为,生命应该涌现于复杂神奇的大自然,通过计算机(复杂度远低于大自然)能涌现的顶多是一些有智能影子带有人工色彩的Pattern模式。 建议阅读一下集智俱乐部关于智能体的讨论,或者Stephen Wolfram(数学软件Mathematica、Wolfram Alpha作者)的书NKS(New Kind of Science,思想也是使用计算机探讨生命Pattern,但其在业内褒贬不一),以及Conway康威(美国数学家)的生命游戏,相信会有更多启发。 当然如果有读者强烈要求这个项目有参考文献的话,不妨从中找些学术文章,作为参考源。 顺便推广一下本人在Github上的开源数学软件,小乐数学zzllrr Mather,也希望更多人加入,将来在探索生命智能等大问题上可能派得上用场。 Copy link 920504_drinkjava2 drinkjava2owner3 months ago

您好!谢谢你对这个项目的很高评价,这个帖信息量有点大,我也逐一谈谈我的看法: 哥德尔不可判定问题是不适用于判定机器智能的,因为随机数的引入可能已经打破了数学"形式系统"这个前提,如果有人认为计算机的随机数是伪随机,那好,我用我家水壶烧水的分贝值的小数位作为随机数,那么这个计算机就不能用哥德尔定理来判定它了,问题是,机器有没有智能难道是由我家的水壶决定的?这显然很荒谬。我的观点是意识只是一种现象而已,它本身就不独立存在,只要物质运动能表现出智能现象,在解决实际问题上能达到或超过人的表现就行了,包括人的意识活动,能不能用哥德尔定理判定它并不重要,因为智能只是一种表象而已,本身就不存在,也就谈不上什么本质不本质的了,同时也就不必纠缠是用量子、生物、电子、光子去实现类似的智能现象了,顺便说一下(个人看法),现在的计算机硬件算力很可能在十年前就超过了越过奇点的能力,只不过软件或者说程序员的思路还没跟上而已。 另外这个项目不反对应用数学来解决问题,但通常解决问题的方式有两类,一种是按照计算,一种是按照经验,例如猫在奔跑身体不平衡了,按数学家的方法需要计算它的重心、速度、角度,才能确定伸出哪只脚及伸出的角度,但对于猫来说,它解决这个问题的方式是根据经验,感到身体歪了,根据经验伸一只脚就行了。至于经验哪里来的,是长期与自然生存竟争自然形成的。这个项目因为本人数学知识差,也是主要走的经验的路子,看到问题了,根据经验想出一个方式去解决它,例如“体全息存贮”这个方案,按经验应该能应付大数据存贮的难题,这个经验并不是凭空想象出来的,而是花时间去Google去挑选出来的。这些经验也是人类进化、社会发展自然形成的,实际上也包括了数学理论的一些成果,只不过使用者可能都不知道就直接当成经验来用了。 另外还有一种情况数学可能也是无能为力的,就是三体这种混沌、非线性问题,当三体转变为千体、万体、亿体、百亿体时,整个系统的行为更是无法用数学工具来预测它的行为的。但是反之,利用成千上亿个虚拟神经元倒是有可能很简单地模拟出类似的行为现象。 至于其它人工生命项目关于Pattern现象的研究个人认为意义不大,因为人工生命的最终目的是要与实际社会交互,解决现实的问题,不能只局限于电脑虚拟环境中的各种现象,而是要随时要准备给这个人工生命一个摄像头,让它进入现实,解决真实世界的问题,包括它自身的存在问题,所以模式识别这个功能是必须的而且很早就要加入(自然界中眼睛是廉价的,米粒大的昆虫都有眼睛),人工生命的最终目的是造人,决不是游戏。 最后欢迎你对这个项目的关注和建议,如果有一天这个项目需要用到数学知识去发现或解决问题,还需要你们的帮助,我是不介意任何方式去实现这个最终目标的,在二十年前,甚至想过在几平方公里面积上随机撒布单片机这种方式去实现一个脑模型,可想而知为了这个目标我是不择手段的。 Copy link haibei haibei2 months ago

同意,目前计算机底层的计算逻辑应对生命进化还有一定局限性。而且意识体进化的标志是具有能把具体的行为抽象化的能力,比如“知识图谱”就是人类的抽象意识对机器的赋能,如何让机器具有抽象能力,并且还消耗很小的代价,这个命题挺大 Copy link 920504_drinkjava2 drinkjava2owner3 months ago

或者,不必去人为设计脑的三维物理结构,而是采用全联接模式,波的概念依然适用。从它的输入、输出器官,以及它们之间必须完成的信息关联逻辑上来设计这个脑。先简单地把这个脑的物理网络设计成一个球形,组成一个立体的全联接神经网格。用一个西瓜来比喻,西瓜瓤代表神经元网格细胞,在西瓜上面开一个方形,代表眼晴,表示2维图像信息的输入(脑没有直接的三维信息输入器官,只能用两个平面图像的视差来估算感觉距离)。割一条缝,代表耳朵,表示单维声音信息的输入(声音是一种单维的波信号),扎许多个点,代表痛、触、痒这些点信号输入,一个点就代表一个固定位置的神经元兴奋输入区。用西瓜籽来代表输出器官区,输出器官区可以分两类,用黑西瓜籽来代表肌网兴奋区这种"明显"的输出器官区,只要输出区兴奋,相应的身体上的肌肉就会运动,用白西瓜籽来来代表脑内"隐形"的、不可见的输出器官,如脑内成像区(这是二维的)、脑内讲话和唱歌区((这是单维的)。所有的输出器官区本身也是一种输入器官区。例如在脑海里想象一个圆形,从圆心到往上画一条线与圆边接触,再从圆心往右画一条线与圆边接触,这个图形在你脑海里隐形的成像区里已经输出成像了,同时这个图形也会被作为输入图像去激活其它脑区。例如你可能已经联想到时钟和三点了。 从物理及模拟上来说,每个激活的细胞都象一个波源一样发散信息,在这些波重复、反复交汇处,细胞被撑大,表示信息被贮存住了,下次再有波过来这个驻点将会成为另一个波源发送新的波,波的强度大小取决于驻点的大小。 从逻辑上来说,网经元网格必须要具备的功能是,2维图像要能激活若干2维图像(视网膜图像激活脑内成像区如相似场景、相关文字,以及脑内成像区要能激活其它脑内成像区)、2维图像要能激活若干单维图像(视网膜图像激活脑内单维的输出器官,如激活脑内说话区), 单维信号要能激活若干2维图像(如实际听到的或脑内讲话区的语音这个单维信号要能激活脑内成像区成像出一个文字或对应的2维图像)。 从实现途径来说,这个全联接神经网络遵循一些简单的规则,信号多的地方,神经元就用进废退进化得更密一点好让它有更大的信息传输和存贮密度。 另外有一类特殊的联接关系,这是智能的基础,就是联接神经元,主要作用是联系神经元驻点,越大越肥的驻点之间,有越有可能形成更多的联接神经元。联接神经元分两类,一种是可以遗传的,形成一种可遗传的先天性的动作条件反射。另一种是后天动态形成的,它的形成和波的驻点形成是相同的,但区别在于甜、苦、痛等奖惩输入信号参与了强化或削弱这种关联。 Copy link 920504_drinkjava2 drinkjava2owner3 months ago

金字塔结构只是一种假设的构思,我想了下,有可能不靠谱,与它逻辑上类似,但物理形状不同的结构也可以是其它形状(但应该是三维的),例如是两个呈90度交叉的柱状体(视觉是柱状体,其它信号可以是平面),其中垂直的柱状体表示视觉信号,水平的柱状体(或平面体)表示声音信号。柱状体的概念可能更通用一些,因为金字塔结构要求所有的信号输入在金字塔的顶端,而柱状体交叉这个结构可以形成一个复杂的交叉结构,多个信号类型之间如果没有直接交叉关系,是隔离的,只能通过间接的交叉关系来中转一下进行联系。 现实中的高等动物,貌似声音(语言)这一维的信号更重要,我原本设想的青蛙只有眼睛就够了,用一个复杂的图像文字去联想出实物复杂图像(以及反之)这个功能,似乎不靠谱,因为图像文字不能简单地用“单个”神经元的兴奋来代表,所以以后就不能简单高效地利用随机试错、优胜劣汰、奖励强化的原则来将这些神经元联系起来,反之,如果引入声音(语言),最终图像可以简化地对应单个神经元兴奋,便于以后的处理。但是声音本身虽然比图像信息量少,但它也是一个比较复杂的信号,不方便电脑模拟,所以要引入文字而不是语音概念了,直接用一个文字代表一个脑神经元兴奋区,这样方便编程,以后每增加一个图像,就增加一个脑神经元区的兴奋(位置是固定的,由电脑预先分配1000个区,但每个区对应的图像是由程序员后天训练时输入的,对青蛙来说只有区,并没有文字图像,也没有声音,以简化编程),例如对于蛇这个图像,外国人脑中有"Snake"这个语言区兴奋,但中国人脑中有"蛇"这个语言区兴奋,它们的位置是不一样的,但这个位置在哪里毫不重要,重要的是有这么个位置产生,蛇的图像上升到一个单个的脑区兴奋,才可能方便地进行下一步的信号处理,如条件反射的建立等。 如果没有高维度的语言(即声音)区,只依靠视觉信号进行联想,可能效率非常低(这很好理解,因为电脑编程模拟都很困难)。给鸡喂食前敲几次钟,以后只要敲钟,鸡就会跑过来,但如果喂食前写个“喂”字给鸡看,可能只有非常非常非常聪明的鸡才能认得,这是要喂食了。如果没有语言,原始人要教会小孩蛇会咬人这个概念是非常困难的,可能只能让蛇咬一口,然后躺下装死(可能是真死),才能模糊地让小孩联想到蛇会咬人,需要跑开,这个信息联想效率就太低了。 Copy link 巫哲仁 巫哲仁3 months ago

类似于达尔文的进化论,但是人和其他生物,不是进化而来的,你相信现在的人是由古老的单细胞进化而来的吗,如果真的存在进化,那为什么猩猩猴子一直没有进化成人,甚至没有中间过渡生物的存在。所以一个青蛙,按道理不可能通过计算机创造一些条件,进化出“智能”或者“意识”,不过作者想法和实践能力厉害了,佩服,先关注了。 Copy link 920504_drinkjava2 drinkjava2owner3 months ago

进化论是一个很多人到现在都不相信,但确实是被(考古)科学证实正确的科学结论。而且你举的例子是个反例,猩猩猴子没有进化成人,恰恰是因为它们的同类猿猴先进化成人,抢占了他们的生存空间。数量和随机数会产生无数种可能,我相信随便从地上捡条蚯蚓扔到一个无生命但有食物的星球,几千万年后它们也会进化出意识的,有的蚯蚓长得大,有的长得小,长得大的偶尔可以发现吃小蚯蚓,小蚯蚓偶尔进化出腿跑掉了,长得大的偶尔进化出跑得更快的腿,还有感光的眼睛好追小蚯蚓... Copy link 巫哲仁 巫哲仁3 months ago

加油! Copy link 920504_drinkjava2 drinkjava2owner3 months ago

谢谢! Copy link 920504_drinkjava2 drinkjava2owner3 months ago

谢谢Dotao的红包! 也谢谢给项目点赞的同学们!你们的支持,让我对这个项目的发展前景更有信心了。 Copy link 5192219_viewlei viewlei3 months ago

idea很好,想问一下你这边参考的论文有哪些呢? 感觉前面做的这些基本的功能,大概用元胞自动机+规则+生成随机数的思路就可以完成(个人认为)。 这一块的东西我认为代码不是最重要的,重要的是依靠一个成体系的理论框架,数学模型,能严谨的证明其可以收敛到你期待的目标(此处为你提出的“造出一个真正意义上的人工生命”)。如果有这方面的论文或者证明,希望能共享下。 Copy link 5192219_viewlei viewlei3 months ago

这个idea或许比较适合做群体智能方面的研究,比如蚁群算法。 Copy link 920504_drinkjava2 drinkjava2owner3 months ago

您好,很惭愧作为一个业余爱好者,这个项目无法给出证明或论文来证明它会达成最终目标,简单说这是一个与现在的科技界脱节的“民科”产品,信则有,不信也无防,而且作为体制外人,也不太了解有无类似的科研项目及进展。当然,作为科研最基本的一点是如果它能作出一些成果,在实践中可以运用,则这个项目本身就有意义了,不需要自证自身了。目前只有“找食”这个成果虽然没啥用,但至少解释了"智能现象的产生、生命和非生命没有本质区别"这些基本现象,而且以后随着项目进展,也许会出现一些更智能,更“有用”的智能现象出来,就更有说服力了。 另外这个项目的一个初衷就是相信不用学习和掌握复杂的数学知识(我的数学退化到初中水平了),仅仅依靠电脑胡乱地建模、试错、淘汰,就能逐渐地搭建出一个越来越复杂的模拟生物,直到达到非常高的智能活动现象。如果必须运用高深的数学知识或理论来指导,反而与这个基本理念有冲突。所以这个项目可以说是一个最适合"民科"从事的神经网络科研(如果这也算科研)之路。 另外它的野心比较大,不懂什么叫蚁群算法,反正最终目标是要造出类似人类表现的通用智能,在此之前,所有的成果都是阶段性的,是有疑问的,甚至可能是岐途。而且它是不择手段的,并不局限于随机数,为了这个最终目标,如果有用的话,它不排斥引入任何现成的算法成果, 可参见这里第13条和21条。 这个项目本来不应由我发起的,更适合做个安静的预言家。二十年前我写信给中科院,就建议“把构造生命体作为最迫切的任务,并投入大量人力、物力”。如果说论文的话,这篇写在1996年的民科文可供参考:人类还会进化吗?-谈机器智能发展前景 Copy link 920504_drinkjava2 drinkjava2owner3 months ago

另外"造出一个真正意义上的人工生命”这个目标实际上已经达到了,不过途径很奇葩,它通过演示随机进化能产生智能现象来证明"生命只是一种现象,和非生命没有什么本质的不同"。也就是说把题目本身给推翻了,即然生命没有什么特殊的地方,那也就不存在什么"真正意义"上的生命判定标准,只要能表现出一些类似生命活动的现象(这些现象是人为规定的,正如我给出的四条),就大差不差可以了。 Copy link 5192219_viewlei viewlei3 months ago

感谢回复,加油!祝好! Copy link 920504_drinkjava2 drinkjava2owner4 months ago

谢谢Wangtao的捐赠! 虽然金额不大,但意义大,这是Frog项目的第一笔收入。我盘算万一项目做大了,可以用收集的捐款发布一些开发任务,或回馈项目的具体参与开发者。谈钱伤感情,但没钱只靠程序员的人个奉献,项目的发展没有保障,就拿我自己来说,有时候忙起来一星期都抽出不几个小时来编码。程序员的压力大,时间很宝贵,996的发源地啊,当程序员的估计没多少富二代可以大把捐款吧。 其实谁如果有心,认可这个项目的开发理念,也可以把这个项目向大款们老总们介绍介绍,骗一些赞助来,更何况也不叫骗,个人觉得在这个方向的投入是会有回报的,而且很可能是今后通用人工智能的一个研究热点。 Copy link wangtao wangtao3 months ago

没想到是第一个捐款的。。。。来看这个项目的关注度还太少了!! Copy link 920504_drinkjava2 drinkjava2owner3 months ago

已经很不错了,我以前做jSqlBox项目,用心地做了2~3年,但还不到这个随手做的小项目一半点赞量,有点无心插柳的感觉。 Copy link ck ck4 months ago

在这里让我想起了达尔文的进化论。不过这里你是上帝,计算机规则(其实是人为定义规则)代替了自然规则,进化条件由因果条件代替了自然的化学物理条件。还有就是仅仅基于规则的行为,不能叫意识,意识前面往往还带着“自主”。也就是说我可以逆反规则条件,发现它们并操作它们,做规则以外的事,这样的存在才能叫有意识的存在,否则只能称作数字游戏。你的青蛙如果哪天能竖起中指对着你这个上帝,那它就是有意识的存在了。 再说说我对意识感性认识吧,意识是矛盾体,像莫比乌圈。意识是镜子里对现实世界的成像,不同材质导致了不同成像,也就造成了不同意识,但它们的都是一致的。材质差得太远会让我们交流困难(如人和狗),材质相同但一面照着繁华人间另一面照着寂寞深渊同样无法交流(正常人和养在地窖里的人【邪恶实验】)。总结就是意识的存在必须要两个元素:1.能反射世界的镜子。2.秩序世界。 Copy link ck ck4 months ago

人(生物) --五感--> 世界。机器 --索引数据-->XX。 世界≈XX。 Copy link wangtao wangtao4 months ago

每个人都要从头开始训练,如果能想办法集中很多人的电脑一起来训练一个模型,创造一个更大更复杂的环境,最终效果一定很惊艳 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

这个项目主要作用是探索,不太适用于多人联网解决一个并行计算/建模问题,如果它探索的内容得到实验证实,将来会考虑移植到并行硬件如利用显卡来加速。在探索阶段,如果有银子,直接用超算来跑更简单易控。不过没钱的情况下,可以用时间换空间,我现在正在做的是加入分组训练功能,每个测试可以少到只有几个甚至单个样本,然后从一组测试跑出来的结果中选取几组找食效率最高的青蛙的蛋,进行下一组测试。这个功能的初衷是打算做个青蛙走跷跷板自动平衡的演示,但是为了省事,不想画很多个跷跷板,所以只能每次出场一个青蛙,所以分组测试是要加上的。 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

思维,可能就是控制大脑一块(或最多几块)虚拟游标区在脑内滑动(主要是在立体金字塔的上半部分),滑动到哪里,哪里的神经元就兴奋,如果长时间控制这个游标区固定在一个位置,神经元会疲劳,需要更多的能量去维持这个游标区不要移走。人在做梦的时候,为了避免疲劳,游标区会自动向新的区滑动,所以梦里不容易有逻辑性地思考问题,因为游标区的走向不能很好地自主控制。 游标区可以解释为什么大脑的思维总是串行工作的,因为同时活动的游标区通常只有一两个。串行工作机制有了解释,那又来了新问题,人脑是怎么防止产生多个游标区,或是防止一个游标区都不产生的(后者就相当于大脑当机,白痴状态)? Copy link someome someome4 months ago

建议了解一下《自动控制原理》,强化学习其实就是一个自动控制的例子,人类的学习也是 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

《自控原理》有没有解释蚂蚁为什么会搬家? 大自然造蚂蚁之前有没有学过《自控原理》? 个人认为类似生物这种复杂的系统不需要搞懂每个细节原理(如果真要说清蚂蚁搬家原理的话,几百页的公式可能也说明不完),只需要用各种方式去试错、去模拟,如果能模拟出来类似的现象就行了,当然,这个试错、模拟的工作是交给电脑,程序员只需要仿照大自然,维护一个试错、模拟、淘汰的环境即可。 Copy link someome someome4 months ago

蓝脑计划宣告失败:想用计算机模仿人脑,轰动后如今死得悄无声息 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

这个目标是对的,问题是途径不对,如果不理解蚂蚁的大脑,不能模拟出蚂蚁的行为,就不要说模仿人脑了。 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

突然想到: 信号反向传播到成像区就可以成像,如果信号再继续反向走下去会如何? 可能会浓缩到一个点上,也就是说成像区象夹心饼干一样位于浓缩点和存储区的中间,这样也更方便利用随机试错算法在这些浓缩的点上建立新的联接。整个脑逻辑结构就象一个金字塔,处于最高层的是浓缩区,处于中间层的是成像区(视觉感光区只是成像区的其中一层,而且不占据整个层,存储层的信号有可能绕过视觉感光区直接在成像区成像),处于最下层的是存储区,思维区不再是单个的层,而是包含了浓缩区、成像区以及它们内部动态生成的随机联接这一个立体小金字塔结构。以上这些"区"只是人为定义的概念,各个区之间没有明显的界限。以下原则可以用来构建整个脑结构,所有的神经元都遵循这个简单的原则来设计:整个脑结构是金字塔结构,信号可以从上往下传送,也可以从下往上传送,越往下层,神经元的数量就越多,动态生成的联结(条件反射)往往更容易建立在塔尖部位的神经元之间,因为塔尖部位的神经元数量少,更容易实现连接,而且塔尖部位代表了高度浓缩的抽象信号,在它们之间建立联接可以达到最高的信号处理效率。 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

有强迫症的人不能看这个项目,心累,明明食物就在旁边,拐个弯就行了,偏偏就不吃,恨不得自己上去代它咬一口,累啊。 中间那个不是绿化带,不是隔离栏,而是个陷阱,青蛙掉进去就会死掉,当然,后来青蛙莫名其妙就学会不掉进去了。 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

看来JQ暂时是搞不完了。下面先清理一下这个项目,有些垃圾类要删掉。网格形式的模式识别先不急,先把奖励信号利用上,目前奖励信号被白白浪费了。要改成每次吃到食物之后,近期活跃过的所有神经元的fat值增加,就好象训兽师每次在海豹完成一个动作后,就给它条鱼吃一样,吃完鱼之后,海豹就会把刚才的动作记得更牢。另外相应地,动态生成随机连接(目前是RandomConnectionGroup),也改成每隔几步step之后就动态生成一些,而不是等青蛙死掉后再由它的后代去生成,由后代生成新的随机联接虽然可以体现优胜劣汰,但是太滞后了,根本无法利用上宝贵的奖励信号。创造性思维就是将不相干的神经元联系起来,在这里具体就是随机产生新的联接,然后由食物奖励来强化(保留)。 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

目前找食效率已经很高了,而且也基本不出边界了,把奖励信号利用上这个设计目前看来也不是很迫切,下面考虑先上模式识别,放几条小蛇进来吃青蛙,如果认不出小蛇形状的青蛙都会被吃掉,为编程方便,小蛇暂用NPC来充当,当然今后小蛇也可以考虑做成真的人工生命。 Copy link 5177524_longfer LongFer4 months ago

我觉得项目很好,请问大佬怎么加群呢 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

如果想长期关注这个研发方向,请加我微信yong99819981并留言人工生命群,谢谢! Copy link someome someome4 months ago

大神可以了解一下深度强化学习和OpenAI gym,感觉模拟大脑神经元和生物进化的思路是一条歪路。生命的本质无非就是复制和变异,实现是很简单的。最重要的是人类的意识和思维,这也是人工智能这个学科的最终目的。深度强化学习是目前最有可能取得突破的方向领域,大神可以关注一下这方面的信息。“意识从来就不存在,意识只是一种现象”我不同意这个观点。我的观点是“意识是一种状态,对过去和现在的记忆的自我感觉的一种状态”。其实几百年前笛卡尔就已经解决了意识是什么的问题。是的,就是笛卡尔的哲学命题“我思故我在”。 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

模拟大脑的进化是一种手段,指望让电脑来自动生成复杂的脑结构,这个有投机成份,能不能成功有点靠运气,所以这个项目也不排除人为参与设计,允许吸收其它算法如深度强化学习(这个我是弱项,因为我是外行,等我有时间一定学习,或其它人也可以参与改进这个项目),编程者也需要较高的编程技巧,一条路走不通再试另一条。 至于是不是歪路并不重要,只要能逮着耗子就是好猫。 关于意识是什么的问题,这个项目的看法是认为讨论意识本质之类的话题是无意义的,纯属浪费时间,"杯子"、“自行车”、"意识"、"智能"、“勇气”这些都不是存在的实物,只是人类语言中对一类现象的归纳而已。这个项目只从程序能实现的功能来判断它是否足够"智能",足够有用,直到能够实现解决一些现实问题,例如模拟动物实现一些复杂的工作如模拟一只狗来实现垃圾分类,当然,如这个项目开头所说,"有用"只是暂时的,最终它的目标是要造出有自我意识表现的通用人工智能。 Copy link 920504_drinkjava2 drinkjava2owner4 months ago

这个OpenAI项目,我查了一下,它的目标和这个项目的目标是完全一致的,就是造出一个通用的人工智能。看来国外已经认识到,单纯通过算法来解决开放性的复杂问题(如自动驾驶、翻译等),是一条走不通的路,最终人工智能的解决方案是"通用"智能,一个模型能解决所有问题,也就是说能造出最终智力表现超出人类的机器人。关于如何防止人工智能反制人类,相应地他们的看法就是“更多人拥有同样的能力来达到相互制衡”,这个观点也与我的观点有点接近,只不过没我这么明确彻底地倒向"投降派",人工智能研发不能被阻止,但可以通过人工智能立法保护人工智能人权、防止人类伤害机器人等方式防止人类被灭绝。 另外OpenAI最终实现途径和Frog在算法逻辑上可能是等同的,都需要电脑来生成脑结构,而不是人来搭建。不同的是Frog给出了具体的研发路线和考核目标,每一步人工生命的进展,都是可以考核评价的,从低等生命的行为一直模拟到高等生命的行为表现就行了。 Copy link heychina heychina4 months ago

伟大的目标,大佬,我想加入开发团队,贡献自己的一点力量. Copy link 920504_drinkjava2 drinkjava2owner4 months ago

谢谢你及最近好多同学的点赞,看来大家都对人工生命这个研发方向很感兴趣。但最近关注这个项目的请耐心等待一段时间,不光因为我最近没时间,而是因为这个项目架构方面会有极大调整(添加模式识别和记忆功能,见评论),这可能需要较长的编码时间,我一般会在有青蛙的行为有明显改进时才提交到码云,防止同学们down下来却看不出什么名堂,一头雾水。当然了,如果有同学自认为思路和编码能力较强的,也可以试着加入模式识别和记忆功能,争取能走在我的前面。目前的目标有两个:1。青蛙不能出界 2。青蛙要吃光所有食物。第一个目标青蛙必须看到并识别出边界的存在,第二个目标要求青蛙的眼睛能进化到看到屏幕上的任一点。 Copy link 筑梦前行 筑梦前行4 months ago

目标远大,我辈学习之榜样! Copy link 小仔 小仔4 months ago

太棒了,持续关注大佬 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

这个项目消停两天,这一两周要集中精力完成jSqlBox的分布式事务。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

手机收到了,如果大家只是想临时私聊的可以加我微信yong99819981,聊完删掉好友即可。如果有想加入开发团队或长期关注这个项目的,可以留言加入"人工生命群"。 Copy link 妖孽 妖孽5 months ago

持续关注中 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

谢谢关注!但这个项目快不起来,一方面作者本人是个外行,另一方面它可能是走在了无人区(至少从这个外行的眼里看来),“外行”+“无人区”注定了它举步为艰,随时卡壳。 这个项目唯一的亮点可能就是作者本人坚信这条路能一直走到头的信心了。现在的神经网络研究要么信心不足,不觉得从模拟蚂蚁脑、青蛙脑可以一直走到模拟人脑。要么就是信心足过了头,连蚂蚁脑都没搞明白,就要上高大上的人脑模拟项目(欧洲人脑项目)。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

随机联结只是演示了"会自主运动觅食“的微生物可以简单地通过随机进化中产生,但不能解释模式识别和记忆功能的产生。下面要开始另一种脑细胞分布模型的尝试了,可能要完全推翻目前随机联结这个架构,而且似乎更符合实际生物的脑结构,这就是网状结构: 打比方说,目前如果一个眼睛有100个象素点,分别对应A,B,C,D....等感光细胞,另外有上、下、左、右四个运动细胞。可以假设每个感光细胞收到光信号后,会象一个波源发生器一样向四周的脑细胞传递信号,越远的细胞收到的信号越弱,如果两个或多个感光细胞的信号同时到达远处的一个细胞,则形成波峰,如果多个波峰同时激活,这几个波峰从波的角度来说,可以看成是独立的信号源,于是又会在更远处形成波峰,于是不同形状的图形就会被大脑归类于一个个特点的波峰激活区,这就是模式识别的基本原理了。 一个波峰形成后会以反指数曲线形式消退,在此期间如果有个别波到达,会很容易再次激活,即使只是图像(或其它内、外信号)的局部信号,也可能使这个波峰激活到很高的值,这就是记忆的基本原理了。如果某个感觉细胞的输入转辗到达了运动细胞,可以说是一种天生的本能反射,如果这个本能反射链被加强或削弱,例如被脑内进食奖励区兴奋(多巴胺产生会加强最近的触突联接)、痛觉信号(可能产生强烈负信号),或是被脑内其它波峰的信号覆盖,那么这种后天形成的信号-运动反应,可以称为后天的条件反射。 对于电脑模拟来说,只需要构造一个模拟波形传播的网装结构即可,一个节点可以接受多个方向的波,也可以向多个方向发送波,这就要求它具备多个输入、输出触突(也可以是电脑虚拟触突),以及对应的奖惩调节机制即可,激活多的脑区,在下次遗传时把网格变异成更密一点就可以了,以体现用进废退。这就是下面要进行的工作的大概思路,这是一个整体化的解决方案。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

与波的发散形成多个波峰相反,多个波峰激活会形成脑内的思维区成像(多个波峰激活会在原波源处成像,还有一种可能是在反侧镜像处成像),脑内的思维区就是人脑的CPU快速缓存区,它永远不停地被周围的波干扰,生成各种图像(或声音等),思维区内容永不停止地在变幻,思维成像区驱动着其它脑区,反过来,其它脑区又在思维成像区形成新的图像,这就是大脑工作的流程,在做梦时这个流程更清晰,因为没有了外部信号输入,思维成像区永远不会是空白,所以大脑永远不会当机。 波峰的激活会在思维区成像,但是这个成像是模糊的,这就是为什么大脑中永远不能想象出一幅高清画面的根源(脑部变异者除外)。 现在的问题是,思维区是位于感光细胞区和大脑存贮细胞区之间的,还是之后? 换句话说,视觉光信号是先到达思维成像区神经元还是先到达波峰区神经元? 从波的成像象度来说,个人倾向于前者(因为镜像这个条件很难满足,它要求波峰位于同一个平面上),也就是说外部信号必须先经过思维成像区之后,再传递给波峰(大脑的存贮细胞),在回忆时,波峰的信号必须原路逆向返回到思维成像区。这就需要与视觉、听觉信号相关的脑内神经元的信号必须是双向传播的。但我google了一下,生物神经元只能单向传播信号,如果是这样,就只能通过两个相反方向的神经元来模拟一个双向传导功能,这是个疑问。先把这个问题放下,对于这个电脑模拟项目来说,先考虑直接上双向,因为目标是找食,并不需要全盘照搬生物底层机制。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

当然了,这里的“波”只是个比喻,实际编程时是不可能也没必要模拟波在360度所有角度上的传播的,只能用n(可能少到1、2条)条放射线分布在一个小于180度的扇面上来近似代表波的传播路径,甚至可以用"横5格,竖2格"之类的网格比率来简化射线斜率的传播方向,两个射线的交点就是一个脑细胞存贮单元。而且可以用信号向右(水平方向的分量)传播表示波的扩张,向左表示波峰到原点的逆向信号传播。这适用于单维信号的输入和存贮,二维的(图像)输入还要再想想。 另外,神经元如果处在波的传播链中间,应该也具有波的叠加特性,即使一个神经元已被激活,当另一个信号到达时,它也应当具备将这个信号中继给下一级神经元的能力。 所以处于中点的神经元其饱和值很高(通过用进废退原则进化得来),处于信号末端的神经元饱和值低。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

痛苦、愉悦感觉细胞本身也可以视作一个波源,简单说,可以视为图像的一个象素点,和视觉信号发生干涉,在大脑里形成波峰。于是每当看到特定的钉子、刀、针等图像时,这些波峰区被激活,信号再逆向传回到信号源后会激活痛苦成像区(或者说痛苦感受区)。 痛苦区激活可能会回忆到缩手区(缩手区是一个运动细胞,但同时也是一个波输出信号发生源),当这个过程持续足够长或这个回忆检索收集到的信号足够强,就有可能超过缩手区运动细胞的执行阀值,真的作出缩手运动。类似地,看到蛋糕图像会激活愉悦区,愉悦区可能会回忆到伸手区,当蛋糕足够大或在我面前晃动时间足够长时,蛋糕就被抢走了。蛋糕吃到嘴后,大脑会分泌多巴胺奖励所有最近活跃过的脑细胞,好让下次的抢蛋糕反射链发生得更流畅一点。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

yeah!满300赞了,谢谢最后一位点赞的同学。 Copy link 萧萧雨声 萧萧雨声5 months ago

非常有创意的项目,代码中使用的随机数是普通的伪随机数,如果有必要可以考虑真随机数,这里有个网站可以获取真随机数https://www.random.org Copy link 920504_drinkjava2 drinkjava2owner5 months ago

谢谢提醒,不过神经网络应该不在乎伪随机数还是真随机数的,因为从它的需求来看,伪还是真随机数起到的作用是一样的,因为它不象密码一样需要防着人家去破解,只是需要一个均匀分布的随机概率而已。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

加了个新的眼睛,用nxn点阵形式代表,脑图也可以动态显示了。蝼蚁尚且贪生,青蛙到了边界就不走了,往生咒加上了。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

找食效率太低,又改回到用连接数量代替权值这个逻辑,看起来舒服多了。权值这种人为设计的算法居然比不过随机试错,失败。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

猜测:大脑的结构可能是一个分形结构,在宏观上具备的记忆、信号输入和模式识别、条件反射等功能和结构,在微观上也具有相似的结构,也就是说只需要设计出一套脑细胞排布算法就可以了,每一个低层的脑结构就是高一层脑结构的分形式复制,在活跃度高的节点上,分形式遗传变异复制发生的概率高(用进废退),最终形成一个复杂的树状脑结构。这个猜测的意义在于如果能够完成基本的青蛙脑的设计,完成基本的找食、分辨天敌(需要增加感光细胞)等功能,更复杂的如人脑就不用再去单独设计了,利用计算机的虚拟环境训练就可以自动让这个青蛙脑进化成更复杂的人脑了。算法是一样的,只是脑的总细胞数量和分形层数不一样而已。在蛋(Egg)里,只保存着一套算法,和一棵分形树的每个节点。打个比方来说,用最好的条件和环境来训练一群狗、一群猴子、一群恐龙,最终几十万年后它们都会进化成和人一样聪明,因为这些动物的受精卵里保存的脑的进化方案是一样的。 另外现在这个版本的找食效率不如4.12的提交,这可能是因为权值虽然可以简化模型,但悬殊巨大的权值可能抑制了新连接的建立,正在调试将4.12的逻辑照抄到RandomConnectionGroup中去,增加细胞数量,弱化权值自动调整范围。等到引入记忆器官和利用上 Happy器官的奖励信号之后再说。目前这个青蛙的任务很明确:1.遇到边界要掉头,而不是出界或顺着边界往下溜 2.发现并吃光Env中的所有食物。 第一个任务必须引入记忆功能,第二个任务必须进化出感光细胞非常多的眼睛,因为如果测试环境中只有一个食物和一个青蛙时,如果青蛙感光细胞很少就会根本看不到这个食物而饿死。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

当然,如果食物太多,眼睛的感光细胞可能不会进化出很多,例如矿井里的有一种老鼠眼睛基本看不到,不是因为大自然觉得即然用不到眼睛,就让它退化吧,而是因为有了眼睛的老鼠需要消耗更多的食物,在生存竞争中被淘汰。所以环境决定了生物的形态,环境决定了脑的进化方向。 Copy link 1320504_fzwise 码瘾少年5 months ago

nice job,这个想法我之前就想过,随机才是王道,再复杂的逻辑写出来的人工智能只是人思维的规律总结,算不上智能 Copy link xinyi xinyi5 months ago

求加微信xx17610115570 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

报歉手机坏了,正在等网购的手机到,等拿到手再加你,顺便也会把微信号挂在"关注我"栏里面。这几天可以在这里发评论或私信,我每天都会登录码云看看的。 Copy link 天崖 天崖5 months ago

忍不住推荐一个视频:https://www.bilibili.com/video/av54874176/。或者说是推荐这个up主。他的系列视频讲了一些神经网络和人工智能学习机制的科普,我觉得讲得太棒了。而且里面关于“意识是客观现象”的观点与楼主不谋而合。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

受教了,才知道草履虫的纤毛能感觉到外界输入,up主的生物知识很渊博。我是根据任务来假设生物必须具备某种信号处理能力,而生物学家可以直接从内因来解释生物为什么能实现这个任务。 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

加了个“初学者入门介绍“,方便Java零基础的人看源码。 Copy link Master_H Master_H5 months ago

厉害 Copy link Jackchars Jackchars5 months ago

看着就牛逼哄哄 Copy link 妖孽 妖孽5 months ago

大佬牛逼啊 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

微信号(yong99819981),但正在换手机,请过两天再加。这两天只是想聊天的请发在这里或私信。 Copy link 1489318_lnsooxd LnsooXD5 months ago

怎么加入你? Copy link 920504_drinkjava2 drinkjava2owner5 months ago

开了个微信"人工生命群”,可以在那聊。我没有QQ,你也可以直接在这里评论或发issue、私信。 Copy link 1727136_sunziren sunziren5 months ago

老弟,你QQ多少,我对你这个项目很感兴趣,咱们应该有的聊的 Copy link 891570_jdkhome jdkhome5 months ago

带我一个 Copy link 920504_drinkjava2 drinkjava2owner5 months ago

开了个微信"人工生命群”,可以在那聊。我没有QQ,你也可以直接在这里评论或发issue、私信。 Copy link

Copy URL 143517_vebai /vebaia day ago

等机器代替人类的那天,那还要人何用?人有七情六欲,还要吃喝拉撒;人失去价值之后或许到那时掌控人工智能的少部分人将会对普通人进行大清理了 Copy URL 920504_drinkjava2 /drinkjava2ownera day ago

预测未来人工智能如何对待人类,这是一个关键话题,我的看法是无测预测,只能盼望将来的智能比人类更有理智和尊严,不会无缘故伤害人类。所以我们人类要以对待人类的态度对待人工智能开发,不要伤害他。问题是这只是我的看法,其它国家也许有人有不同的看法,也许他们的目的就是开发人工智能上站场,这会给人类带来巨大灾难。为了不让这发生,最好的办法就是我们自已在人工智能开发上先走一步,夺取话语权。 Copy URL 2189015_starrynightblue /StarryNightBlue2 days ago

西部世界的感觉 Copy URL 632560_finch1 /Finch12 days ago

想法不错,我之前也有一样的想法,大概是模拟生物的所有行为。实际上科学家曾经也有直接模拟神经网络中每个神经元的想法,不过这显然是不现实的。 Copy URL 302533_huhangfei /hgflydream2 days ago

支持创新 Copy URL 爱家 /select12 days ago

一开始我以为你在吹牛,后来发现是真的。。。。 Copy URL Admin /czymorg_admin2 days ago

牛B,为啥不从一个小蝌蚪开始呢。 Copy URL 3449_simplecode /simplecode2 days ago

作者是不是学生物的? Copy URL 920504_drinkjava2 /drinkjava2ownera day ago

不是,如果有学生物的加入指导会有很大帮助,因为它本质上是模拟生物,只不过去除了一些生理功能,只关注脑结构。 Copy URL 125168_matols /matols2 days ago

想法真好,程序推演。其实现在的所谓的人工智能也是一种意识形态。 Copy URL 920504_drinkjava2 /drinkjava2ownera day ago

是,因为意识只是表象,所以Alpha狗这种围棋程序也可以说是某种意识活动现象,只是它还不能表现出“自我意识”这种现象。 Copy URL amoonhappy /amoonhappy3 days ago

感觉有点走偏了兄弟。做虚拟世界让其中的“矩阵”进行变化,这是计算机能做到极致。

计算机只能用n维度的矩阵的变化模拟一个功能F。输入是x,结果是y,功能或者现象就是F(x)。

建议先从Python开始学习深度学习,了解这个原理再看看现在的AI离强人工智能有多远。

顺便,所谓的记忆,在深度学习机器学习里已经有了,就是神经网络的模型权重数据 Copy URL 920504_drinkjava2 /drinkjava2owner3 days ago

一方面是我数学差,算法看不懂,另一方面也怕干拢思路,有意不去看。现在会算法的人太多了,也不缺我一个,感觉有点象侠客行里大家都识字,只有石破天不识字,在别人眼里的蝌蝌文,在石破天眼里就是一条一条的蝌蝌而已,别人都在讲算法,而凭我的能力只能研究一个个脑细胞了,试着把它们搭起来,能搭起来最好,搭不上就算是自误自乐吧,也不防碍别人。我觉得这样瞎琢磨也挻好的,也许稀里胡涂就进化出一只青蛙出来呢(我以前的观点是有些大脑逻辑是不能用简单的算法来描述的)? 如果哪天卡住了(例如现在发现没有记忆功能和模式识别功能),再去学习算法不迟,看看能不能找到思路。更何况我相信这条路大的方向应该是对的,从解剖和模拟蚂蚁、青蛙的脑着手,逐渐搭建更复杂的生命体,但没想到二十年过去了,走这条路的人并不多,甚至神经网络研究依然陷入误区(投入巨资开发自动驾驶、自动翻译这种不可能完成的任务,我在二十年前就预言过不可行),害得我一个纯外行也忍不住要下水了。老实说我并不擅长做研究,没钱没设备没精力,当个预言家或者说空想家更合适,问题是这个社会不搞点实际成果出来,空想家是没人理的,除非你是马云或李彦宏。 Copy URL 660624_garinhan /garinhan2 days ago

算法相当于人为加了算法限制,写死了程序,作者需要的就是不可预测的结果,最好任何东西都不干预结果 Copy URL 920504_drinkjava2 /drinkjava2owner4 days ago

每个Group的同类脑细胞,触突的权重是个重要参数,利用生存竟争来自动调整权重值,把这个最脏最累的活交给电脑就行了,无须人为参与。 Copy URL 920504_drinkjava2 /drinkjava2owner17 days ago

这个项目暂停了下来,是因为目前在做jSqlBox的分布式事务,这个世界有点疯狂,一个机械工程师要利用业余时间解决分布式事务结合分库分表问题,这个问题有点复杂,但是相比与构造Frog的大脑来说,只能说是愉快的热身锻炼了。时间很少,抽不出时间来搞编码,只能打打字了。 目前Frog缺少记忆能力,再多的循环次数、器官的数量对它的进化也没有帮助,下面的编程思路大概是:要实现"任意两个相邻细胞群的活跃,则新建一个新的细胞群,用来充当这两个细胞群之间的纽带“,这个机制可以实现记忆和模式识别两个功能。开始要吃内存了,细胞群是从内存中新建出来,而不象动物脑利用大量的冗余细胞转化来,细胞群本身不参与遗传,但是它占用的总内存空间这个重要参数会参与遗传进化。 原来的“CellGroup”改名为"Connection",用单个的连接(含强度、分布方式,正负)来代替一群连接细胞。Cennection不再参与遗传和进化,原则上也不再采用随机分布(死了之后才知道那些是正确的,效率低),而是在每个Frog的生存周期里动态产生。它的产生只取决于两个细胞群时空上相邻的兴奋,强度和方式由食物和痛觉器官来调节。视觉(感光)细胞、痛觉(接触边界)、饥饿细胞、愉快细胞(进食后)、运动细胞这些特殊的细胞或功能依然称为器官(Organ),并且从下个版本开始,允许器官的数量、位置参与遗传和进化。例如,目前视觉功能是由单个器官组成,内含四个感光细胞,以后会改成感光区(即视网膜)大小是桓定的,但是内部的感光细胞(器官)数量、位置会参与遗传进化。 Copy URL 920504_drinkjava2 /drinkjava2owner7 days ago

编写过程中发现思路又跑偏了,“细胞群是从内存中新建出来”这句话不对,不是在青蛙活动时动态创建脑细胞,而是每当一个Frog新建出来时,由CellGroup负责排列一组固定数量的细胞群在一个矩形区内,矩形区的大小可以大到整个脑,也可以小到单个细胞。每个Frog的细胞数量一旦创建就不再变化了。变化的是CellGroup本身,CellGroup就象一个播种机,一旦播好种就撒手不管了。Egg里存放着一组CellGroup,CellGroup可以参与遗传、变异(分裂、尺寸、参数变化),所有的算法,都可以抽象成一类CellGroup,算法本身只负责细胞的排列,不负责细胞的活动。Egg负责播种机的遗传和进化。 目前“随机连接两点”这种逻辑,可以说是CellGroup的一个子类,是一种最简单的算法。 另外给大自然点个赞,在没有记忆单元的情况下,它随机分布、自然淘汰的结果是自动选出了最合理的运动方式 "先往一个方向跑,如果有食物在身边就拐个弯"。虽然是个模拟的生命,但它这个逻辑如果发生在原始真实海洋里,是有可能几年之内淘汰所有不会运动、或是只会往一个方向运动的原始微生物,充斥整个大海的。 Copy URL yzyGitee /yzyGitee19 days ago

自我意识和智能是两种东西,有智能不一定有意识。没有意识的人工智能也可以完成复杂的任务。比如现在AI可以打DOTA,谷歌在研究可以同声传译的AI。 李理认为“意识不过是类似于DQN里的Replay Buffer,并无特殊之处”。我认为要发展 强人工智能 是需要意识的,至少要有个生存的动机。足够强大之后就可以自我修改、自我进化。 我去年在十日内观的时候,脑子里胡思乱想,我产生一个想法,用南传佛教对心的解释的理论(受、想、行、识是身心五蕴当中的心的部分)来构建人工智能的核心。因为佛教的观点认为自由意志并不存在,人的身心反应都是自动完成的,“自我”是个幻觉。但是这要修行到很高的境界才能实证到五蕴是怎样运转的。但是可以借鉴他的理论。 Copy URL 920504_drinkjava2 /drinkjava2owner19 days ago

意识就是一种现象,只要实现了类似人脑、动物脑相似的逻辑,外在表现相似就可以了,因为"证明"意识存在的唯一方法就是从它的外在表现判断,也就是说"表象就等同意识"。佛教"无我"的观点和这个很相似。但现代社会不讲佛教,糟粕太多。正如我试图简单地从0、1组成的电脑代码里来演示生命现象是可以人为模拟出来的,生命现象复杂到很高的程度时,就会表现出非常复杂的“自我意识现象”。 李理认为“意识并无特殊之处”是正确的,但Google研究"同声传译"这个目标是错误的。我在20年前就提出“人类应把构造生命体作为最迫切的任务,并投入大量人力、物力”,因为构造生命体是所有问题的通解,"同声传译"如果成功达到人的翻译水平,说明它表现出了意识现象,实际上也就实现了构造生命体,实际上也就能解决所有人类其它问题。所以应该放下所有具体研究(如自动翻译、自动架驶等),集中精力专攻人工生命,而这可以从模拟草履虫、蚂蚁、青蛙的大脑开始。 Copy URL yzyGitee /yzyGitee18 days ago

你这是要推动奇点的到来。创造可以自我升级的通用人工智能是一个伟大的目标,是一切的终结,也是一切的开始。 但是你在虚拟的环境中训练AI,那么这个AI也要依赖于这个虚拟的环境,难道你要先做一个完全的虚拟现实世界吗。 但是你这个项目足够有趣。元胞自动机在我上学的时候(大约十年前)了解到的。去年的时候我在张江教授的视频里了解到创立人工生命学科人是受到生命游戏的启发。你这个也有点像是生命游戏。 我有个想法,可以先搞一个像vector那样的家庭陪伴机器人,这在未来一定很有需求。这个机器人在智能上要比vector强大的多,当然现在在商业上还无法实现消费级产品的普及。Anki前不久才关门。 你要创造的这个 强人工智能 一定要与真实的环境接触,否则就只是虚拟环境里的一个游戏。或者可以让AI接触网络,可以自由的在网络空间里游荡、繁殖。不过这两个就不是一个东西了,一个是实体的机器人,一个是赛博空间的代码,不过以后也许可以融合,我现在想这些还是有点早了。 Copy URL 920504_drinkjava2 /drinkjava2owner17 days ago

目前不掺入任何"有用"的目的。在模拟生命现象时已经做了简化,用能量的多少来判断下蛋权,而不是用寿命、互相吞食等方式。因为要集中精力在大脑的结构,这是重点。 不需要构建完全的虚拟现实世界,因为即使很简单的虚拟世界,也可以证实它能表现出复杂的智能,这就够了。到目前为止,只是简单的几行代码演示了找食现象,就让人感觉它"活"了。实际上棋类也是一种虚拟世界,但是它的边界更明确,规则也很少。 “与真实的环境接触”是必然的,也是它的最终目的。这也是为什么强调Frog中不能有硬编码的存在,因为硬编码会破坏它的进化和学习机制,在开放式的真实环境中,所有硬编码都是bug。例如如果一个自动架驶汽车中存在一个"看到前方右边有停牌就要停"的硬编码规则,那么在真实世界中肯定有人会利用这个bug,举个假停牌把车子骗停(然后抢劫),然后程序员一看不对,又把硬编码规则改成“如果看到小偷模样的人站在停牌边就不停"。。。然后就没完没了,程序越改越复杂,最后以失败告终。 Copy URL wangchl /qq131942649326 days ago

博主,能分享一下你的逻辑资料或者笔记吗,感觉好牛X,想参考参考 Copy URL 920504_drinkjava2 /drinkjava2owner25 days ago

没什么资料或逻辑性的东西,都在这里了。我是民科一枚,跟着感觉走,想到什么就记下来。神经网络强调实践,理论吹上天也没什么用。最近才开始编程,可以说神经网络还没入门。很久以前做过一个造人论坛, 都是一些杂乱的想法,你要有兴趣也可以看一看。 Copy URL 920504_drinkjava2 /drinkjava2owner28 days ago

关于记忆和逻辑能力: 记忆是建立在模式识别基础上,就是反复发生的兴奋最后都会导致产生一个新的特定区域(或器官)的兴奋,例如方形、圆形反复在视网膜上出现,就会激活对应"方"、"圆"的神经兴奋区,初生的婴儿刚看到方形时,这个“方”形的区域还没有形成,但多出现几次,就会产生了,这个过程不存在逻辑性,可以用现有的神经网络模式识别算法解释。模式识别是记忆的基础。 记忆能力(回忆)和逻辑能力本质上是一样的,就是时间、空间上有关联的两个区域(器官)兴奋,必然会产生新的神经元连接将这两个区联系在一起。如果这个过程伴随着痛苦输入或快乐区兴奋,这个联系的方式(正、负)和强度将与普通的联系大不相同。在生物脑里实现方式是通过高密度的空白神经元转化为触突间有联系的神经元实现,在电脑里可以作弊,只要两个器官区域发生时间顺序上的兴奋,就可以创造出一条新的神经联系给它们。记忆和逻辑能力看起来很相像,本质上是一样的,区别在于逻辑能力与输出兴奋区的联系多,它更直接地影响到Frog的运动。 Copy URL 920504_drinkjava2 /drinkjava2owner28 days ago

最高等的逻辑能力,象人脑或高等动物脑一样,有一块思维区,象一张白纸一样可以生成虚拟画面(或声音),这个虚拟画面,在清醒时被称为"思考区",在做梦时,被称为“虚拟现实”。这个虚拟画面相当于人脑虚拟的输出、输入器官,作为输入器官,它起的作用与眼睛类似,在做梦时就完全取代了眼睛的输入功能。作为输出器官,人类没什么贴切比喻的。倒是海豚据说可以将头脑中的景象用超声波发给第三方,海豚的这种能力相当于将头脑中虚拟的电影画面传递出来。 Copy URL 920504_drinkjava2 /drinkjava2owner28 days ago

自说自话了一番,然后发现“器官”-“联系”这种模式是不成立的,因为所谓的“器官”,除了天生的感觉、输出区外,大多都是后天形成的,用“兴奋区”这个词来形容更准确,而且它与眼睛的关联无比密切,可以说整个大脑的工作都围绕着眼睛(还有耳朵)产生的后天兴奋区工作。所以建立一个整体式的脑模型更合理,要一步到位。而不是建立一个个“孤岛器官”+"联系"这种模式,因为没有眼睛,哪来的这些“孤岛器官”? 至于虚拟思维区,也可以看成是眼睛的脑内缓存区,与眼的关系更是密切,(很多时候思考需要打草稿画出来,就是因为能帮助这个虚拟思维区建立更清晰的影像。) 所以要建立以眼为中心的神经网模型。 兴奋区的产生很随意,只要多个兴奋区同时影响到一个空白区,则这个空白区就会变成一个新的兴奋区,兴奋区如果长时间不刷新,则又会退化成空白区(神经元再次激活需要更多的能量), 这个机制可以同时解释模式识别和记忆的原理,至于逻辑功能,则由兴奋区之间的联系来解释。 器官可以遗传,像眼、耳、痛觉、饥饿区都属于器官,器官数量、器官内的细胞数量、网络结构规则可以遗传,器官之间天生的神经元联系(本能的条件反射)也可以遗传。但是,脑内的兴奋区是不可以遗传的,因为兴奋区是后天动态形成的。 Copy URL 920504_drinkjava2 /drinkjava2owner28 days ago

发现随机生成的神经连接全都落到器官上了,野外的神经连接一个也没成活。与其如此,干脆下面的逻辑改成随机生成的神经连接只允许两头落在器官上,以加快进化速度。 以后的重点是连接和器官,器官可以参考算法。连接的形式可以考虑平均分布、随机分布、局部分布、等分分布、全、半镜象分布、旋转分布、负连接(连接会产生负信号,抑制被连接的神经元兴奋)等等,反正不合理的都会被自然淘汰,程序里只管往里面塞入各种垃圾、各种可能性,最后活着出来的Frog肯定是从中间选出最合理搭配的那只。 昨天儿子生日,说好给他买个锤子(哑铃)锻炼身体的,结果买了个锤子。作为补偿,把这只青蛙命名为Sam作为他的生日礼物,现在不告诉他。希望将来的某一天,两只Sam能在一起愉快地聊天。 Copy URL WJ /wangjian1013a month ago

感觉很厉害,除了java还需要什么别的技术吗 Copy URL 920504_drinkjava2 /drinkjava2ownera month ago

就是纯Java。需安装Java8, 还有Maven好让它跑起来(run.bat)。 Copy URL 首页 /z1653775774a month ago

其实运行下来发现能产生的智能太有限了,没有敌人,应该有肉食性敌人并且敌人也可以进化,然后青蛙也能有反击手段之类的,复杂点的条件对进化有利吧,这样运行也只是比谁更会吃,变异作用就不大了 Copy URL 920504_drinkjava2 /drinkjava2ownera month ago

万事开头难,“一步一步来”很重要。目前它的内部缺少记忆单元和逻辑判断单元,只有将这两类单元作为器官加入参与用进废退、自然汰淘,才有可能随着环境的进化,脑器官会自动变得越来越大,越来越复杂。目前过早地加大环境复杂度就象先头说的"如果把一群青蛙扔到猴子的模拟环境中,则所有青蛙都会被自然淘汰掉,项目就无法进行下去了"。正在研究如何加入这两类单元。虚拟环境的进化很重要,但内因(脑结构)更重要。如果你有兴趣,可以改一下眼睛的数量(Egg.java的最后几行),可以发现无论眼睛有几个,它的智能程度都差不多,这是它的内因决定的,因为它没有记忆和判断器官,再多的眼睛、再复杂的环境、再多的运行次数也对它的进化也没有帮助,因为这个程序目前没有“自动产生新器官或新的神经元联系方式”这个逻辑。 顺便说一下,所有记忆、判断以及模式识别单元都不能出现If-Then 这类程序硬编码,而必须用神经元联系的方式模拟出来。 我梦想哪一天,一旦所有器官都加上了,就不用再继续编码了(小小的DNA里就藏着这个逻辑),Frog的大脑会自动随着环境的复杂度进化(象婴儿一样,从只有吃奶反射进化到有自我意识表现。婴儿如果每天只给它奶吃,那么他长到老也只会干一件事:吃奶)。 Copy URL kzquu /kzquua month ago

希望作者早日功成圆满, 等那天我要把意识放到程序里去,然后嘿嘿嘿嘿 。。。 Copy URL 920504_drinkjava2 /drinkjava2ownera month ago

谢谢! 最近卡住了,需要整理一下自已的思路,并学习一下算法。目前处在分岐点,到底是恁感觉往前摸,还是学习现成的算法,将一个个算法做为器官引入,随机的分布的神经元只在器官之间分布作为联系。 其实这个项目的意义之一就是要证明"意识不存在,意识是一种现象而已",可以说,"把意识放到程序里"已经实现了,或者说,永远也不可能实现,因为意识是不存在的。目前这个程序的表现,比预想中的要好一些,完全随机分布的神经元,自然淘汰的结果是表现出了一定的智能现象。 Copy URL 882772_liinsert /liinserta month ago

我觉的新算法可以当一个新的熵引入,当发展到一定程度时,环境熵值逼迫生物进行的新的熵值诞生,我看了动图效果,环境熵值为变少的食物,加入“眼睛”熵值导致新诞生的生物有了更多适应性。我的理解为意识可能不存在,但是可能是某个生物本性导致我们做出了适应环境熵的选择,表现为意识。在此例中我认为可以将“自私性”作为生物本能。为了更好的适应环境熵值的变化,生物表现出了新熵值的突变。 Copy URL 920504_drinkjava2 /drinkjava2ownera month ago

嗯,人脑的运动转化为程序代码,包括这个虚拟环境,这算是一个熵的转移吧。这个程序系统本身倒是封闭的,在程序开始运行的一刻起,熵值就恒定了。所以虚拟环境的进化也很重要,要随着脑结构的进展不断调整,不断提高整个系统的熵值,直到让这个系统与真实世界接触。 Copy URL 920504_drinkjava2 /drinkjava2ownera month ago

神经元的连接方式除了一对一的连接之外,还有三种经典方式,即发散式、聚合式、环式等,使得神经冲动能够以各种方式传导。 发散式 在发散式连接中,一个神经元的轴突通过它的末梢分支与许多神经元(胞体或树突)发生突触联系,这种联系使一个神经元的活动有可能引起许多神经元的同时性兴奋或抑制。 聚合式 在聚合式连接中,许多神经元的神经末梢共同与一个神经元发生突触联系。这样,同一个神经元可以接收许多其他神经元的影响,这些神经元可能都是抑制的,也可能都是兴奋的,或者一部分是抑制的,一部分是兴奋的。他们聚合起来共同决定突触后神经元的状态。这表现了神经兴奋在空间和时间上的整合作用。 环式 在环式连接中,一个神经元发出的神经冲动经过几个中间神经元,又回到原发冲动的神经元,它使神经元在这个回路内可以往返持续一段时间。 摘自: https://baike.baidu.com/item/神经回路 Copy URL 920504_drinkjava2 /drinkjava2ownera month ago

自动驾驶和机器翻译类似,都是不可能完成的目标,或者说只能永远接近,但不能达到完美,如果认不清这一点是要吃大苦头的。因为反证,如果能达到象人一样完美驾驶,例如有小偷举个停牌,打算抢劫,这时候如果车子象人一样判断出这是个假停牌,必须冲过去,那么,恭喜,这个车子已经聪明得象人一样了,它应该具有人权了,如此聪明的“车人”干别的事,比如说设计建筑,肯定也比人历害,也就是说从社会地位上来说,通常是应该人来给这个车子当司机,而不是车子给人来当司机了。 Copy URL 920504_drinkjava2 /drinkjava2owner2 months ago

梦里也会学习,这句话是一点也不假的。 一分钟前我正在睡觉,刚被人吵醒,所以梦境很清楚,虽然只记得后半段。梦很荒诞,有多荒诞?场景,发现一个蚂蚁窝,大蚂蚁和一群甲虫窝在里面, 甲虫受到攻击,会从肚里里裂出一排绿色洋辣子样的虫,然后这些虫会参与投票,然后电视上正在播放,这次投票有许多非法票,但是不用担心,这些虫没有ID,所以这些假票很容易被排除。。后来我成了一个吊车工人,研究了怎么系好安全带,然后被往上吊,然后,公司要买台机器,和其它公司发生了官司,一群人我作为合同签定者是要到场的,其它人坐在我的下方,我一个人就这么坐在吊着的椅子里,到了官司现场。然后就开始扯皮....,其中我发言,需要表达一个意思,我只是临时租用对方的叉车,这句话需要用到两个英语单词“叉车”和"变压器",我想了一会,想到了并说出来,然后继续扯皮...,正在扯皮时,公司买的设备到了,一群小伙子扛着机器,从一个长长的斜坡上把机器往平台上抬,机器长得象是一段楼梯,大约30个搬运工抬上去,然后机器安好了,机器又成了正常的数控机床模样,安放在大约30x30米,离地1.5米高的铁平台上(象钻井平台),我心想,这平台太大了,于是平台变成了大约10x10米,然后,被吵醒了。 这个梦的重点是什么?别的不说,至少复习了“叉车”和"变压器"两个英语单词,也就是说,梦里面英语能力得到了加强。 梦就是虚拟现实,脑的思维能力和清醒时是类似的,清醒时脑海里的虚拟现实比较模糊,也比较合逻辑,梦里的虚拟景象比较清晰,但不合逻辑,想到什么就造出什么来。 Copy URL wslianbo /lianbo2 months ago

感觉好屌的样子,看不懂,只能默默点个赞 Copy URL 920504_drinkjava2 /drinkjava2owner2 months ago

谢谢!其实我也是个门外汉,空想和编程完全是两码事,空想能从开头(单细胞诞生)一直想象到结尾(人脑出现),编程则只能走一步看一步了,码不准就卡在哪里动不了了。 Copy URL 920504_drinkjava2 /drinkjava2owner2 months ago

一文看懂25个神经网络模型: https://blog.csdn.net/qq_35082030/article/details/73368962 当然了,我是看不懂的,不明觉历,需要脱产学习去了。无知不是好事,想象力不能代替学习,与其苦思,不如拿来主义,这些现成的模型是宝贵的财富,而且有些借签了生物脑的结构。大自然在人脑中可能已经自然存在了这些模型,但是它是怎么生成的,进化步骤是怎样的,很难说清楚,为了节省生物学、考古学家的精力,我们可以试着用这些算法模型去拼凑出大脑,这是一个逆向工程,难度太大,所以先从简单的细菌、昆虫、青蛙这种脑结构开始,即好拼,也很容易检验成果。 一个设想:将这25个模型(或先选其中几个)当作器官一锅烩加进来,数量、位置、大小、以及每个器官的内部神经元规模都参与遗传、变异、用进废退自然竟争,如果有用,自然选择自然会留下有用的器官。每个器官之间的联系可以考虑用漫天撒网的方式随机分布神经元来联系。可以用黑盒子方式直接引用算法(这是允许的,只要没有打破变异、遗传原则),也可以用原生frog脑细胞来直接实现这些模型,个人倾向后者。 Copy URL 920504_drinkjava2 /drinkjava2owner2 months ago

今天早上上班去,门口一只兔子抬起头看我一眼,继续吃它的草。我琢磨这家伙在想啥捏,低头,吃草,看我,这动作难度太高了,我可实现不了。立马感觉自已的智商不如一只兔子。 Copy URL 山神 /mountaindeity2 months ago

默默点个赞,支持作者 Copy URL 920504_drinkjava2 /drinkjava2owner2 months ago

谢谢! 也顺便谢谢其它默默点个赞就走的同学们。 Copy URL 首页 /z16537757742 months ago

运行出错,找不到或无法加载类,环境变量也没问题啊…小白不太懂,方便发布个编译好的exe吗? Copy URL 920504_drinkjava2 /drinkjava2owner2 months ago

好象忘了说运行环境了,下次更新时要添上。需要安装:JDK8, MAVEN, GIT,并设定好环境变量。然后用GIT clone https://gitee.com/drinkjava2/frog把它当下来。 然后双击run.bat就可以运行了。 exe方式不可取,不安全也太落后了。 Copy URL 920504_drinkjava2 /drinkjava2owner2 months ago

到目前为止,自然选择的威力已经体现出来了,但缺点也很明显,就是不够智能。下面要进行脑结构更多的人为设计了。 目前主要问题:利用自然选择,从饥饿区及视觉区直接短路到运动区,不具备智能性。要实现:1 记忆 2条件反射的形成(逻辑功能) 这两个主要功能,就必须让Frog的脑结构不能固化,而是每一轮中都动态生成,也就是每个青蛙从诞生到死亡都要经历一个脑结构从无到有建立的过程,而不是简单地从上一代继承下一个固定结构。另外目前这种漫天散网,随机分布神经元的方式即不高效,也不合理(跨度太远的神经元在生物体和并行硬件上都很难实现,不合理),初步设想要设计成各个器官只激活附近的空白神经元,空白神经元激活后再激活更远的神经元,直到从输入到输出器官形成链路。脑之间充满了大量的空白神经元以供记忆(模式识别)和传导作用,可以称这些空白神经元为“以太神经元”。模式识别就是空白神经元越传越远的过程中开始分化成远处一个个特定小区的活跃,例如"我"对应一个声波区,"们"对应一个声波区,"我们"又对应别一个声波区。 另外这两天想到一个重要结论:痛觉是具体的神经元的强烈的兴奋传导,而(奖励)快感只是化学物质的分泌,可以影响一大片神经元,但强度很低,所以快感要多次重复才能加强(条件反射),痛苦却强烈而快速地传播,打断经过路径上所有正常的神经链路。 Copy URL 920504_drinkjava2 /drinkjava2owner2 months ago

两个近期内活跃的神经元,不管有没有奖励,只要经常地有规律出现,必然发生关联,这是神经网络的基本功能,与进食奖励无关。进食奖励发生在Try-DO决策之后,决定Try到Do之间的(正或负)关联强度。脑工作在串作模式,要引入一个类似CPU的逻辑器官。 Copy URL 920504_drinkjava2 /drinkjava2owner2 months ago

眼睛加上了,自然选择也把眼睛给选中了,但也只比随机运动好一点点而已,它直接把眼睛和运动区短路了。看到食物和向它走过去完全是两个概念,Frog同时在两个方向看到食物就不知道怎么处理了(不能有硬编码)。狗看到食物会向它走过去,这是一种复杂的、后天形成的条件反射,必须有进食奖励才能建立,而进食奖励机制目前还没引入,只靠自然淘汰。自然淘汰是上帝的审判,死后才进行,而条件反射必须在青蛙还活着时就要建立。人类的进食奖励通过多巴胺将两个近期内活跃的触突绑定,电脑可以将多巴胺作为一种器官引入,多巴胺器官的数量、位置也允许放在蛋里去进化。 Copy URL 小李子 /12861302932 months ago

一直默默的关注,给你点个赞 Copy URL 920504_drinkjava2 /drinkjava2owner2 months ago

谢谢! Copy URL 920504_drinkjava2 /drinkjava2owner3 months ago

加入只保留激活过的神经元、两个蛋相加加成一个蛋(模拟受精卵)功能。眼睛还没搞,逻辑倒越来越复杂。 下面要开始加眼睛,短期目标: 1.根据周围食物的出现,调整运动方向("饥饿->随机运动"这种天生本身反射被"看到食物->随机运动->进食奖励===>看到食物->向食物运动"这种后天条件反射代替),不饥饿也要进食,以获取进食奖励(快感),因为是虚拟生命,撑不死,可以一直吃啊吃。 2.避开障碍物,等它出现眼睛后,看到看到屏幕上出现正方形要躲开,要引入模式识别算法了,而且要通过自然选择实现算法,而不是通过硬编码的方式,虽然只需要认识一个正方形,但也算是模式识别了。负反馈(痛觉惩罚条件反射)也要引入了。 Copy URL 920504_drinkjava2 /drinkjava2owner3 months ago

加视觉之前,先做两个事: 1,加一个显示脑结构的图,分别用不同颜色的方框表示视觉区、饥饿区、进食奖励区和运动区(已提交) 2.删除随机运动硬编码,改成由hungry感觉区驱动随机运动条件反射(已提交) 从脑图上可以清楚地看到,随机变异、自然淘汰、以及足够多的个体数量这几个条件结合下,就有可能自动锁定住运动区。意识的起源并不神秘,根据混沌原理,三个变量互相影响下,整个系统就是不可预测的,而生物体的脑细胞又何止三个,人脑有100亿个神经元,这个复杂的系统表现出复杂的适应和改造自然的(意识)行为毫不奇怪。 Copy URL 920504_drinkjava2 /drinkjava2owner3 months ago

如果饿了(energy<10000),且神经元的输入区位于hungry感觉区,则该神经元的输出激活,如果激活区刚好位于运动区,则Frog移动。这是最原始的运动,将来这个运动会被后天形成的"视觉-运动-进食"这种条件反射抑制,但是,如果没有运动,后天的条件反射也无从谈起,所以说先天形成的反射是后天的条件反射形成的基础。 Copy URL 青崖白鹿 /qiubaicxy3 months ago

目前没接触过人工智能, Copy URL 449029_link2t /link2t3 months ago

规模太小。复杂度太小。产生不出多少智能。受限的环境,只能产生受限的智能。 Copy URL 920504_drinkjava2 /drinkjava2owner3 months ago

完全同意,这就是我说的"将所有研究神经网络的资金人力全部转到这个方向。。。",如果能有一台超级计算机给我当玩具就太幸福了。但在此之前,我得证明这个项目在小型电脑上的可行性,取得一定的研究成果(表现出复杂的智能现象)才能取得人们的信任啊。 Copy URL 449029_link2t /link2t3 months ago

openAI 项目里 有三维仿真环境。带关节的人类模型,四足机器人模型。迷宫等等。可以试试在那个项目上扩展。据说最近 openAI 搞出 自主探索AI,行为比较有效率。 Copy URL 920504_drinkjava2 /drinkjava2owner3 months ago

谢谢提供外部资源,但Frog的思路和openAI不一样,它不需要了解算法,完全模拟生物脑的诞生进化过程来让电脑自动生成脑结构。如果Frog脑结构本身出现了固化的代码,那说明项目出了bug,需要改正。从算法着手还是从进化着手是两个方向。当然它们之间是可以有交集的,进化可以直接引用算法的成果,将算法当成它的一个输入输出器官,实现生物脑-代码的结合,或是在进化时有意促进大脑向算法进化,算法也可以借签生物脑的原理进行改进。但是因为算法比较复杂,我水平低,理解不了,而且算法与生物脑冲突(算法不具备自改进功能),所以目前先谢绝一切外部算法,一步一步走下去,看看依照进化思路试下去,最终会走到哪一步。理论上来说,用进化的方式,只要电脑够快,总有一天能实现造人的目的,因为它的总体思路是模拟大自然进行优胜劣汰,而人类又比大自然聪明,可以有目的的设计各种方案加速这个优胜劣汰过程,例如,生物眼睛的诞生,可能需要上亿年的进化,但在我手上,可能只需要几周时间就可以模拟出来了。需要超级计算机主要目的不是模拟环境,而是因为在项目后期神经元数量太多,会超出家用电脑的模拟能力。 其实人工智能的前景和危险我在二十年前就提出来了,还曾专门做了个网站宣传。可惜它的进展比我想象的要慢得多。作为一个预言家,最大的尴尬不是预言错了,也不是必须活到够老,而是要亲自上阵去实现自已的预言。研究造人,不是为了造人而造人,而是为了掌握机器人权法的话语权,如果机器人权法没出来之前,有自我意识的机器人提前诞生,甚至被送上战场,那将是整个人类的悲哀。 Copy URL 920504_drinkjava2 /drinkjava2owner3 months ago

人类需要机器的一个promise,如果机器有自尊的话,是不会打破这个承诺的,但前提是人类还没有伤害过机器人。 Copy URL 449029_link2t /link2t21 hours ago

openAI 项目里 有三维仿真环境。openAI 项目里 有三维仿真环境。.....就像我前面说的。受限的环境,只能产生受限的智能。,你需要一个复杂的 仿真环境。不然 生产不出多少智能。做个类比:openAI的仿真环境 好比是 高等数学世界。你的 实验环境 是四则运算世界。现实世界估计是 量子学世界。环境复杂度不同,所能产生的智能 存在不同的上限。 Copy URL 449029_link2t /link2t21 hours ago

再比如说,实验环境 内的生命,没有手。如何才能进化出 手拿工具的行为?永远不能。,又比如二维环境里 生命有几条 触须(手),能够“旋转”工具,却永远做不到 “翻转”工具这个行为。因为二维世界里没有“翻转”。 Copy URL Once疯子 /chg5229750153 months ago

作者,我想加入这个项目。你这个项目的目标也是我一直想要做的。不知道加入需要哪些条件? Copy URL 920504_drinkjava2 /drinkjava2owner3 months ago

没有条件,但是有明确的任务,这个项目是由一个接一个的任务推动的,有兴趣的可以一起来完成。目前下一个任务是激活它的视觉区,也就是说食物如果位于它的附近,能够激活它的视觉区,即脑内坐标0,0附近,半径5到30(暂定)个像素点内的神经元的input,并且如果如果移动方向、进食、视觉发生在短暂的一段时期,进食奖励将加强视觉驱动运动神经元的输出触突(outputs)的条件反射。谁先完成这个任务,提交pull request即可,这几天,我也一直在思考这个问题。关键是不能有硬编码,视觉到运动神经元的反射形成,是由大量的随机神经元分布、进化、淘汰而自然形成的,并且可能会由一群中间神经元达成。如果这个目标能完成,就是一个非常了不起的成就。会主动觅食的Frog当然会在生存竟争中胜出。 当这个目标完成后,我们再考虑一下个目标如避开障碍物等... Copy URL 920504_drinkjava2 /drinkjava2owner3 months ago

这一步是很关键的模拟眼睛的诞生。从它要完成的目标来看,这个由自然淘汰、竟争中生成的眼睛只能区分方向、远近,暂时不能区分形状。因为可以用反推法,即使区分出了形状,对它捕食也毫无帮助,所以区分形装这个能力还不会在竟争中胜出。 Copy URL zxulong /zxulong3 months ago

非常同意你的观点"意识不是一种存在,而不是一种现象",你这个说法应该是广义的定义,狭义上而讲,意识是一种自我映射,说白了就是大脑自己制造的一种幻象。 还有我认为意识是一种动态的状态,应该是连续的,持续的,电影里上传意识,或者把自己意识复制到克隆人里,从复制的一刻,就已经是两个实例,两个意识了,即使他们复制那一刻很相似,之后就是两套系统了。 对你的项目非常感兴趣,会研究下,而且以后希望有机会参加你的项目 Copy URL 920504_drinkjava2 /drinkjava2owner3 months ago

欢迎!关于复制意识,你的说法和我在96年想到的有点类似,见 https://zhangrex.neocities.org/xy.htm 最底下关于生命树等幻想 Copy URL dwing /dwing3 months ago

受此项目启发, 我觉得我可以只实现质子,中子,电子等基本粒子的特性, 然后模拟出一个宇宙, 至于生命就更不在话下了 ( ̄▽ ̄) Copy URL Once疯子 /chg5229750153 months ago

你说的很对 Copy URL Colin /chlk1233 months ago

有点意思 Copy URL 660624_garinhan /garinhan4 months ago

兄嘚,你的脑洞不是一般的大,挺好 Copy URL 喜欢自在 /lshfong_admin4 months ago

生命的起源不是从眼睛的开始的,而且现有图像识别技术和GPU运算能力没办法突破实现眼睛构造 Copy URL 920504_drinkjava2 /drinkjava2owner4 months ago

神经网络对于所有输入都一视同仁,触觉、听觉、气味、视觉等,只要它激活脑中的某片神经元,它就能处理。但是对我这个半吊子程序员来说,视觉是最简单的输入设备,最有利于编程,其它的味觉、听觉、触觉要转化为对应神经元的兴奋,用家用电脑和我的编程水平是很难做到的。实际上眼睛有没有不是关键,详见外设猜想,一个叫"海伦"的女孩,又聋又瞎,按理来说,让她理解这个世界几乎是不可能的,但经过训练,她成了一个作家。从这个例子可以看出,让一个具有智能体脑神经物质基础的系统理解这个社会,表现出“我”的意识现象,并不一定要看见和听见这个世界,也就是说,不需要给它很多外设,至于外设最少可以少到什么地步,那又是另一个问题了——也许,只需要海伦的一根手指就可以了。 Copy URL 喜欢自在 /lshfong_admin4 months ago

是的,生命的形式是从简单到复杂,从低级到高级的过程,不同的的环境会孕育出不同的生命形式,很多生命其实是没有视觉系统的,再升华一点,生命的肉体其实都是多余的,不过已现有人类的视觉来看,还不能脱离思想+肉体的生命形式 Copy URL 920504_drinkjava2 /drinkjava2owner4 months ago

偷懒一下,两个眼睛太复杂了,先一个眼睛好了,启动上帝模式作个弊,眼睛看到的不是以青蛙的视角看到的极坐标图像,而是直接用2D地图上代表食物的象素点激活青蛙脑部对应视觉区的神经元,远处的食物信号激活概率低一点。 青蛙身体形状也作个弊,用青蛙图形表示,但是青蛙图形本身不参与实验,也就是说青蛙自已是看不到自已的,只能看到食物。实验的第一步是要筛选出一批能够自主进食的青蛙。不能自主进食的青蛙,也就是说只会随机运动的青蛙被淘汰掉。嘴巴不用画出来,当青蛙的坐标与食物重合时,食物被删除,同时青蛙的某个脑细胞被激活,表示感觉到了吃。至于吃应该伴随着一个正反馈作为奖励,并强化视觉->运动之间的条件反射,这个就交给大自然了。重复上万次,直到神经网络变异产生出一批能够看到食物就向它运动的青蛙,就成功了。至于一群青蛙互相能看见,会互相争食物(如果已经有别的青蛙向食物运动且距离更近,则放弃),是以后的实验内容。 Copy URL 920504_drinkjava2 /drinkjava2owner4 months ago

已经开始有点眉目了,基因的设计(即Frog的物理结构及脑的逻辑结构生成算法的静态描述)是重点,分为两大部分,身体部分和脑部分。 身体部分:因为是虚拟环境,暂时先不考虑允许身体的物理进化这块,一律给它们两个眼睛8个运动状态(上,下,左,右,停,左转,右转,吃)和两个感觉器官(happy,sad)就行了,身体的形装为正方形就行了,眼睛放在正方形一边的两点上,眼睛用小圆点表示,腿和嘴就不用画出来了。如果有兴趣的话,今后身体的物理进化也是一个有意思的实验,可以模拟一下为什么生命体会进化成两个眼睛而不是多个眼睛。 脑部分: 很简单用区x数量+坐标来描述就可以了,区用平面位置表达就可以了,因为触突是允许跨区的,所以和三维结构在逻辑上是等同的。 有多少个大区,每个大区在脑的相对位置,每个大区里有多少个小区,每个小区在大区里的相对位置,每个小区里有多少数量的同类脑细胞(脑细胞种类很多,有些是存贮用,有些是传输用,有些是兼而有之......),这些同类脑细胞的传入传出触突长度和数量,触突是否允许跨区、是否与某小区或大区相连,每个区的变异概率,每种脑细胞的变异概率。基因可以写成文本格式存盘,被存盘的基因被称为蛋(Egg)。 每一代Frog有寿命,通过下蛋的形式保证种群的繁殖,蛋100%能孵化成功。通过一定数量的蛋保证变异的发生不影响种群的灭绝。 因为目的是为了获取智能生命体,所以有些实验就不做了,如食物匮乏或下蛋太多导致种群灭绝,精子的模拟,蛋的生存率,生命体对蛋本能的保护等。 Frog的所有一切,包括寿命、下蛋数量、什么时候开始下蛋等等,都是可以遗传、变异的,并通过蛋的形式表达。所以说这个实验的最终目的就是一个蛋。 Copy URL 920504_drinkjava2 /drinkjava2owner4 months ago

眼睛部分的设计: 因为是平面虑拟环境,以角度来划分,开始只设定50个角度,也就是50个象素点,每个角度上有物体存在则对应的神经元激活。有多少个眼睛(眼睛数量可以随机进化)、每个眼睛最终有多个少角度,由优胜劣汰来决定。这50个象素点对于脑模型很简单,只要放50个(或群)神经元即可,但对虚拟环境要求较高,在任一个角度,程序员要计算出这条直线上是否有物体存在,从而好激活对应的神经元细胞。 理论上来说,眼睛越多,眼睛之间的间隔越大(间隔会产生立体感)、眼睛的象素点越多,则竟争力越强,所以引入能量限制,神经元的激活须要消耗少部分能量,不允许出现眼睛数量无限增长、象素点无限增大这种情况,要么象老鹰一样象素点非常多,要么象晴蜓一样有很多复眼,但是总体上象素点总数控制在一定范围,以避免无谓的能量消耗。另一方面,如果总象素点太多,对性能也有影响,在同样的CPU分时计算资源下,在竟争中可能反而落于下风。视觉区与思维区是直连的, 但是思维区的分辩率如果远小于视觉区,则视觉区分辩率再高也是多余的。 Copy URL 920504_drinkjava2 /drinkjava2owner4 months ago

由电脑随机生成的脑结构,有可能最终构造和人脑完完全全不一样,但是最终的表现效果却会达到或超过人脑智能水平。也就是说,可能有许许多多的脑结构方案,而人脑或生物脑只是一千种方案中的某一种而已。也就是说,复杂性和规模性是智能的关键,只要在优胜劣汰下发展,达到一定的复杂性和规模就行了,具体的结构方案实现并不重要。 Copy URL kernel218 /2184 months ago

你咋这么牛~~~ Copy URL 920504_drinkjava2 /drinkjava2owner4 months ago

可能跟我的日本名叫“牛八甬力”有关吧。 Copy URL 920504_drinkjava2 /drinkjava2owner8 months ago

人脑为什么虚拟现实(做梦)这么快? 毫无迟涉感? 因为这存储神经元区的兴奋会自动在视觉区映射出相应的图像,不存在数据传输过程。神经元之间的连接具有直接通道,这是许多固化的通道,平时关闭,当存储神经元区兴奋时,神经细胞与视觉区连接的通道才接通,然后就在视觉区映射出相应的图像。 视觉区为什么能加载不同的神经元兴奋区? 海量的大脑存储数据数据为什么没有将视觉区淹没? 因为兴奋区总体上工作于串行模式,在任意时刻,只有少数存储神经元区兴奋。视觉区与所有的(图像)存储神经元区都有联系。平时大多数视觉区神胞都不激活(就好象一张白纸,充当背景),只有对应存储神经元区兴奋的视觉区神胞才激活(白纸上出现图像),视觉区(或者叫虚拟画面区)每一个最小分辩率的象素点,实际上都与成千上万个脑存储区有相连,只有这样才能做到任意存储区兴奋,视觉区都会有相应的象素点激活,也就是说,每一个最小分辩率对应的点,要么由几万个神经元组成,要么由少数神经元组成,但是它的输入触突数非常庞大,个人倾向于后者,因为结构最简单,而且与视觉区基本工作于串作模式的工作方式相符, 视觉区没有必要一次加载多个图像,同样的一个神经元可以同时被多个存储区共享。个人认为一个象素点对应的神经元数量在1到50个之间比较合适。也就是说视觉区并行加载的图像在1到50个左右就可以了,加载的图像太多,对于脑的模式识别单元将是一个负担。 以上原理对于听觉区也适用,但为了简化编程,本项目暂不考虑听觉区,因为听觉并不影响自我意识(更准确地说,自我意识表现)的产生,见外设猜想。但是思维是建立在简化的抽象符号(语言也是一种)的基础上,没有了听力这个输入,这个项目用固定的有限的“汉字”集来建立一个抽象符号体系,由训练者和虚拟环境保证生命体只识别和输出这个汉字集,不出现非法汉字。 Copy URL 920504_drinkjava2 /drinkjava2owner9 months ago

1) 2G内存肯定是不够的,问题是有没有一个算法知道2G内存是不够的? 2) 从简单条件反射、到简单的语言,一直训练到复杂的语言,而不是用海量的数据暴力训练,是培养出”意识“的关键,问题是怎样有效利用计算机来快速地从简单训练到高级? 我是没有时间去做语言训练的。 Copy URL 920504_drinkjava2 /drinkjava2owner10 months ago

所谓思考,就是主动刷新去维持一个虚拟画面(或听觉、运动等虚拟场景),为了让细胞克服疲劳,长时间激活,需要花更多的能量,长时间激活带来的后果就是细胞间的关联更牢固,这个牢固的代价就是能量的消耗,物质是思维的基础,物质的改变必然要消耗能量。 这个虚拟画面一直维持到一个新的虚拟画面产生。虚拟画面即是一种输入,也是一种输出,也可以后天形成条件反射。 思考,就是这么简单。 当我回想以前的事情,脑海里只有一幅幅图面,可见大脑也偷懒了,它只存贮静态的图面,不存贮动态的电影。 做梦,就是当细胞疲劳后,大脑放弃主动维持刷新,转移到激活其它的兴奋区,做梦不累,但是后果是 细胞间的关联不牢固,容易被遗忘。 虚拟画面无论在思考还是在做梦时都被人感知,它应该有两种可能,一种是虚拟画面区只存在于固定的区域,但是激活基本不消耗能量。另一种可能是虚拟画面区是产生于激活区,是随时变化的。这个可以通过脑电波检测来判定,如果清醒和睡着后,有一个区始终都在活动,则它就是固定的虚拟画面区,反之,则是游走的,个人倾向于后者。 Copy URL 920504_drinkjava2 /drinkjava2owner11 months ago

模式识别模块可以允许代码存在,但也仅限于此。代码不应该污染神经网络,从一开始就要做到。 遗传机制通过得到一个脑模型后,清空它的绝大部分连接,仅保留少部分固化下来,保留的这部分在今后相对稳定,不容易被清空,然后随机微调一下结构(变异)重新开始下一轮淘汰。 每个新的结构,只用极少的规则来描述它的结构,包含固化的部分连接。这样可以使每个“新生儿”的尺寸限制在M级,类似压缩成DNA遗传编码。否则一个完整的大脑动辙上G的数据,没地方存储,就不能从海量的“新生儿”中来挑选出一批最优的了(每次需要挑选出一群而不是单个,这样可以保持生物多样性,各种不同阶段固化的结构,使得群体在淘汰过程中不容易被全部淘汰掉。) 以下为一些遗传结构的重要参数供随机进化:多少个脑半球(初始3个), 多少个区,每个区在各自脑半球二维数组中的位置,每个区与其它区的初始连接数(固化连接),每个区神经元与相邻神经元初始连接(固化连接),每个区的神经元传入、传出触突数量,每个区的容量,每个神经元的远近覆盖比(相对于当前数组的偏移,近的神经元得到连接的可能性最大,远的连接少,但是要有个比率),每个区不同连接率神经元数量的比率。 Copy URL 920504_drinkjava2 /drinkjava2owner11 months ago

comments又回来了,还是这个用着方便。 用单维、二维、3维数组来模拟脑都可以,关键是它的数量。 可以假设3维模式是神经网络工作的最佳模式,因为单位体积内神经元密度最高。但实现上有难度,就连人脑可能也是二维结构,要不怎么会有人脑皮层一说? 人脑约有10^10次方个细胞, 触突连接数量大约为10^15个,细胞数不多,但连接数很多。 程序开始阶段,先用3x100x100000三维int数组来模拟,每个单元最多允许1000个连接, 平均为10个连接,这样内存需求为3x100x100000x10x4byte=1.2G(连接和神经元共享同一内存区, 输入细胞也是这个区的一部分),普通的电脑都可以跑了。以上所有参数在运行过程中将根据优胜夯汰、随机进化原则自动调整。总容量因受电脑制约,目前只能向下调整,今后可以向上调整但不超过192G,这是64位个人电脑能支持的上限。 Copy URL 920504_drinkjava2 /drinkjava2owner11 months ago

comments到哪去啦?原来还有自动删comments的功能?以前的笔记都丢了。 Copy URL 920504_drinkjava2 /drinkjava2owner12 months ago

利用优胜夯汰、随机变异、用进废退这三大原则,利用计算机的高速度来让电脑自动生成最优神经网络脑模型,而不是手工从算法着手来模拟人脑,可能是一个捷径,比较适合象我这样的懒人和苯人,因为不用花太多时间去研究算法(模式识别的成果可以引用,因为眼睛是关键的输入兴备区),只需要花时间在模拟环境和编制简单的用进废退逻辑即可。从单细胞进化到多细胞、从青蛙进化到人类,对于大自然来说,它从来就不懂什么是算法,这是一个漫长的、随机的进化过程,但在超级电脑上跑可能只要几天时间,就可能得到一个相当不错的脑模型。当然电脑速度越快、容量越大、环境模拟的越真实,则优胜夯汰后形成的脑结构就越复杂,错的脑模型都被自然淘汰掉了。 从算法着手搭建,还是从模拟环境着手自动进化,这是创建人工生命的两个大方向。模拟环境的难点在于环境本身必须足够复杂、正确。而且必须循序渐进,与脑的进化同步,如果把一群青蛙扔到猴子的模拟环境中,则所有青蛙都会被自然淘汰掉,项目就无法进行下去了。 怎样做到模拟环境的循序渐进,目前一种方法是从模仿像素开始,到模仿写出1,2,3, 到模仿1+1=2,到模仿解方程。。。,数学是一个比较好的循序渐进的模型,后面的知识全部建立在以前的基础上。模仿围棋也可以,可以从几格扩大到19格,但是模拟围棋比较复杂,只能通过两个脑对杀才行,没有数学这么简单,而数学可以随机出题,用标准答案来判定脑模型的解题正确性。 用模拟环境的方法得到的脑模型,可以解决任意问题,直到产生意识现象为止。学完数学可以接着学画画,学完画画可以接着学打球...,前面的学习和后面的学习会自动累加,并产生创造性条件反射,这是神经网络的能力。当它能解决的问题足够复杂时,能够正确解析“我”这个词时,我们可以称他为拥有了"意识"。 Copy URL 920504_drinkjava2 /drinkjava2ownera year ago

看不见摸不着的思维,例如心里面想象一幅画,它的物理基础是脑神经元兴奋区确确实实地组成了一幅画。 Copy URL 920504_drinkjava2 /drinkjava2ownera year ago

思维的本质是虚拟现实并代入主体,预计各种可能发生的情况并作出反映,根据结果产生奖励或惩罚,环境是虚拟的,奖励或惩罚神结元兴奋却是实在的。 越简单的动物虚拟现实的能力越差,所以思维能力差。这里的虚拟现实包括一切以前经历过的神经兴奋,如图象、声音、各种感觉,都可以模拟。这是一种"创造性思维"条件反射的建立,因为在这个模拟过程中,可能会出现根本未发生过的假设,导致神经元产生奖励或惩罚兴奋。 为什么做到好梦会不愿意被吵醒? 因为在梦里神经元的奖励区兴奋了。 Copy URL 920504_drinkjava2 /drinkjava2ownera year ago

关于环境,用简单的语言教育第一代生命体,然后由第一代生命体去自动教育下一代,第一代的神经元数量活跃区在下一代有更多机率变异。引入生命死亡机制, 模拟“优胜劣汰、用进废退”,这样可以由外部环境来决定大脑的自动进化,而不是由手工来设计整个大脑结构,这可能是一个非常复杂的结构,手工很难完成。模拟环境的复杂度和正确性决定了大脑的复杂度。 Copy URL 920504_drinkjava2 /drinkjava2ownera year ago

昨天作梦,居然梦到“大脑思考区的图象不清晰了怎么办? 会有一种机制不断刷新它,像显像管不停需要刷新一样”,当时梦里觉得特有道理。先添加上来再说。 Copy URL 920504_drinkjava2 /drinkjava2ownera year ago

人脑才是虚拟现实的高手, 可能脑细胞这么多,最大用处就是用来虚拟现实的,把想象的内容在思考区排成一个虚拟环境,而且是实时的,豪无迟涩感,梦中居然感觉不到这是一个虚拟出来的环境,可见速度有多快。虚拟现实在平时思考时起了关键作用。 Copy URL 920504_drinkjava2 /drinkjava2ownera year ago

构思的重要>编码实现,最近想到什么就添上什么,这也算开发吧。 Copy URL 920504_drinkjava2 /drinkjava2ownera year ago

正式决定,回到人工智能开发,尝试一下简单人工生命的开发。早在02年前我就曾构思过"一个人工脑模型"并预言围棋人类将败。借着现在模式识别研究的突破,现在是时候尝试一下搭建这个脑模型了。

Java
1
https://gitee.com/shuh/frog.git
git@gitee.com:shuh/frog.git
shuh
frog
人工生命
master

搜索帮助