首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >­­­­理解计算-从根号2到AlphaGo 第4季 凛冬将至

­­­­理解计算-从根号2到AlphaGo 第4季 凛冬将至

原创
作者头像
SIGAI学习与实践平台
发布2018-08-15 16:13:26
7020
发布2018-08-15 16:13:26
举报

SIGAI特约作者:twinlj77

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。

在新中国诞生的那一年,加拿大生理学家唐纳德﹒赫布(Donald O. Hebb)出版了《行为的组织》 (《The Organization of Behavior》)一书,书中有一个后来被广泛引用的句子:“当细胞 A 的一个轴突和细胞 B 很近,足以对它产生影响,并且持久地、不断地参与了对细胞 B 的兴奋,那么在这两个细胞或其中之一会发生某种生长过程或新陈代谢变化,以致于 A 作为能使 B 兴奋的细胞之一,它的影响加强了。[1]” 被广泛引用的原因是这句话为后来神经网络参数的学习提供了最早的生理学来源,为定量描述两个神经元之间是如何相互影响的给出了一个大胆的论断。

图1的右边表示两个相邻(相近)的神经元i和神经元j,蓝色表示这个神经元没有被激活,回顾一下第3季,也就是说输出y=0,橙色表示神经元被激活,对应的输出y=1。现在我们考虑一下两个神经元之间的关系,确切的说是神经元ij的影响,需要特别指出的是这种影响不仅仅由神经元i决定,而是两者在某种事件多次重复发生时的一种条件反射。

l第一种事件,神经元i没有激活,而神经元j由于其他神经元对它的刺激而激活。

l第二种事件则是神经元i被其他神经元激活,而神经元j没有激活。很明显,情况1和情况2如果经常发生的话,尽管两个神经元离得很近,这种经验或事实表明神经元j的突触几乎感觉不到神经元i对它的影响,这时神经元j的突触对神经元i的刺激的敏感度就会下降,实际上,连接权值wij可以看作神经元j的突触对神经元i的一种敏感程度。

l第三种事件,则表明如果神经元ij经常同时激活的话,神经元j的突触对神经元i的刺激的敏感度就会提高,这个过程也被称为突触学习学说。

造成这三种事件发生的原因并不特别清楚,但是,结果却显而易见,就是两个神经元之间的关系wij变化了。以上更新过程可以表示为如下的公式:

其中η是表示学习速率的常数,这个常数很容易理解,比如初始状态,η=1, w_{i j} (t)=0, 我们需要让事件3发生100次,就可以得到w_{i j}=100。如果在初始状态η=100,事件3只需要发生一次,就可以使w_{i j}=100。也就是说学习速率实际上表明了每一次事件3的发生对w_{i j}产生影响的大小。y_{i}y_{j}这一项意味着如果yi与yj同时被激活,即y_{i}y_{j}同时为正,那么w_{i j}将增大。如果y_{i}被激活,而y_{j}处于抑制状态,即y_{i}为正y_{j}为负,那么w_{ij}将变小。有意思的是,在当前所谓的大数据时代,数据本身就是事件。

这个过程非常重要,但又容易被忽略且不太容易理解,我需要再次表明以上过程实际上分为两个阶段,这两个阶段分别对应现在机器学习中的:训练和测试。在训练阶段,让某种看起来没什么联系的两个事件同时发生(或者仅仅观察确实已经存在的这些现象),从而让(或观察)神经元(或某种机器)的联系发生变化(减弱或增强)以建立或隔断它们之间的联系,这一阶段也可以称之为学习,尽管目前来看学习的目标不太明确,这里仅仅是建立一种强或弱关联。接下来进入一个测试阶段,通过让(或观察)一个事件发生,看一看这件事发生产生的效果。这也是被称之为人工智能三大学派之一的“连接主义(Conectionism)[2]”的核心思想, 这个思想的核心是不关心事件之间的因果关系,只关心相关关系。这种相关性本质上是一种通过训练得来的一种条件反射,这种相关性学习也被称为“端到端”学习(Ending-to-Ending Learning),这个名字意味着不关心中间的过程及原因,只关心结果。这种连接主义的思想也被一些人风趣的称为“吃啥补啥”派[3]。

条件反射的思想最早来自于获得诺贝尔奖的第一位生理学家伊凡·彼德罗维奇·巴甫洛夫的实验[4]。巴甫洛夫是专心投入学术研究的典型学者,他只专心研究,完全不注意衣食住行生活细节。他几乎按照与他同时代的卡哈尔提出的寻找配偶的原则[5]找到了知识女性,教育系的女学生谢拉菲玛(Seraphima Vasilievna)作为自己的妻子。 更厉害的是,他结婚时即约定,妻子不干涉他的研究,他则不负责家庭事务,并向妻子承诺,不饮酒、不打牌、不应酬,每年9月至次年5月,每周工作7天,只有暑假陪妻子到乡下度假。谢拉菲玛则把他们的生活料理得井然有序,专注似乎是伟大科学家所寻求的一个目标。

图 2 巴甫洛夫的狗
图 2 巴甫洛夫的狗

巴甫洛夫为学习提供了一种解释,1943年麦卡洛克和皮茨设计了神经元的数学模型,借助条件反射思想,1949年赫布用数学模型描述了两个神经元之间的连接是如何变化的,这种变化现在被称之为学习律。只是这种学习的目的不太明确,看起来好像仅仅是通过训练过程,让两件事情的相关性发生变化罢了。然而,借鉴这个学习律像人一样去完成一些真正的任务的重担却落在了一个叫弗兰克罗森布拉特( Frank Rosenblatt)的年轻人身上。

作为一名医生的儿子,罗森布拉特就读于美国布朗克斯科学高中(Bronx High School of Science) 是美国纽约最著名的是三所老牌重点高中之一,1938年建校以来,有8名诺贝尔奖获得者毕业于此。据我所知至少有两位图灵奖获得者(马文·明斯基(Marvin Minsky)[6], 和莱斯利·兰伯特(Leslie Lamport)[7], 马文·明斯基由于对人工智能的开创性贡献获得了人工智能领域的第一个图灵奖。兰伯特则以发明分布式关键技术而获得了2013年的图灵奖。实际上,要不是罗森布拉特去世的早,获得那个相貌平平的小银碗根本不是问题。现在看来美国的高中教育跟国内也不是一个档次的。没有证据表明罗森布拉特在高中时是否与比他高一年级的明斯基是否打过交道,但是后来的事实可以推测要么他们之间不认识,要么就是关系不怎么样。明斯基高中毕业后到海军服役一年,所以两人同年入读大学:明斯基到哈佛大学读物理,罗森布拉特则到康奈尔大学读心理学,都在1950年毕业。1956年,罗森布拉特从康奈尔大学获得博士学位,进入康奈尔航空实验室认知系统部从事心理学研究,得到美国海军研究办公室资助。在那里,罗森布拉特将迎来自己的人生巅峰。

图3 罗森布拉特VS明斯基
图3 罗森布拉特VS明斯基

1957年,罗森布拉特在航空实验室用IBM704计算机仿真了感知机算法。需要说明的是,从这个时候开始,存储程序计算机开始成为实现人工智能的有力工具。1954年推出的IBM704 [8]是一台意义非凡的机器。在它之前,没有计算机拥有能完成浮点运算的硬件。所有的浮点运算都只能用软件模拟,这是一个相当耗时的过程。IBM 704系统在硬件中同时支持变址寻址和浮点运算。硬件上的完善进一步崔生了高级程序语言的出现,704也是第一款采用 Fortran编程语言的机器。如果不是IBM开发了704计算机和Fortran语言,不知道什么时候才会出现C和Python这样的高级语言。更重要的是,704同时也是第一款采用磁芯内存的机器,在此之前,所有的计算机的输入都遵从18世纪法国人约瑟夫·雅卡尔为织布机所设计的方案[9]:用打了孔的卡片为机器编制程序。利用磁性材料进行存储的想法最早来自于美籍华人王安[10],他造出了磁芯存储器并获得专利,并将这个专利卖给了IBM,靠这笔收入,他开创了一个传奇且教训深刻的王安公司,他的故事并非我们的文章所关心的内容,但是也从侧面证明20世纪50-90年代,产业界的激烈竞争集中在计算机的设计与开发,而非人工智能领域的竞争。在那个时代,没有哪一家公司能够和IBM相提并论。实际上,纵观整个计算机科学发展史,也没有哪一个公司的地位能和IBM相比。这个被称为“最强大的电子大脑”的IBM704,将协助罗森布拉特模拟真正的大脑,尽管这个大脑简单到只有一个神经元。

图 4 感知机原理及Mark I型感知机
图 4 感知机原理及Mark I型感知机

我们在第1季的时候就介绍了感知机的基本原理,在那里我们从一种计算的角度,给定一个初始值并不断更新结果来达到计算的目的。实际上,由海军资助的这个项目的目标是造出一个会学习的机器(learning machine),这实在是跟我们如今申请的很多项目类似,一些人总是喜欢看见硬件摆在那里才觉得踏实。罗森布拉特首先在704上进行了模拟,这时候感知机实际上只是一个程序。两年后,罗森布拉特将这个程序硬件化,并给他起名“Mark I Perceptron”(马克I型感知机)[11]这个机器占据了整个实验室,它包括三层结构,运作机制并不复杂。感知器的一端,400个光传感器模拟视网膜;传感器多次连接一组512个电子触发器,当它通过一个特定的可调节的兴奋阈值时就会像神经元一样激发。这些触发器连接到最后一层,当一个物体与感知器受训见过的对象相互匹配时,它就会发出信号。这个模型可以完成一些简单的视觉识别任务,如图4所示。这个硬件中, 直线的权值是由电位计(potentiometers)来表示,它的更新则依赖一些电动马达。英语国家的人们喜欢将他们某项重要发明称之为Mark I型。在1944年,美国海军就支持哈弗大学和IBM构建了一个自动按序控制计算器——Mark Ⅰ。更早一点,英国研制并在1916年第一次世界大战期间服役的Mark I坦克是世界上第一种正式参与战争的坦克。还有大家更熟悉的钢铁侠:MarkI是托尼·斯塔克创造的第一个机甲。但是,第一个神经网路的硬件并不归功于罗森布拉特,而是他的高中学长马文明斯基。

明斯基在哈弗大学毕业后来到普林斯顿攻读数学,在此,他建造了一台学习机Snare[6],Snare是世界上第一个神经网络模拟器,其目的是学习如何穿过迷宫,其组成中包括40个“代理”(agent)和一个对成功给予奖励的系统。在Snare的基础上,明斯基综合利用他多学科的知识,解决了使机器能基于对过去行为的知识预测其当前行为的结果这一问题,并以“神经网络和脑模型问题”(Neural Nets and the Brain Model Problem)为题完成了他的博士论文。明斯基的一项伟大工作是与麦卡锡在1955年夏天于达特茅斯学院组织了一场称为人工智能夏季研讨会(Summer Research Project on Artificial Intelligence)的活动,如图5所示。这个会议的名字比它取得的所有成果都重要的多,第一次真正出现了AI这个词。英国数学家菲利普·伍德华德(Woodward)说这个词是它在1956年的时候访问MIT的时候告诉麦卡锡的[12],我想他肯定是记错了时间! 现在,人们把1955年夏天那个漫长会议作为人工智能诞生的日子。

图5 麦卡锡以及达特茅斯学院夏季研讨会的大楼
图5 麦卡锡以及达特茅斯学院夏季研讨会的大楼

按正常发展,以神经网络毕业的明斯基应该在该领域取得更大的成绩,可是罗森布拉特的感知机却提前占了上风,几乎获得了所有人的关注,1958年夏,罗森布拉特和他的赞助方美国海军举行了新闻发布会。《纽约时报》[13]当时报道说:“海军透露了一种电子计算机的雏形,它将能够走路、说话、看、写、自我复制并感知到自己的存在……据预测,不久以后,感知器将能够识别出人并叫出他们的名字,立即把演讲内容翻译成另一种语言并写下来。那个时候,人们对“会学习的机器”抱有极大的热情,来自军方的资助和新闻媒体的关注使得罗森布拉特简直成了一个风云人物,他不断的抛头露面,简直是个明星。而此时的明斯基却显得没那么风光。基于并不十分清楚的原因,作为神经网络曾经的支持者,明斯基开始偏向反对神经网络,据说再一次会议上, 他和发明感知机的高中学弟大吵了一架,并宣称神经网络并不能解决人工智能问题。不管在当时还是现在,明斯基得基本观点几乎没错。但他随后所作的工作却让人工智能特别是神经网络的研究逐渐进入一个漫长的冬季。明斯基是在一次学术会议上跟西摩尔·帕普特(Seymour Papert)认识,而且非常有趣的是,当时两人提交了几乎一模一样的论文,明斯基邀请帕普特来到MIT,于是就开启了被后人调侃为“魔鬼搭档”的新组合,这主要是他们合著了一本具有极大争议的魔法书《感知机:计算几何导论》[14](Perceptrons: an introduction to computational geometry )简称《感知机》,这本书并不是推广感知机,而是宣判了它的死刑。 伴随着这本书的出现,人工智能的研究开始偏向以逻辑推理为主的另一个派别,“符号学派”,然而符号学派的好日子也并不长。

现在来看,这本书的最初版本具有明显的恶意,“罗森布拉特的论文没有多少科学价值” [3],在第一版里竟然这样直白的写道。我们很难回到那个时代去追问当事人的内心想法, 但是这种行为的原因是可以分析的,有两个很明显的原因,主观和客观。客观上,感知机确实存在不小的问题。我们在第2季中已经看到,感知机本身就是一条直线,它只能对线性可分的样本进行处理。对线性不可分的数据,感知机没法终止,并不是感知机算法找不到这条直线,而是这样的直线根本就不存在,感知机的弱点并不在其学习规则,而在于其简单的网络结构。然而可怕的是,明斯基和帕普特用一个最简单的却又明显不可分的异或问题来展示感知机的弱点,这给了感知机几乎致命的打击。主观上,我的猜测是明斯基和帕普特对罗森布拉特所取得的关注带有一些负面的情绪,说是嫉妒也不是不可以。

当时的计算机科学,并没有多少大数据的概念,那时只要能解决逻辑运算的问题,这个机器就威力无穷,就像MP模型一样。但如上一季看到的那样, MP模型的问题在于必须人工设计参数,才能完成复杂运算。罗森布拉特的感知机更加雄心勃勃,他宣称可以通过机器自动学习来实现很多操作(识别,运算,处理等),当然得包括简单的逻辑运算了。实现这种运算,也并不需要人为设计,只需要把数据(事件)摆在这里,让机器自己学习,然后,感知机就可以作为一种最简单的逻辑运算器了。例如,为了实现与运算,我们只需要把与运算的输入和输出看作条件反射就行了,为了与麦卡洛克和皮茨得MP对比,我们将给出用感知机模拟“与门”的方法。首先“与运算”的规则很简单,对于所有的二元逻辑运算,总共就只有四种输入,分别对应于p1-p4这四个二维向量,向量的每一维表示了二元运算的一个输入,运算结果根据运算的定义而不同,在“与运算”的定义下, 运算结果的输出t1-t4也可以看作是这对输入的标记,如图6所示。

图 6 感知机实现的与逻辑运算
图 6 感知机实现的与逻辑运算

对这个明显的线性可分问题而言,感知机得心应手,很快就能找到这样的直线,此时的直线就是一个与门运算单元。重要的是得到这条直线是如此的简单,几乎都是自动化的。依然有可爱的同学会觉得纳闷,既然与运算的规则这么简单,为何还要这感知机? 感知机去做这些确实有点牛刀杀鸡的感觉,但是仅仅通过数据或事件的训练来构造一个逻辑门的方法在那时可真是开天辟地的大事。你可以想到那些在平面上可以线性可分的逻辑门(例如,或门)都可以用感知机来模拟。

遗憾的是,异或门(XOR)对于罗森布拉特的感知机就没那么简单了。明斯基和帕普特就以此为例给了感知机致命一击,在这个问题中,数据与之前类似,pi表示向量,ti表示它对应的输出标记,可以看到,p2和p3是一类,p1和p4是一类,如图7所示。异或运算是实际上可以看作是二进制的不进位加法,因此意义非凡。

图 7 感知机无法模拟的异或(XOR)运算
图 7 感知机无法模拟的异或(XOR)运算

不用多说,这两类数据根本无法用一条直线把他们分开,感知机在这里完全不起作用。对这个简单的异或问题,感知机看起来几乎彻底失败了。实际上, 在当时,很多人已经知道,简单的感知机确实存在这样的问题,尽管明斯基和帕普特也承认,几层相互连接的神经元能做的可能够多,但是他们找不到研究这些神经元的方法,其他人也一样。

现在我必须不情愿的再次给出感知机相对严格的表达,从而才能看出它的问题所在,以及困难之处。在这里我将给出它与MP模型以及Hebb学习规则之间的关系。罗森布拉特的感知机表示的神经元与麦卡洛克和皮茨的神经元几乎一样,只是缺少了一个控制信号I(请参考第三季神经元的数学模型)。单个神经元本身也可以看作是一个激活函数g(z)。

x1,…xm是输入,w1…wm则是权值,注意上面的式子里有一个θ,激活函数本身的定义就反映了神经元的“全或无法则”为了让这个式子更加简单,可以把阈值θ进一步放在z的一边,并定义,w0 = -θ以及x0 = 1, 这样,上面的式子变得更加整齐:

此时,感知机本身从结构上可以表示成如图8所示的一个神经元:

图 8 用神经元表示的感知机

我们需要再一次强调,感知机的伟大之处在于它给出了一个自动获得w的学习规则,这个学习规则:

1 首先随机的初始化一个w

2 对每一个样本,计算当前的激活函数值g(z)=g(w^{T}x^{i}),然后根据g(z)的值进行更新。

具体而言,g(z)的输出记作outputi,感知机利用output^{i}x^{i}本身的标记target^{i}之间的关系来更新w。更新w的规则反映了罗森布拉特的天才智慧,更新规则如下:

这个规则与Hebb学习规则形式上有些类似,只是将w以及x^{i}的标记引入到了更新规则中,这个规则保证了只有错分样本能够更新直线的参数w

尽管感知机只能在两类样本线性可分的情况下找到这条直线,但是并不是说它在线性不可分的时候一无是处,如果两个类不能被线性决策边界分隔,我们可以设置一个迭代次数(epochs)和/或一个阈值,用于容忍错误分类的数量。实际上,这个技巧是目前所有深度学习必须掌握的,因为他们面临与感知机几乎一样的尴尬情景,线性分类器无法解决线性不可分,而深度学习无法找到最优解,他们不能自己停下来,必须人为的进行干涉。图9给出了迭代多次的感知机如何应对线性不可分的问题。

图9 感知机处理线性不可分问题
图9 感知机处理线性不可分问题

1960年,斯坦福大学的Bernard Widrow和它的博士生Ted Hoff在MP模型和感知机的基础上,提出了一个称之为自适应线性神经元: Adaptive Linear Neuron (Adaline)的模型[15],这个模型比感知机更接近现在的神经网络,更加重要的是,这个模型为下一步为20多年后神经网络的复兴埋下了伏笔。这个神经元与感知机非常相似却又有明显不同,如下图10所示[16]:

图 10 感知机(上图)和Adaline的学习规则[16]
图 10 感知机(上图)和Adaline的学习规则[16]

结构上看,它增加了一个量化器来保证输出满足要求。另一方面,为了让参数w能够更新,它引入了一个可微的线性激活函数来替代感知机的阶跃激活函数。这个可微的激活函数导致的结果就是,由这个激活函数,可以定义一个评价w值性能好坏的代价(误差)函数,从而让寻找w变成了一个简单的优化问题。千万不要小看个微小的改变,这个可微的代价函数的引入却几乎使现在的深度学习再也逃不出这个框架了。最小化代价函数也是其他类型机器学习算法的主要思想。Adaline引入的代价函数非常简单,就是最常见的均方误差函数(Sum of Squared Errors :SSE):

这个均方误差的含义也十分明显,对给定的一个w,希望所有的样本都能满足自身的标记target和模型的输出output一致。如果代价J比较大,则修改w让J变小。平方的引入使得这个函数J本身变成一个凸函数。我们可以使用梯度下降(gradient descent)的方法来解决这个问题,根据梯度下降方法的基本原理(由于篇幅原因,我们将在后面的文章中详细介绍这个原理的背景知识),该过程可以描述成如下的一个图形[16],w只要沿着J(w)在w的梯度的相反方向移动,就可以让J(w)的值下降,当J(w)关于w的梯度下降到零(或者接近零)的时候,意味着J(w)达到了一个局部最小值,如果J(w)是一个凸函数,则局部最小就是全局最小。

图11 代价函数J的梯度下降方法[16]
图11 代价函数J的梯度下降方法[16]

注意,此时w变成了代价函数的参数,我们的优化问题的目标是寻找J达到最小值时对应的参数w,而不是J的最小值本身。每一次更新的w可以看作求解根号2时的一个新的猜测,不过这个猜测依赖J关于w的梯度罢了。更具体一点,我们先考虑J(w)在一个方向上的偏导数。

其中,(t = target, o = output), 根据梯度下降的学习规则,在这个方向上可以得到:

在不同方向上的偏导数构成的向量就是梯度,Adaline的更新规则如下:

其中,∆w表示J关于w的梯度向量的相反方向,非常巧合地是,单从形式上看,感知机的更新规则跟Adaline看起来很像,但是o的含义不同, 在感知机中, o就是激活函数的输出,它只有两个值1,-1。而在Adaline中,o是一个实数。同时,注意到Adaline的J(w)实际上依赖所有的样本的整体结果,而在感知机中, 每一次更新,只依赖一个样本。因此,如果你非得把感知机得更新也看成是J(w)的梯度下降的话(实际上是不能这么认为,因为感知机根本没有代价函数梯度下降的思想,而是直接给出了w的更新规则),它则是类似随机梯度下降( stochastic gradient descent)方法,该方法每次只利用一个样本来计算梯度,而Adaline属于批量梯度下降(batch gradient descent)方法,该方法需要利用所有样本来计算梯度。Adaline通过引入代价函数,利用了早已经提出的梯度下降方法来解决优化问题,实际上Adaline也可以改进成随机梯度下降,这样就跟感知机更加相似了。但是他们的之间依然存在本质的不同,原因就在于线性激活函数以及代价函数的引入。从形式上看,他们还是太像了,很多人都认为感知机可以直接写成梯度下降的形式,然而这是Adaline的功劳。按照我们第一季给出的计算的流程, Adaline的流程图如下所示,其中∇J是用来表示梯度的通用记号。

图12 Adaline引入代价函数和梯度下降的学习规则
图12 Adaline引入代价函数和梯度下降的学习规则

以上的流程非常重要,几乎是到目前为止所有深度神经网络都共同遵守的流程。然而,由于Adaline和感知机本身的样子还是一条直线,它们存在一样的致命问题,都无法解决线性不可分的情况。1969年,当魔鬼搭档出版那本《感知机》后,这种线性分类器的日子都不太好过。那么到底如何解决线性不可分问题呢?明斯基和帕普特特别指出需要多层感知机——亦即现在所谓的多层神经网络——才可以完成这一任务,罗森布拉特的感知机被认为是单层感知机,也有看作双层的(下图左),这取决于你怎么看待它。然而三层及以上的神经网络就像下面这个样子(下图右)。在多层神经网络中,多个感知机的输出作为另一个感知机的输入。关键的问题是罗森布拉特的学习算法对多层并不管用,Adaline的方法也不管用。那些处在多层神经网络中间层(隐含层)的神经元的权值(w1),在当时无法进行调整。因为感知机和Adaline只有两层,他们直接建立了输出层对参数w是如何影响的,并确立了简单的更新规则,但是对多层网络而言,实在是很难想到网络的输出对隐含的层中参数w1的影响。这种困难在Aadline看来,就是无法容易的求出多层神经网络中代价函数对于所有参数w (w1及w2)的偏导数。这个问题对当时以及后来很长一段时期的人们,都是很困难的。在《感知机》出版后的十多年,也几乎没人(实际上有但被忽略了)找到一个比较好的求导数(梯度)的方法。连明斯基都以挑衅的口吻在书中写道:“证实(或推翻)把感知机推广到多层这个想法是没有希望的这一看法将是一个重要的研究内容。”

图13 看作2层神经网络的感知机(左图)和多层感知机
图13 看作2层神经网络的感知机(左图)和多层感知机

1973年,英国科学研究委员会请一位叫James Lighthill的数学家[17]撰写了一份关于人工智能研究的评估报告,如下图所示:在这份著名的“Lighthill Report”中, Lighthill对诸如人工智能中的机器人技术和语言处理等基础领域的基础研究提出了强烈批评,并给出最终结论:“迄今为止,AI各领域的发现并没有带来像预期一样的重大影响” [17]。这为英国政府大范围终止对人工智能研究的决定奠定了基础。这份报告意味着从1974年开始,人工智能的研究进入漫长的冬季(AI Winter)。令人惊奇的是,就在1974年,哈弗大学的博士生Paul J. Werbos在他的博士论文《New Tools for Prediction and Analysis in the Behavioral Sciences》[18]中,详细描述了如何利用误差的反向传播来训练人工神经网络。然而哈弗毕竟不是MIT,这篇经典的文献在当时并没有引起太多反响,因为冬天已经来临,很多人工智能的研究人员得不到资助,甚至论文也无法发表。没有多少人意识到这篇文章的重要价值,这种情况除了得感谢《感知机》以外,就要数Lighthill的报告了,难以置信的是这两个文献的封面竟然如此相似!

图14 1969年明斯基和帕普特的《感知机》 以及 1973年Lighthill 的《人工智能》报告
图14 1969年明斯基和帕普特的《感知机》 以及 1973年Lighthill 的《人工智能》报告

然而,罗森布拉特甚至没有等到1974年。在1971年7月11日,在43岁生日的那一天,罗森布拉特在划皮艇的时候丧生。据说可怜的他连遗体也没有找到。很多人怀疑他是自杀,甚至一些人将他可能自杀的原因归结为《感知机》这本书给他带来的压力。在他去世前不久,还有一项不为多少人了解的重要发现。1971年罗森布拉特在一个关于天文学的期刊《ICARUS伊卡洛斯》上发表了一篇文章,探讨了如何通过测量其他恒星的星光,来寻找这些恒星周围的行星[19]。如果一颗行星从恒星和你的望远镜之间经过,你会看到光的强度略有下降。在此之前,天文学家大都尝试用天体测量的方法寻找行星,也就是测量由于行星引力导致的恒星位置的变化。罗森布拉特的这篇文章,在同一年被比尔•博鲁茨基发现,这坚定了博鲁茨基利用光学技术以及望远镜寻找行星的工作。博鲁茨基和他的同事们持续完善改进罗森布拉特的方法,作为著名的开普勒太空望远镜(Kepler)项目的提出者之一、首席科学家,比尔•博鲁茨基发起的开普勒探测器计划从2009年开始对银河系内10万多颗恒星进行探测,希望搜寻到能够支持生命体存在的类地行星。2015年,开普勒的最新成果是确认了第一个与地球近似大小、围绕一个类太阳恒星运转、公转轨道位于宜居带内的行星Kepler-452b。 在不可预见的将来,如果人类在宇宙中成功寻找到了智慧生物或与地球一样适宜人居的星球,我们也要铭记这位为人工智能做出杰出贡献且英年早逝的科学家。

尽管神经网络的研究进入寒冬,被人忽略的1974年反向传播思想的提出预示着一定会有另一些人在另外的合适时间及场合重新发现这个神经网络的救命稻草。我们还会看到一些学者的坚持,使得这个漫长得冬天并非那么寒冷,就像大家经常说的那样,冬天来了,春天还会远吗?

参考文献:

[1]Donald_O._Hebb ,https://en.wikipedia.org/wiki/Donald_O._Hebb

[2]佩德罗·多明戈斯,终极算法:机器学习和人工智能如何重塑世界精,中信出版社,2017年1月

[3]尼克,人工智能简史 人民邮电出版社,2017.12

[4]伊万·彼得罗维奇·巴甫洛夫,https://baike.baidu.com/item/伊万·彼得罗维奇·巴甫洛夫

[5]圣地亚哥·拉蒙-卡哈尔,致青年学者,新华出版社,2010年。

[6]Marvin Minsky , https://en.wikipedia.org/wiki/Marvin_Minsky

[7]Leslie Lamport , https://en.wikipedia.org/wiki/Leslie_Lamport

[8]马跃 译 编程语言原理 第10版 清华大学出版社 2013年

[9]Joseph Marie Jacquard, https://baike.baidu.com/item/Joseph

[10]王安, https://baike.baidu.com/item/王安/4457

[11] Rosenblatt's Contributions. csis.pace.edu.

[12]John McCarthy https://en.wikipedia.org/wiki/John_McCarthy_(computer_scientist)

[13] New Navy Device Learns By Doing. nytimes.com.

[14]Minsky, Marvin; Papert, Seymour. Perceptrons: An Introduction to Computational Geometry. MIT Press.

[15] 1960: An adaptive "ADALINE" neuron using chemical "memistors"

[16]Sebastian Raschka , Single-Layer Neural Networks and Gradient Descent http://sebastianraschka.com/Articles/2015_singlelayer_neurons.html

[17]James Lighthill , https://en.wikipedia.org/wiki/James_Lighthill

[18]Werbos, P.. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University, 1974

[19]Andrew Grant,送望远镜上天,去寻找外星行星!https://www.guokr.com/article/425871/

推荐阅读

[1] 机器学习-波澜壮阔40年 【获取码】SIGAI0413.

[2] 学好机器学习需要哪些数学知识?【获取码】SIGAI0417.

[3] 人脸识别算法演化史 【获取码】SIGAI0420.

[4] 基于深度学习的目标检测算法综述 【获取码】SIGAI0424.

[5] 卷积神经网络为什么能够称霸计算机视觉领域? 【获取码】SIGAI0426.

[6] 用一张图理解SVM的脉络 【获取码】SIGAI0428.

[7] 人脸检测算法综述 【获取码】SIGAI0503.

[8] 理解神经网络的激活函数 【获取码】SIGAI2018.5.5.

[9] 深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读 【获取码】SIGAI0508.

[10] 理解梯度下降法 【获取码】SIGAI0511.

[11] 循环神经网络综述—语音识别与自然语言处理的利器 【获取码】SIGAI0515

[12] 理解凸优化 【获取码】 SIGAI0518

[13] 【实验】理解SVM的核函数和参数 【获取码】SIGAI0522

[14] 【SIGAI综述】行人检测算法 【获取码】SIGAI0525

[15] 机器学习在自动驾驶中的应用—以百度阿波罗平台为例(上) 【获取码】SIGAI0529

[16] 理解牛顿法 【获取码】SIGAI0531

[17] 【群话题精华】5月集锦—机器学习和深度学习中一些值得思考的问题 【获取码】SIGAI 0601

[18] 大话Adaboost算法 【获取码】SIGAI0602

[19] FlowNet到FlowNet2.0:基于卷积神经网络的光流预测算法 【获取码】SIGAI0604

[20] 理解主成分分析(PCA) 【获取码】SIGAI0606

[21] 人体骨骼关键点检测综述 【获取码】SIGAI0608

[22] 理解决策树 【获取码】SIGAI0611

[23] 用一句话总结常用的机器学习算法 【获取码】SIGAI0611

[24] 目标检测算法之YOLO 【获取码】SIGAI0615

[25] 理解过拟合 【获取码】SIGAI0618

[26] 理解计算:从√2到AlphaGo ——第1季 从√2谈起 【获取码】SIGAI0620

[27] 场景文本检测——CTPN算法介绍 【获取码】SIGAI0622

[28] 卷积神经网络的压缩和加速 【获取码】SIGAI0625

[29] k近邻算法 【获取码】SIGAI0627

[30] 自然场景文本检测识别技术综述 【获取码】SIGAI0627

[31] 理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 【获取码】SIGAI0704

[32] 机器学习算法地图 【获取码】SIGAI0706

[33] 反向传播算法推导-全连接神经网络 【获取码】SIGAI0709

[34] 生成式对抗网络模型综述 【获取码】SIGAI0709.

[35] 怎样成为一名优秀的算法工程师【获取码】SIGAI0711.

[36] 理解计算:从根号2到AlphaGo——第三季 神经网络的数学模型 【获取码】SIGAI0716

[37]【技术短文】人脸检测算法之S3FD 【获取码】SIGAI0716

[38] 基于深度负相关学习的人群计数方法【获取码】SIGAI0718

[39] 流形学习概述【获取码】SIGAI0723

[40] 关于感受野的总结 【获取码】SIGAI0723

[41] 随机森林概述 【获取码】SIGAI0725

[42] 基于内容的图像检索技术综述——传统经典方法【获取码】SIGAI0727

[43] 神经网络的激活函数总结【获取码】SIGAI0730

[44] 机器学习和深度学习中值得弄清楚的一些问题【获取码】SIGAI0802

[45] 基于深度神经网络的自动问答系统概述【获取码】SIGAI0806

[46] 机器学习与深度学习核心知识点总结 写在校园招聘即将开始时 【获取 码】SIGAI0808

[47] 理解Spatial Transformer Networks【获取码】SIGAI0810

[48] AI时代大点兵-国内外知名AI公司2018年最新盘点【获取码】SIGAI0813

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档