1. 前言

  大多数人可能没听说过秀丽隐杆线虫,然而对于从事生物学研究的人来说,它可是个大明星,至少两个诺贝尔奖要归功于它。秀丽隐杆线虫是第一个基因组被测绘出来的生物,也是目前世界上唯一被完整绘制出神经网络的生物,也就是说我们知道这种虫子有多少个神经元、神经元之间是怎么连接的、甚至连接的类型和强度都被测量出来了。基于这些知识,我们可以在计算机中创造一个虚拟的虫子大脑,观察它的反应。线虫有望成为第一个被虚拟化的生物。
  做这件事的意义在于,现在工厂或实验室中的机器人都是由人编程实现某种动作或功能,严格来说它们并不是自主的。它们最大的缺点就是没有适应能力,当任务或者环境改变后,它们就无法正常工作了。与之形成鲜明对比的是各种动物,它们具有很强的应变能力。例如秀丽隐杆线虫,别看它的大脑很简单,但是它表现出来的行为却非常丰富。也许,通过研究秀丽隐杆线虫能帮助我们提高机器人的适应能力。


2. 线虫神经网络

2.1 神经元

  秀丽隐杆线虫(Caenorhabditis elegans)的神经系统由302个神经元构成。由于演化的随机性,每个虫子的大脑或多或少有点不一样,但是基本上差不太多,我们可以将其视为一个虫子。
  在这302个神经元中,有两个神经元(CANL和CANR)比较孤独,它们没有与任何神经元产生连接,因此可以不考虑它们。所以我们只需要处理300个神经元,它们的名字是如下:

ADAL, ADAR, ADEL, ADER, ADFL, ADFR, ADLL, ADLR, AFDL, AFDR, AIAL, AIAR, AIBL, AIBR, AIML, AIMR, AINL, AINR, AIYL, AIYR, AIZL, AIZR, ALA, ALML, ALMR, ALNL, ALNR, AQR, AS1, AS10, AS11, AS2, AS3, AS4, AS5, AS6, AS7, AS8, AS9, ASEL, ASER, ASGL, ASGR, ASHL, ASHR, ASIL, ASIR, ASJL, ASJR, ASKL, ASKR, AUAL, AUAR, AVAL, AVAR, AVBL, AVBR, AVDL, AVDR, AVEL, AVER, AVFL, AVFR, AVG, AVHL, AVHR, AVJL, AVJR, AVKL, AVKR, AVL, AVM, AWAL, AWAR, AWBL, AWBR, AWCL, AWCR, BAGL, BAGR, BDUL, BDUR, CEPDL, CEPDR, CEPVL, CEPVR, DA1, DA2, DA3, DA4, DA5, DA6, DA7, DA8, DA9, DB1, DB2, DB3, DB4, DB5, DB6, DB7, DD1, DD2, DD3, DD4, DD5, DD6, DVA, DVB, DVC, FLPL, FLPR, HSNL, HSNR, I1L, I1R, IL1DL, IL1DR, IL1L, IL1R, IL1VL, IL1VR, IL2DL, IL2DR, IL2L, IL2R, IL2VL, IL2VR, I2L, I2R, I3, I4, I5, I6, LUAL, LUAR, M1, M2L, M2R, M3L, M3R, M4, M5, MCL, MCR, MI, NSML, NSMR, OLLL, OLLR, OLQDL, OLQDR, OLQVL, OLQVR, PDA, PDB, PDEL, PDER, PHAL, PHAR, PHBL, PHBR, PHCL, PHCR, PLML, PLMR, PLNL, PLNR, PQR, PVCL, PVCR, PVDL, PVDR, PVM, PVNL, PVNR, PVPL, PVPR, PVQL, PVQR, PVR, PVT, PVWL, PVWR, RIAL, RIAR, RIBL, RIBR, RICL, RICR, RID, RIFL, RIFR, RIGL, RIGR, RIH, RIML, RIMR, RIPL, RIPR, RIR, RIS, RIVL, RIVR, RMDDL, RMDDR, RMDL, RMDR, RMDVL, RMDVR, RMED, RMEL, RMER, RMEV, RMFL, RMFR, RMGL, RMGR, RMHL, RMHR, SAADL, SAADR, SAAVL, SAAVR, SABD, SABVL, SABVR, SDQL, SDQR, SIADL, SIADR, SIAVL, SIAVR, SIBDL, SIBDR, SIBVL, SIBVR, SMBDL, SMBDR, SMBVL, SMBVR, SMDDL, SMDDR, SMDVL, SMDVR, URADL, URADR, URAVL, URAVR, URBL, URBR, URXL, URXR, URYDL, URYDR, URYVL, URYVR, VA1, VA2, VA3, VA4, VA5, VA6, VA7, VA8, VA9, VA10, VA11, VA12, VB1, VB2, VB3, VB4, VB5, VB6, VB7, VB8, VB9, VB10, VB11, VC1, VC2, VC3, VC4, VC5, VC6, VD1, VD2, VD3, VD4, VD5, VD6, VD7, VD8, VD9, VD10, VD11, VD12, VD13

这个网页http://wormweb.org/neuralnet可以直观地了解每个神经元的连接关系。

 这剩下的300个神经元,我们可以给它们分分类。有的神经元是感知环境的,它们相当于输入,有的神经元是驱动肌肉的,它们相当于输出,而位于输入和输出之间的称为中间神经元。当然,这只是人类图省事一厢情愿的划分,实际情况要复杂一些,因为有的神经元是兼职。
  再进一步细分,感知神经元中有的是感知食物的,有的是感知温度的,有的是感知接触的,我们关心的是最后一种。
  感知触碰的神经元分布在身体的前后左右,左侧和右侧各有10个:

ALML, PLML, AVM, PVM, PVDL, FLPL, ASHL, IL1VL, OLQDL, OLQVL
ALMR, PLMR, AVM, PVM, PVDR, FLPR, ASHR, IL1VR, OLQDR, OLQVR

运动神经元的输出连接着肌肉,线虫有97块肌肉,其中负责身体左侧运动和右侧运动的肌肉各有34个,如下:

MDL07, MDL08, MDL09, MDL10, MDL11, MDL12, MDL13, MDL14, MDL15, MDL16, MDL17, MDL18, MDL19, MDL20, MDL21, MDL22, MDL23, MVL07, MVL08, MVL09, MVL10, MVL11, MVL12, MVL13, MVL14, MVL15, MVL16, MVL17, MVL18, MVL19, MVL20, MVL21, MVL22, MVL23
MDR07, MDR08, MDR09, MDR10, MDR11, MDR12, MDR13, MDR14, MDR15, MDR16, MDR17, MDR18, MDR19, MDR20, MDL21, MDR22, MDR23, MVR07, MVR08, MVR09, MVR10, MVR11, MVR12, MVR13, MVR14, MVR15, MVR16, MVR17, MVR18, MVR19, MVR20, MVL21, MVR22, MVR23

 这样我们的“虚拟”线虫大脑就具有了输入输出功能。当然,这样的大脑还不能用,因为缺少中间神经元。

2.2 神经突触

  有了神经元还不够,如果每个神经元都孤零零地只和自己玩,那它们不能实现复杂的功能,它们必须连接起来形成一个网络。人多不一定力量大,人多还得团结在一起才行。简单来说,突触强度就是一个数,它表示两个神经元的关系亲近程度。数字大说明它们关系好,数字小说明关系一般。如果数字是负的,那它们的关系是仇人。

3. 计算机仿真

  我们用一个矩阵表示所有突触强度。

4. 模式识别功能