深度学习:基于Python语言和TensorFlow平台(视频讲解版)
上QQ阅读APP看书,第一时间看更新

1.5 人工智能研究的沉默探索与复苏

在AI的第一个寒冬过程中,人们对AI的研究并没有完全停止,总有一些信念坚定的人在坚持。但是,这次AI所遇到的挫折也给之前对AI抱过高期望值的研究者降了温,研究者们更理性地思考AI所能够做到的事情,开始收缩AI系统的目标和AI研究的范围,将其局限在最有可能发挥当时条件下AI系统能力的方向上。现在回过头去看,在这个阶段及后面的沉默探索过程中,很多研究成果对后来神经网络的发展是具有相当重要的作用的,有一些甚至是决定性的。

20世纪60年代末,人们开始了关于专家系统的研究,专家系统是汇聚了某个领域内的专家知识和经验,由计算机系统进行推理和推断,帮助和辅助人类进行决策的系统。专家系统至今仍活跃于人工智能领域,是人工智能领域的一个重要分支,被广泛应用于自然语言处理、数学、物理、化学、地质、气象、医疗、农业等行业。1972年,面向专家系统应用的高级计算机语言Prolog面世。Prolog是一款支持知识获取、知识存储和管理的计算机语言。当时其他的大多数语言还是聚焦于计算与流程的控制上,基本上还是以顺序执行的程序为主;而Prolog语言没有所谓的执行顺序,它主要的使用方式是由人来提出问题,机器根据知识库来回答问题。这种形式和现在基于事件产生反馈的非顺序化编程方式非常相似,这在当时,甚至现在也是属于比较先进的一种方式。

图1.5中,第一个线框中是一段用Prolog语言编成的实例代码,前3行分别定义了3件事实,即亚当(adam)是男人,夏娃(eve)是女人,蛇(snake)是动物;最后一行定义了一条规则,即如果X是男人,Y是女人,那么X和Y相爱。第二个线框中是前面Prolog代码执行时,我们做出的提问,例如,当问到亚当夏娃是否相爱时,系统会回答“true”(是);当问到夏娃和蛇是否相爱时,系统会回答“false”(否)。这就是一个典型的把知识灌输给计算机系统后进行使用的例子,其中事实和规则都是知识,而提问和获得答案的过程就是对专家系统知识库的应用。

专家系统和以Prolog为代表的人工智能语言的出现,标志着人们把对知识认知和应用作为人工智能研究的重要方向之一;从此之后,对于知识表达形式的研究,以及如何利用知识进行推理和计划决策等研究,逐步被人们重视起来,并对后来的人工智能领域产生了深远的影响。

图1.5 Prolog代码示意图

1972年,芬兰科学家托伊沃·科霍宁(Teuvo Kohonen)提出了自组织特征映射(Self-organizing Feature Map,SOFM)网络,这是一个支持无监督学习(Unsupervised Learning)的神经网络模型,能够识别环境特征并自动分类。无监督学习是人们收集数据,让神经网络自己去发现规律并做出处理的机器学习方法,是现在乃至未来人工智能研究的重要方向之一。

1974年,保罗·沃波斯(Paul Werbos)第一次提出了后来对神经网络的发展腾飞具有重要意义的反向传播算法(Back-propagation Algorithm,简称BP算法)。该算法是根据神经网络的计算结果误差来调整神经网络参数以达到训练神经网络目的的方法。但由于处于AI的寒冬期中,该方法在当时没有得到足够的重视。

1976年,美国认知学家、神经学家史蒂芬·格罗斯伯格(Stephen Grossberg)和他的伙伴女神经学家盖尔·卡彭特(Gail Carpenter)提出了一种自适应共振理论(Adaptive Resonance Theory,ART)。在这个理论中,提出了一些支持有监督和无监督学习的神经网络,来模仿人脑的方式处理模式识别和预测等问题。

1982年,美国物理学家约翰·约瑟夫·霍普菲尔德(John Joseph Hopfield)提出了一种具有反馈机制的神经网络,被称为霍普菲尔德网络(Hopfield Network)。霍普菲尔德首次引入了能量函数的概念,形成了神经网络一种新的计算方法;用非线性动力学方法研究神经网络的特性,提出了判断神经网络稳定性的依据,并指出了神经网络中信息存储的方式。霍普菲尔德提出了动力方程和学习方程,对神经网络算法提供了重要公式和参数,使神经网络的构造和学习有了理论指导。1984年,霍普菲尔德用运算放大器模拟神经元,用电子线路模拟神经元之间的连接,成功实现了自己提出的模型,从而重新激发了很多研究者对神经网络的研究热情,有力地推动了神经网络的研究。

1983年,安德鲁·G. 巴托(Andrew G. Barto)、理查德·S. 萨顿(Richard S. Sutton)等人发表了关于增强学习(Reinforcement Learning)及其在控制领域的应用的文章。增强学习是研究机器如何在不断变化的环境中相应地做出最合适的反应的方法,主要通过让机器不断调整自己的行为以求获得更好的长效回报(Long-term Reward)来实现机器学习。增强学习现在结合深度学习的其他方法,已经成为深度学习领域中非常热门的一个分支,被广泛应用于无人驾驶、电子竞技等方面。

1985年,大卫·艾克利(David Ackley)、杰弗里·辛顿(Geoffrey Hinton)和特里·塞吉诺斯基(Terry Sejnowski)等人基于霍普菲尔德神经网络加入了随机机制,提出了玻尔兹曼机(Boltzmann Machine)的模型,这个模型由于引入了随机振动的机制,一定程度上具备了让神经网络摆脱局部最优解的能力。

1986年,大卫·鲁姆哈特(David Rumelhart)和詹姆斯·麦克莱兰(James McClelland)在《并行分布式处理:对认知微结构的探索》(Parallel Distributed Processing:Explorations in the Microstructure of Cognition)一文中,重新提出了反向传播学习算法(Back-propagation Learning Algorithm,简称BP算法)并给出了完整的数学推导过程。BP算法正式出现的意义在于,对于如何更高效地训练神经网络,让神经网络更有序地进行学习,提供了有效的、可遵循的理论和方法,这在以后神经网络(尤其是深度学习)领域是一个里程碑式的事件,至今BP方法仍然是训练多层神经网络的最主要、最有效的方法。在同一时期,辛顿、罗纳德·威廉姆斯(Ronald Williams)、大卫·帕克(David Parker)和杨立昆(Yann LeCun)等人也分别做出了关于BP算法的独立研究或类似的贡献。

这一时期的重要成果还包括多层前馈神经网络(Multilayer Feedforward Neural Network)模型的提出和梯度下降算法等数学和概率论方法被应用于神经网络的学习中。多层前馈神经网络是一个包含输入层、多个隐藏层和输出层在内的神经网络(见图1.6),所谓的前馈指的是神经网络中的各层均只从上一层接收信号并向下一层输出信号,即每层只向前传递信号而不向后反馈;梯度下降算法则被作为训练神经网络的反向传播算法的基础之一。另一重要的贡献是,基于不同研究人员及多方面对多层神经网络的研究,基本上推翻了明斯基对于多层感知机无法实现解决非线性问题的预测,这给神经网络的研究者们继续按此方向研究下去提供了极大的信心。

图1.6 典型的多层前馈神经网络结构图