深度学习从0到1
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 神经网络和深度学习的发展史

神经网络的发展历史中有过3次热潮,分别发展在20世纪40年代到20世纪60年代和20世纪80年代到20世纪90年代,以及2006年至今。每一次神经网络的热潮都伴随着人工智能的兴起,人工智能和神经网络一直以来都有着非常密切的关系。

1.5.1 神经网络的诞生:20世纪40年代到20世纪60年代

1943年,神经病学家和神经元解剖学家麦卡洛克(W.S.McCulloch)和数学家匹茨(W.A.Pitts)在生物物理学期刊发表文章,提出神经元的数学描述和结构。并且证明了只要有足够的简单神经元,在这些神经元互相连接并同步运行的情况下,就可以模拟任何计算函数,这种神经元的数学模型称为M-P模型。该模型把神经元的动作描述为:

(1)神经元的活动表现为兴奋或抑制的二值变化;

(2)任何兴奋性突触输入激励后,使神经元兴奋;

(3)任何抑制性突触有输入激励后,使神经元抑制;

(4)突触的值不随时间改变;

(5)突触从感知输入到传送出一个输出脉冲的延时时间是0.5ms。

尽管现在看来M-P模型过于简单,并且观点也不是完全正确,但这个模型被认为是第一个仿生学的神经网络模型。他们提出的很多观点一直沿用至今,如他们认为神经元有两种状态,即兴奋和抑制。这跟后面要提到的单层感知器非常类似,单层感知器的输出不是0就是1。他们最重要的贡献就是开创了神经网络这个研究方向,为今天神经网络的发展奠定了基础。

1949年,心理学家赫布(Donald Olding Hebb)在他的一本名为The organization of behavior:A neuropsychological theory[4]的书中提出了Hebb算法。他也是首先提出“连接主义”(Connectionism)这一名词的人之一,这个名词的含义是大脑的活动是靠脑细胞的组合连接实现的。赫布认为,如果源和目的神经元均被激活兴奋时,它们之间突触的连接强度将会增强。他指出在神经网络中,信息存储在连接权值中,并提出假设神经元A到神经元B的连接权值与从神经元B到神经元A的连接权值是相同的。他这里提到的这个权值的思想也被应用到了我们目前所使用的神经网络中,我们通过调节神经元之间的连接权值来得到不同的神经网络模型,实现不同的应用。虽然这些理论在今天看来是理所当然的,但在当时看来这是一种全新的想法,算得上是开创性的理论。

1958年,计算机学家弗兰克·罗森布拉特(Frank Rosenblatt)提出了一种神经网络结构,称为感知器(Perceptron)。他提出的这个感知器可能是世界上第一个真正意义上的人工神经网络。感知器提出之后,在20世纪60年代就掀起了神经网络研究的第一次热潮。很多人都认为只要使用成千上万的神经元,他们就能解决一切问题。现在看来可能会让人感觉“too young too naive”,但感知器在当时确实是影响非凡。

这股感知器热潮持续了10年,直到1969年,人工智能创始人之一的明斯基(M.Minsky)佩帕特(S.Papert)出版了一本名为Perceptrons:An introduction to computationalgeometry[5]的书,书中指出简单的神经网络只能运用于线性问题的求解,能够求解非线性问题的网络应具有隐层,而从理论上还不能证明将感知器模型扩展到多层网络是有意义的。由于明斯基在学术界的地位和影响,其悲观论点极大地影响了当时的人工神经网络研究,为刚刚燃起希望之火的人工神经网络泼了一大盘冷水。这本书出版不久之后,几乎所有为神经网络提供的研究基金都枯竭了,没有人愿意把钱浪费在没有意义的事情上。

1.5.2 神经网络的复兴:20世纪80年代到20世纪90年代

1982年,美国加州理工学院的优秀物理学家霍普菲尔德(J.Hopfield)博士提出了Hopfield神经网络。Hopfield神经网络引用了物理力学的分析方法,把网络作为一种动态系统,研究这种网络动态系统的稳定性。

1985年,辛顿(G.E.Hinton)塞努斯基(T.J.Sejnowski)借助统计物理学的概念和方法提出了一种随机神经网络模型,即玻尔兹曼机(Boltzmann Machine)。一年后,他们又改进了模型,提出了受限玻尔兹曼机(Restricted Boltzmann Machine)

1986年,鲁梅哈特(Rumelhart)辛顿(G.E.Hinton)和威廉姆斯(Williams)提出了BP(Back Propagation)算法[6](多层感知器的误差反向传播算法)。到今天为止,这种多层感知器的误差反向传播算法还是非常基础的算法,凡是学神经网络的人,必然要学习BP算法。我们现在的深度网络模型基本上都是在这个算法的基础上发展出来的。使用BP算法的多层神经网络也称为BP神经网络(Back Propagation Neural Network)。BP神经网络主要指的是20世纪80年代到20世纪90年代使用BP算法的神经网络。虽然现在的深度学习也用BP算法,但网络名称已经不叫BP神经网络了。早期的BP神经网络的神经元层数不能太多,一旦网络层数过多,就会使网络无法训练,具体原因在后面的章节中会详细说明。

Hopfield神经网络、玻尔兹曼机和受限玻尔兹曼机由于目前已经较少使用,所以本书后面章节不再详细介绍这3种网络。

1.5.3 深度学习:2006年至今

2006年,多伦多大学的教授希顿(Geoffrey Hinton)提出了深度学习。他在世界顶级学术期刊“Science”上发表了论文“Reducing the dimensionality of data with neural networks[7],论文中提出了两个观点:①多层人工神经网络模型有很强的特征学习能力,深度学习模型学习得到的特征数据对原始数据有更本质的代表性,这将大大便于分类和可视化问题;②对于深度神经网络很难训练达到最优的问题,可以采用逐层训练方法解决。将上层训练好的结果作为下层训练过程中的初始化参数。在这一文献中,深度模型的训练过程中逐层初始化采用无监督学习方式。

希顿在论文中提出了一种新的网络结构深度置信网络(Deep Belief Net, DBN),这种网络使得训练深层的神经网络成为可能。深度置信网络由于目前已经较少使用,所以本书在后面的章节中将不再详细介绍这种网络。

2012年,希顿课题组为了证明深度学习的潜力,首次参加ImageNet图像识别比赛,通过CNN网络AlexNet一举夺得冠军。也正是由于该比赛,CNN吸引了众多研究者的注意。

2014年,香港中文大学教授汤晓鸥领导的计算机视觉研究组开发了名为“DeepID”的深度学习模型,在LFW(Labeled Faces in the Wild,人脸识别使用非常广泛的测试基准)数据库上获得了99.15%的识别率,人用肉眼在LFW上的识别率为97.52%,深度学习在学术研究层面上已经超过了人用肉眼的识别。

2016年3月的人工智能围棋比赛,由位于英国伦敦的谷歌(Google)旗下的DeepMind公司开发的AlphaGo战胜了世界围棋冠军、职业九段选手李世石,并以4:1的总比分获胜。

2018年6月,OpenAI的研究人员开发了一种技术,可以在未标记的文本上训练AI,可以大量减少人工标注的时间。几个月后谷歌推出了一个名为“DeepID”的模型,该模型在学习了几百万个句子以后学会了如何预测漏掉的单词。在多项NLP(Natural Language Processing)测试中,它的表现都接近人类。随着NLP技术的发展,相信将来,AI可以逐渐理解我们的语言,跟我们进行顺畅的对话,甚至成为我们的保姆、老师或朋友。

今天,人脸识别技术已经应用在了我们生活的方方面面,如上下班打卡,飞机、高铁出行,出门住酒店和刷脸支付等。我们已经离不开深度学习技术,而深度学习技术仍在快速发展中。