其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。
在新中国诞生的那一年,加拿大生理学家唐纳德﹒赫布(Donald O. Hebb)出版了《行为的组织》 (《The Organization of Behavior》)一书,书中有一个后来被广泛引用的句子:“当细胞 A 的一个轴突和细胞 B 很近,足以对它产生影响,并且持久地、不断地参与了对细胞 B 的兴奋,那么在这两个细胞或其中之一会发生某种生长过程或新陈代谢变化,以致于 A 作为能使 B 兴奋的细胞之一,它的影响加强了。[1]” 被广泛引用的原因是这句话为后来神经网络参数的学习提供了最早的生理学来源,为定量描述两个神经元之间是如何相互影响的给出了一个大胆的论断。
图1的右边表示两个相邻(相近)的神经元i和神经元j,蓝色表示这个神经元没有被激活,回顾一下第3季,也就是说输出y=0,橙色表示神经元被激活,对应的输出y=1。现在我们考虑一下两个神经元之间的关系,确切的说是神经元i对j的影响,需要特别指出的是这种影响不仅仅由神经元i决定,而是两者在某种事件多次重复发生时的一种条件反射。
1) 第一种事件,神经元i没有激活,而神经元j由于其他神经元对它的刺激而激活。 2)第二种事件则是神经元i被其他神经元激活,而神经元j没有激活。很明显,情况1和情况2如果经常发生的话,尽管两个神经元离得很近,这种经验或事实表明神经元j的突触几乎感觉不到神经元i对它的影响,这时神经元j的突触对神经元i的刺激的敏感度就会下降,实际上,连接权值
w_{ij}可以看作神经元j的突触对神经元i的一种敏感程度。 3)第三种事件,则表明如果神经元i和j经常同时激活的话,神经元j的突触对神经元i的刺激的敏感度就会提高,这个过程也被称为突触学习学说。
造成这三种事件发生的原因并不特别清楚,但是,结果却显而易见,就是两个神经元之间的关系 变化了。以上更新过程可以表示为如下的公式:
其中 是表示学习速率的常数,这个常数很容易理解,比如初始状态,
\eta=1,
w_{ij}(t)=0, 我们需要让事件3发生100次,就可以得到
w_{ij} =100。如果在初始状态
\eta=100,事件3只需要发生一次,就可以使
w_{ij}=100。也就是说学习速率实际上表明了每一次事件3的发生对
w_{ij}产生影响的大小。
y_{i}
y_{j}这一项意味着如果
y_{i}与
同时被激活,即
与
y_{j}同时为正,那么
w_{ij}将增大。如果
y_{i}被激活,而
y_{j}处于抑制状态,即
y_{i}为正
y_{j}为负,那么
w_{ij}将变小。有意思的是,在当前所谓的大数据时代,数据本身就是事件。 这个过程非常重要,但又容易被忽略且不太容易理解,我需要再次表明以上过程实际上分为两个阶段,这两个阶段分别对应现在机器学习中的:训练和测试。在训练阶段,让某种看起来没什么联系的两个事件同时发生(或者仅仅观察确实已经存在的这些现象),从而让(或观察)神经元(或某种机器)的联系发生变化(减弱或增强)以建立或隔断它们之间的联系,这一阶段也可以称之为学习,尽管目前来看学习的目标不太明确,这里仅仅是建立一种强或弱关联。接下来进入一个测试阶段,通过让(或观察)一个事件发生,看一看这件事发生产生的效果。这也是被称之为人工智能三大学派之一的“连接主义(Conectionism)[2]”的核心思想, 这个思想的核心是不关心事件之间的因果关系,只关心相关关系。这种相关性本质上是一种通过训练得来的一种条件反射,这种相关性学习也被称为“端到端”学习(Ending-to-Ending Learning),这个名字意味着不关心中间的过程及原因,只关心结果。这种连接主义的思想也被一些人风趣的称为“吃啥补啥”派[3]。 条件反射的思想最早来自于获得诺贝尔奖的第一位生理学家伊凡·彼德罗维奇·巴甫洛夫的实验[4]。巴甫洛夫是专心投入学术研究的典型学者,他只专心研究,完全不注意衣食住行生活细节。他几乎按照与他同时代的卡哈尔提出的寻找配偶的原则[5]找到了知识女性,教育系的女学生谢拉菲玛(Seraphima Vasilievna)作为自己的妻子。 更厉害的是,他结婚时即约定,妻子不干涉他的研究,他则不负责家庭事务,并向妻子承诺,不饮酒、不打牌、不应酬,每年9月至次年5月,每周工作7天,只有暑假陪妻子到乡下度假。谢拉菲玛则把他们的生活料理得井然有序,专注似乎是伟大科学家所寻求的一个目标。
巴甫洛夫做了一个相当著名的实验[4],中学生物课本上都有他的事迹,他利用狗看到食物或吃东西之前会流口水的现象,在每次喂食前都先发出一些信号(一开始是摇铃,后来还包括吹口哨、使用节拍器、敲击音叉、开灯……等等),连续了几次之后,他试了一次摇铃但不喂食,发现狗虽然没有东西可以吃,却照样流口水,而在重复训练之前,狗对于“铃声响”是不会有反应的。通过这种训练过程,巴甫洛夫的发现开辟了一条通往认知学的道路,让研究人员研究动物如何学习时有一个最基本的认识。这种把学习看成是一种条件反射的认识,也是机器学习思想的最初来源,直接影响了赫布建立第一个学习规则。然而涉及到动物的实验通常并不温和,他也曾把狗的食道切断,让食物在盘子和嘴巴之间循环,操纵称之为迷走神经东西,观察胃液的分泌情况。 巴甫洛夫为学习提供了一种解释,1943年麦卡洛克和皮茨设计了神经元的数学模型,借助条件反射思想,1949年赫布用数学模型描述了两个神经元之间的连接是如何变化的,这种变化现在被称之为学习律。只是这种学习的目的不太明确,看起来好像仅仅是通过训练过程,让两件事情的相关性发生变化罢了。然而,借鉴这个学习律像人一样去完成一些真正的任务的重担却落在了一个叫弗兰克罗森布拉特( Frank Rosenblatt)的年轻人身上。 作为一名医生的儿子,罗森布拉特就读于美国布朗克斯科学高中(Bronx High School of Science) 是美国纽约最著名的是三所老牌重点高中之一,1938年建校以来,有8名诺贝尔奖获得者毕业于此。据我所知至少有两位图灵奖获得者(马文·明斯基(Marvin Minsky)[6], 和莱斯利·兰伯特(Leslie Lamport)[7], 马文·明斯基由于对人工智能的开创性贡献获得了人工智能领域的第一个图灵奖。兰伯特则以发明分布式关键技术而获得了2013年的图灵奖。实际上,要不是罗森布拉特去世的早,获得那个相貌平平的小银碗根本不是问题。现在看来美国的高中教育跟国内也不是一个档次的。没有证据表明罗森布拉特在高中时是否与比他高一年级的明斯基是否打过交道,但是后来的事实可以推测要么他们之间不认识,要么就是关系不怎么样。明斯基高中毕业后到海军服役一年,所以两人同年入读大学:明斯基到哈佛大学读物理,罗森布拉特则到康奈尔大学读心理学,都在1950年毕业。1956年,罗森布拉特从康奈尔大学获得博士学位,进入康奈尔航空实验室认知系统部从事心理学研究,得到美国海军研究办公室资助。在那里,罗森布拉特将迎来自己的人生巅峰。
1957年,罗森布拉特在航空实验室用IBM704计算机仿真了感知机算法。需要说明的是,从这个时候开始,存储程序计算机开始成为实现人工智能的有力工具。1954年推出的IBM704 [8]是一台意义非凡的机器。在它之前,没有计算机拥有能完成浮点运算的硬件。所有的浮点运算都只能用软件模拟,这是一个相当耗时的过程。IBM 704系统在硬件中同时支持变址寻址和浮点运算。硬件上的完善进一步崔生了高级程序语言的出现,704也是第一款采用 Fortran编程语言的机器。如果不是IBM开发了704计算机和Fortran语言,不知道什么时候才会出现C和Python这样的高级语言。更重要的是,704同时也是第一款采用磁芯内存的机器,在此之前,所有的计算机的输入都遵从18世纪法国人约瑟夫·雅卡尔为织布机所设计的方案[9]:用打了孔的卡片为机器编制程序。利用磁性材料进行存储的想法最早来自于美籍华人王安[10],他造出了磁芯存储器并获得专利,并将这个专利卖给了IBM,靠这笔收入,他开创了一个传奇且教训深刻的王安公司,他的故事并非我们的文章所关心的内容,但是也从侧面证明20世纪50-90年代,产业界的激烈竞争集中在计算机的设计与开发,而非人工智能领域的竞争。在那个时代,没有哪一家公司能够和IBM相提并论。实际上,纵观整个