1.4 触类旁通
19世纪末20世纪初,生物神经理论研究指出,人类大脑的活动是由一种叫作神经元的细胞和它们之间的联系产生的。提出这种理论的是西班牙神经解剖学家卡哈尔,他在意大利医学家高尔基发现神经细胞的基础上,描绘了神经元的组织结构和它们之间的联系。为此,1906年他们共同获得了诺贝尔生理学或医学奖。
一个神经元是一个活细胞,人类大脑有大约100亿个这样的细胞。虽然它们具有不同的形式,但它们基本上都包括位于核心的细胞本体、叫作树突的输入纤维以及一个或多个叫作轴突的输出纤维。神经元的轴突有一个叫作终止扣的凸出端,它十分接近其他神经元的树突。终止扣和其他神经元树突之间的缝隙叫作突触,大约有20纳米长。
通过电化学反应,一个神经元可以发出脉冲到它的轴突。当脉冲到达突触时,它可能激发或继承其他神经元的电化学活动。这是否会让其他神经元发出脉冲取决于当时突触所接收的各种脉冲的数量和种类。据估计,人类大脑中有大约5000亿个这样的突触,形成了一个决定人类思维活动的神经网络。
神经元的结构
1934年,神经生理学家和控制论专家麦卡洛克和逻辑学家皮茨宣称神经元就是逻辑单元,开创了人工神经网络的历史。在他们那篇著名的论文《神经活动中思想内在性的逻辑演算》中,他们提出了一个简单的神经网络结构,并展示了这样一种神经网络可以完成几乎所有的计算操作。
人工神经网络是生物神经网络在某种简化意义下的技术复现,它是生物神经网络的一种数学抽象模型。人工神经网络中的每一个神经元可以有多个输入和输出,相当于树突和轴突。每一个输出可以有两个值(0或1)。模仿生物神经网络的行为特征,在神经元之间建立起分布式并行信息处理算法,根据输入值的多少来决定输出值,最终可以得到所需的答案。
麦卡洛克和皮茨不仅是人工智能技术中神经网络的开山鼻祖,而且两人的友谊还是一段历史佳话。出生在美国底特律的皮茨出身贫寒,但绝顶聪明,自学成才。他在12岁时就写信给大名鼎鼎的英国逻辑学家罗素,讨论罗素的《数学原理》一书中的问题。罗素欣赏他的才华,邀请他到英国剑桥大学跟他学习逻辑,可是一贫如洗的皮茨哪里有钱远渡大洋去英国读书呢?幸运的是,在他15岁那年,罗素来美国的芝加哥大学演讲,后来又做了客座教授。皮茨就跑去做了他的没有学籍的学生,靠他的天才给学校里的教授们打零工维生。
恰巧不久麦卡洛克来芝加哥大学任教,认识了皮茨。既是出于对皮茨处境的同情,又是出于对他才华的喜爱,麦卡洛克邀请皮茨来他家和他一起生活,从此皮茨结束了无家可归的“流浪生活”。麦卡洛克的年龄相当于皮茨的父亲,所以被人称为皮茨的养父。每到晚上回到家中,茶余饭后,“父子俩”就开始了他们的倾心合作。麦卡洛克是神经科学方面的专家,但他不懂数学。皮茨这个当时只有17岁的流浪数学票友就成了他的绝配。一个是数学才子,另一个是专家慈父,两个人创造了一个忘年之交的传奇、一段跨界创新的历史佳话。
人工神经网络
人们在探索人工智能方法时这种触类旁通的跨界发明不只是人工神经网络,遗传算法是另一个从生物学中获得灵感的方法。达尔文生物进化论的核心是生物的进化规律,概括地说就是物竞天择、适者生存。于是有人想到了模拟自然进化过程中通过遗传优化来改进物种的遗传算法。这是一种模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。它的发明人叫霍兰德。
作为历史上第一个计算机科学博士的霍兰德曾经说过,如果一个人在早期过深地进入一个领域,可能会不利于他吸收新的思想。对于他来说,进化论和遗传学都是新的思想。他最喜欢读的一本书就是英国统计学家费希尔写的《自然选择的遗传理论》。该书把孟德尔的遗传理论和达尔文的自然选择结合起来,给了霍兰德启发。进化和遗传是族群学习的过程,机器学习可以此为模型。遗传算法就这样萌生了。
遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。个体实际上是染色体带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现是某种基因组合,它决定了个体的外部表现,如黑头发是由染色体中控制这一特征的某种基因组合决定的。
遗传算法是基于生物学的,理解或编程都不太难。首先,建立初始状态。初始种群是从解中随机选择出来的,将这些解比喻为染色体或基因,该种群被称为第一代。其次,评估适应度。为每一个解(染色体)指定一个适应度,应根据问题求解的实际接近程度来指定(以便逼近求解问题的答案)。不要把这些“解”与问题的“答案”混为一谈,可以把它理解成为要得到答案时系统可能需要利用的那些特性。再次,进行繁殖。具有较高适应度的那些染色体更可能产生后代(后代产生后也将发生突变)。后代是父母的产物,它们由来自父母的基因结合而成,这个过程被称为“杂交”。最后,产生下一代。如果新的一代包含一个解,能产生一个充分接近或等于期望答案的输出,那么问题就已经解决了。如果情况并非如此,新的一代将重复其父母所进行的繁衍过程,一代一代地演化下去,直到得到期望的解为止。
神经网络和遗传算法都有一个共同特点,那就是效果要等到多步以后才能看到,这就要求尽可能多地访问所有的状态。这既是对计算力的一个挑战,也是对存储空间的一个很高的要求。当时,计算机硬件的功能还远不够强大,它们的成效自然难以展现出来,毕竟理论先进不代表实际可行。所以,今天大受追捧的神经网络和遗传算法在发明之初却是曲高和寡,不受重视。现实和理想之间总是有距离的,在科学的世界里也是一样,但历史是在不断向前发展的。