人工生命 开源项目初稿

开源网站开源项目 24-06-27 11:30:23

人工生命 v1.0

这是一个以“造人”为终极目标的项目,并不是一个实用的、可以马上在实际中使用的项目,目前还处于初始阶段,作者本人也处于探索中,希望有兴趣者能加入,早日在码云上创造出一个真正意义上的人工生命。

简介 | Introduce

目前人工智能的研究主要集中在算法上,下面这张图看了有什么感觉:

绝对是四个字: 一脸懵逼。(原贴位于[这里])对于普通程序员来说,是不可能学会上述知识树的所有、甚至是一小部分的知识的,但好在目前神经网络研究还有另一条路可以走,就是模拟大自然,利用优胜夯汰、随机变异、用进废退这三大原则,用计算机的高速度来让电脑自动生成最优神经网络脑模型,而不是手工从算法着手来模拟人脑,这是一个捷径,因为不用花太多时间去研究算法(模式识别的成果可以引用,但仅限于此,人类的算法不应该干涉电脑生成的网络模型),只需要花时间在模拟环境和编制简单的用进废退逻辑即可,这是程序员所擅长的。大自然从来就不懂什么是算法,聪明如我等程序员,难道还不如蠢笨的大自然? 从单细胞进化到多细胞、从青蛙进化到人类,这是一个漫长的、随机的进化过程,但在超级电脑上跑可能只要几天时间,就可能得到一个相当不错的脑模型。当然电脑速度越快、容量越大、环境模拟的越真实,则优胜夯汰后形成的脑结构就越复杂,错的脑模型都被自然淘汰掉了。 从算法着手搭建,还是从模拟环境着手自动进化,这是创建人工生命的两个大方向,第一个方向可以说是一条死路,因为它不具备算法自改进、变异、遗传(算法的压缩)功能。模拟环境的难点在于环境本身必须足够复杂、正确。而且必须循序渐进,与脑的进化同步,如果把一群青蛙扔到猴子的模拟环境中,则所有青蛙都会被自然淘汰掉,项目就无法进行下去了。 目前的项目只是搭建了一个框架,语言为Java,利用Swing作图环境,构建一个500x500象素点的虚拟环境、并模拟一群草履虫的优胜夯汰,来获取第一个具备自进化功能的人工生命体,具体脑(即电脑生成的神经网络)的实现算法还需要以后加入。现诚心邀请有兴趣加入的同学一起来加入,完成第一个初步目标:造出一个真正意义上的人工生命:草履虫。

短期目标 | Sort-term Goals

第一个初步目标:造出一个真正意义上的人工生命:草履虫。它必须具备以下前四个特点:

脑结构由电脑生成:神经网络由电脑算法生成,但是电脑算法仅限于模拟环境,而不是直接参与搭建神经网络,就好象大自然只负责拍死不合格的生命,它从不主动参与设计大脑。

脑结构可遗传:类似于生物的DNA,电脑生成的脑结构(神经网络),可通过简单的算法规则描述,并且此算法规则可以压缩成较短的片段存储,并参与到下一代草履虫的构建。

脑结构可变异:算法规则可以变异,下一代生成的草履虫在脑结构上与上一代总体相似,但存在部分变异。

适应环境:草履虫能够在模拟的虚拟环境下存活下来,环境有微小的变化,能够自适应环境,并一代代生存将适应这种环境的能力遗传下来。

用进废退:这是一个假想,对于生物来说,存在这样一种现象,就是用的多的器官,容易发生变异(例如经常嚼槟榔,容易发生口腔癌变),有理由相信这不是偶然现象,而是生物在进化过程中的一个有用的功能,以便于更快地变异,以适应环境,并很可能这种变异会通过遗传细胞(变异的算法规则)影响到下一代。

理论 | Theory

为什么明明是个电脑程序,只要满足上述四个特点就可以称之为"真正"的人工生命? 这一点我不想多说,大家可以百度一下"zhangrex 人工生命"就知道我的观点了:意识从来就不存在,意识只是一种现象。风吹、树动和风吹、添衣,都只是一种现象而已,生命本质上是一种现象,换句话说,只要表现出生命现象的事物,就可以称其为生命了,不管它是高等还是低等,不管它的物质存在基础是怎样的。作为一个二十年前就思考人工智能(可能比在座的各位年龄都长)者的话,请仔细思考一下这个观点。哲学上、理论上对智能、意识的研究是很无聊的,相当于在研究“无”到底是什么,不必多纠缠在理论和算法上。是的,用模拟环境得到的人工神经网络模型,我们确实无法掌控它的算法是怎样生成的,但是我们知道,这符合大自然创造生命的规律。

项目架构 | Architecture

这是一个Java项目,分为Application、Env、Frog三个模块:Application模块: 用于项目的启动、关闭等基础服务。Env模块: 目前是一个500x500象素点的虚拟空间,由Swing生成画像,这是程序员唯一可以控制的区域。Frog: 这是人工生命的主体,目前起名叫青蛙,其实叫什么都一样。它具备以下器官: Leg: 与运动神经元相连,Leg的激活将导致Frog移动,Leg有五个方向:上下左右停 Mouth: 只有一个动作:eat 用来食用虚拟空间出现的虚拟食物,它是一个感觉器官,而不是一个运动器官,Frog本身具有一个能量字段,进食后能量字段会增加,运动或随时间流逝能量将减少,能量耗尽则Frog死亡。 Brain: 有眼、脑细胞、脑区、基因等对象

文档 | Documentation

见项目主页

作者其它开源项目 | Other Project

Java数据库持久层工具 jSqlBox

数据库方言工具 jDialects

一个微型IOC/AOP工具 jBeanBox

一个服务端布局工具 jWebBox

在前端写Sql和Java的工具 GoSqlGo

期望 | Futures

欢迎发issue提出更好的意见或提交PR,帮助完善人工生命项目。

版权 | License

Apache 2.0

关注我 | About Me

GitHub 码云

[人工生命 开源项目初稿]相关推荐
Koala Java EE 应用开发平台

Koala Java EE 应用开发平台

Koala(考拉)是一个面向 Java 开发者的开源免费开发平台,以领域驱动设计范式为指导思想,以 DDDLib 框架……...

Wormhole Docker 容器连接代理

Wormhole Docker 容器连接代理

Wormhole 是一个能识别命名空间的由 Socket 激活的隧道代理。可以让你安全的连接在不同物理机器上的 Dock……...

OpenTTD 模拟经营游戏

OpenTTD 模拟经营游戏

OpenTTD 是 Microprose 发行的运输大亨豪华版(TTD) 的开源版。玩家扮演新成立的运输公司老板,通过建设铁……...

easyMule

VeryCD电驴(easyMule)是在eMule的基础上全新开发的新版本,具有更快的下载速度,更简便的操作界面,以及……...

dvm 轻量级Docker虚拟机

这是一个开箱即用的docker虚拟机,基于Vagrant和boot2docker,支持各种系统。这个项目对于那些不能原生支……...

今日开源
  1. PyQuery Python 的 HTML/XML 解析库

    PyQuery 让你使用 jQuery 的风格来遍历 XML 文档,它使用了 lxml 来处理 XML 乃至 HTML 文档。 你可以直接从字符串、URL或者文件中加载文档: >>>frompyqueryimportPyQueryaspq>>>fromlxmlimpor……

    开源软件 2024-07-08

  2. LDC 高性能 D 语言编译器

    LDC 高性能 D 语言编译器

    LDC 是一个高性能的 D 语言编译器,依赖 DMD 作为语言前端,后端使用 LLVM 架构生成代码,在各项测试中与C 和 C++ 性能持平,这也使得 dlang 的计算性能高于比较新的 rust 和 golang 。 LDC 支持非常多的编译架构……

    开源软件 2024-07-08

  3. Blip 用于查看网络延迟的工具

    Blip 是一个端到端的测试工具,旨在让你测量后两个要素:延迟和丢包。这些是你的网络浏览性能的真正指标。它并不试图测量带宽。 Blip 是用纯 JavaScript 编写的,所以它完全在你的浏览器中运行,不需要服务器端的……

    开源软件 2024-07-08

返回顶部小火箭