我的工作(4)

通过适当地选取几千个这样的规则,我就可能让这些胞腔自动机像神经网络一样生长和进化。举个例子,我可以生成一个三个细胞宽的路径,通过它我可以发送生长细胞,让它们在路径的中间向前移。当生长信号到达生长路径的尽头时,它可以让路径向前延伸、左转、右转、分裂,等等,这些决定于生长信号的颜色。通过改变胞腔自动机路径中间生长信号的顺序,我能够进化基于胞腔自动机的神经网络。

这个过程有两个步骤。第一个是生长阶段。经过几百个单位时间后,生长达到饱和。再没有三个细胞宽的胞腔自动机路径会生长了。这些路径就是神经网络的轴突和树突。当生长阶段一完成,也就是说生长控制细胞从网络里被清除后,生长的神经网络可以被随后的信令阶段所使用。输入信号会被施加,并且会扩散到整个网络。这些信号就像我早些年进化出的神经网络中的信号一样。它们可以在输出点被提取出来,并且可用来控制那些适应值(fitness)或性能可以被测量的过程。这个适应值就是整个网络的适应值,而网络是依次产生于一系列生长指令的,也就是一个含有6个(所有的数字)整数的随机串。

我所做的就是让神经网络和胞腔自动机结合起来。这些据我所知没有前人做过。之所以这么做是因为我认为胞腔自动机是一个可以拥有几十亿个胞腔自动机细胞的合适媒介,归于十亿个神经元是足够了。这对我来说是可实现的。当时的工作站(比个人电脑强大一些的计算机)的内存大概有十亿字节。内存是很便宜的,因此,既然我可以在一个字节(8位)上存储胞腔自动机细胞的状态或颜色,并且我的工作站可以拥有十亿字节的内存,那么我将可以存储十亿个胞腔自动机细胞的颜色,十亿个!这是很多的,足够在其中放入一个拥有大量神经元的人工大脑。空间将不会是问题。那时候的技术允许这样做,这是可实现的。

我花费了一年的时间去写所有的这些规则(北-东-南-西-中的类型规则)来证明二维版本的基于胞腔自动机的神经网络是可以运行,可以进化的。我不得不手工编写(有软件工具来帮助我)大概11 000个这样的命令来让它工作,结果它工作了。我成功地进化了振荡器电路、信号强度探测电路、直线运动探测电路,等等。是时候去研究拥有完全不同拓扑结构的三维版本了。在二维结构里,电路会相互碰到,它们不能跨过另一个电路。然而在三维结构里,胞腔自动机路径可以通过第三维相互交叉。三维电路的动态性和进化性比二维电路要丰富很多。仅仅两年后我就让三维版本开始工作了,这个版本有大概60 000个命令。

但是,这个时候我在日本过得非常郁闷。我们组的顶头上司有一个政策,就是每一个人负责一个项目,这让我觉得非常孤独和智力空虚。我没有一个可以真正交谈的人。在给他们施加了一些压力后,我终于在1996年得到了一个硕士生助手—— 一个年轻的德国人。

我向我的助手解释,三维版本已经基本上完工了,并且我对一直使用的胞腔自动机模型已经越来越清楚。我向他介绍了我想直接在电路上以电子速度产生和进化基于胞腔自动机的神经网络的梦想。我觉得应该简化胞腔自动机模型,让它可以适应于当时的新想法,即1996年的电子技术。他聆听了我的一系列愿望,然后消失了两个星期。当他回来的时候,带来了一个崭新的、更加简化的神经网络模型,它保持了我的旧模型里的大部分特征,但是加了一些新特征,使它变得可以直接实现于电子装置。这个新模型被称为“CoDi”。

大概在这段时间,也就是1996年下半年,一个美国电子工程师和我联系。他认为我的论文很有意思并且想与我合作。我把新模型的一些细节发送给他,问他能否用当时市场上特殊的FPGA板在硬件上实现它,他说应该可以。我的日本老板同意了这个想法并给予资助。这位在美国的新同事开始与我密切合作,不幸的是,一年后失去了我的德国同事。他回到欧洲攻读博士学位。我的日本老板又回到了“一人负责一个项目”的老路上,我比以前变得更郁闷了。

读书导航