You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
9.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## frog
**License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)
这是一个人工生命试验项目最终目标是创建“有自我意识表现”的模拟生命体技术架构基于02年提出的 [一个人工脑模型](一个人工脑模型.md)。
这个项目永远没有结束的时候,开始于模拟一个简单的生命体,然后是青蛙、狗......, 结束于有“自我意识表现”的人工脑,或者说,结束于被机器人代替人类的那一天。
## 缘起
目前人工智能的进展已经比较完美地解决了模式识别这块的难题,人脸识别、语音识别已经不弱于人类的水平,而这是我在二十年前感到最困惑的一块,因为底子差和当时的电脑速度慢。模式识别解决了,剩下的问题就简单多了,目前距离人工意识的诞生只差临门一脚了,就是如何在识别的基础上“理解”这些识别的内容并与人类形成交互的反馈。所以这个项目的重点不在于模式识别,而是在利用模式识别的成果基础上,训练神经网络形成条件反射,表现出高等动物才具有的条形反射行为,最终表现为"拥有自我意识"的行为。根据“意识不是一种存在,而是一种现象”原理,如果最终一个系统表现出具有自我意识的行为,即可认为它也是人,应该获得人权。目前有些人工智能的研究目的是想让人工智能解决一些复杂的人类社会方面的问题如机器翻译等,则是完全错误的方向,不可能成功,因为如果一个系统不能表现出自我意识,它就不能与人类交流,也就不可能具有解决这些问题的能力,表现出来的现象就是通常说的"机器不犯错,一旦犯错就是大错"。另一方面,如果一个系统表现出具有自我意识的行为,它就完全有能力解决世界上所有难题,包括改进它的自身和淘汰人类(因为他是先进生产力的代表)。所以人工智能的研究重点应该放在人工生命的构建和论理研究,而不是期待短期收益,指望人类可以一直享受人工智能的大餐是很危险的。模式识别和深度学习的成果只是人工生命的踮脚石和一块路标而已。人工智能的“有用”的应用,很可能只是短暂的一段过渡期而已,不用高兴得太早,也许都是白忙,给机器人作嫁衣而已,当然,深度学习的成果在将来还是有用的,生物体从来不能象计算机那样对某个技能反复训练上千万次,达到史无前例的覆盖度,既使在机器人时代,也是一个有用的技术。
简单一名话,这个项目的
## 技术细节上的一些构思
* 通过数组来模拟神经网络,用串行的循环来模拟并行芯片运作方式
* 所有算法通过简单的神经元连接完成,原则上不允行出现任何形式的硬编码,因为硬编码可能会破坏“随机变异”这一特性
* 为简单起见暂不考虑引入GPU图形芯片进行加速
* 暂选用Java语言实现
## 环境:
* 构造一个简单的200x200点阵网格只有0和1两种颜色模拟一个生物生存区模拟生物体、训练者、窝、天敌和食物用不同形状的图形点阵表达。
* 训练者和生物体可以说话表现形式为弹出一个24x24点阵图形每次只能弹出一种图形。
* 训练者由人或电脑操纵,生物体则可以任意自主行动和说话(输出任意图形),训练者和生物体具有相似权限的输出(开始阶段输出图形仅限于100个汉字和数字),行动仅限于说话、移动、打击、保存食物、拿出食物。
* 训练者在生物体模拟正确或行为(输出文字或图形,行走,吃,睡等)正确后,给予食物奖励。训练者在生物体说话或行为错误时,不给予奖励或给予打击惩罚。
## 内部机制的一些思考:
* 人类大脑的工作机制必然是简单的它不可能拥有象现代CPU那样精密的构造一个三极管损坏将整个停摆。由一个受精卵发育成的人脑上百亿个脑细胞的形成必然遵迿一些简单的规律。
* 人类大脑的工作机制必然与规模有关,否则无活解释为何人的脑细胞为何需这么多、从不退化。(生物体活动多的细胞会影响到DNA遗传表现为用进废退并不全是100%随机的。)
* 模拟生物体具有视觉区约1000个象素点点阵网格的任何变动会形成一种输入信号提醒生物体将视觉区聚焦到变动位置。
* 生物体具有天生痛觉区(一种固有的神经元兴奋区,此区兴奋将导致神经元群的工作集中于将短期内形成的神经元联系与负反愧兴奋区发生强烈关联,这就是痛觉的本质)和天生愉悦区(一种固有的神经元兴奋区,此区兴奋将导致短期内形成的神经元联系获得加强)。
* 生物体具有思考区,思考区与视觉区(和将来要加入的听觉区)联系紧密,思考区可以将视觉或内部细胞区的兴奋联系起来,思考区内容是暂时的,很快由新的内容代替,思考区既属于输入区,也输于输出区,思考区的所有内容将自动被大脑的某个空闲区存贮一段时间。
* 思考区内容由天生驱动区(痛觉、愉悦区)及后天形成的驱动区驱动,工作于串行方式,相当于人类的“心无二用”现象。大脑神经网络的检索和保存机制是并行的,可以从上亿个神经元中快速并保存与当前思考区相关联的内容,但是思考区的本身的活动却是串行的。
* 思考区检索关联信息时,最近活跃过的细胞存储区优先兴奋(被检索出),既使在做梦中也是这样。
* 模拟生物体的输出细胞区有说话区(24x24点阵网格)、上下左右行走区、张嘴及吞咽区、攻击区,移动视觉聚焦区,保存物体区。
* 条件反射的建立是重点,任意两个兴奋区兴奋,都会导致位于它们中间的一个空白兴奋区形成与这两个区的联系,时间影响条件反射的建立。短期内形成的神经元联系快速消退,反复发生的神经元联系被加强。条件反射形成后,如没有复习,则随时间流逝而减弱直至消失。
* 具有一种天生的(生物体的DNA遗传信息带来的)但比较弱的本能,能够重复训练者的行动和文字输入,如果训练者从左到右写一横,它也能本能模仿写一横,输入和输出区的每个象素点对应它的一组输入和输出天生神经元兴备群。
* 有一种机制保证永远至少有一个驱动型兴奋区占优(用于驱动思考区),如果什么也没发生,“闲得无聊,要找点事干”区兴奋。
* 会困,天生痛觉困区兴奋,会睡觉,睡醒后天生愉悦区略兴奋。睡觉过程大脑思考区的活动就相当于人类做梦的过程 。睡觉的目的:
1. 节省能量,让大脑的思考区维持单线程低功耗工作(但不至于死机,可以接收各种输入信号并醒过来),人脑是没有重启键的。
2. 给大脑一段空闲时间进行整理工作,将最近发生的事件拿出来在思考区复习一遍,并进行推演,试图与旧的存贮内容内容发生关联,以形成新的条件反射。(创造力思维的产生,来源于不相干的细胞区被联系起来。) 这个过程实际上白天也在发生,只是白天的目的性太强,不象做梦这么自由。
3. 旧的存贮内容在推演过程中得到强化,不至于被遗忘,始终得不到推演机会的存贮内容将随时间流逝被彻底遗忘(丢失)。始终得不到推演机会的存贮内容一定是无用的内容。
* 睡觉对于模拟的机器生物体来说,也可能不是必须的,因为没有肉体,不需要给肉体恢复时间。
## 单元测试的短期及长期目标:
* 脑模型和虚拟环境的初步搭建 [未完成]
* 引入现有的图像识别算法,检测脑模型具有图像识别功能 [未完成]
* 引入条件反射机制,任意两个神经元兴奋将导致一个中间神经元区兴奋 [未完成]
* 搭建天生天生条件反射兴奋区(可遗传) [未完成]
* 如果有食物从它嘴边移过,将激发天生条件反射,将食物吃掉。并获得奖励,即天生愉悦区兴奋一段时间。[未完成]
* 如果误食有毒食物,将激发天生条件反射,获得惩罚,即天生痛觉区兴奋一段时间。[未完成]
* 如果被攻击,将激发天生条件反射,天生痛觉区兴奋。[未完成]
* 训练它将打击行为与痛觉兴奋区发生关联。[未完成]
* 训练它将看到“打”这个文字,与打击行为和痛觉兴奋区建立即系。[未完成]
* 训练它背下这100个字中所有汉字可能组成的常用词组给它一个字所有与这个字相关的词组细胞区兴奋。[未完成]
* 训练它一看到“食物来了”文字,就从窝里出来找吃的。[未完成]
* 训练它理解“你”,“我”、“他”文字,只针对“我”相关的指令作出反应。[未完成]
* 训练它认识数字,会做四则运算[未完成]
* 训练它认识圆、矩形、会计算面积,学会估算和判断"大"和"小"[未完成]
* 训练它认识坐标和时间,并按指令行动,如看到"你在9点走到右上角去等三分钟后再回来",将遵从指令行动。[未完成]
## 最终目标
* 扩大它的输入网格和输出网格规模,扩大神经元数量,
* 由人来同它交流,输入新的图形和汉字,纠正它说的错误的话
* 移殖到并行芯片硬件上
## 目前进展和成绩
2018.10.21 开始编码。初步分为frog和env两个主要模块分别对应脑模型和虚拟环境。脑模型具有“用进废退”、“随机变异”、“部分条件反射固化遗传”等基本特性虚拟环境负责虚拟物理环境的模拟、维持生成和淘汰模拟生命体这个迭代过程一直进行下去。