细说PyTorch深度学习:理论、算法、模型与编程实现
上QQ阅读APP看书,第一时间看更新

1.1 人工智能和深度学习

深度学习是人工智能的一个重要分支,尤其是近十多年来随着计算机算力的提升,深度学习技术重塑了人工智能。本节从人工智能入手,带领读者熟悉深度学习的基础知识。

1.1.1 人工智能

人工智能是一个十分宽泛的概念,现代研究通常认为人工智能是计算机学科的一个分支,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。

1956年,约翰·麦卡锡在美国达特茅斯学院主持召开了一场人工智能夏季研讨会,创建了人工智能这一科学领域,并掀起了科技界的一场革命,从此人工智能技术逐渐改变了整个世界的科技发展。

人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识、心理学和哲学。人工智能是内容十分广泛的科学,它由不同的领域组成,如机器学习、计算机视觉等,总的来说,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种复杂工作的理解是不同的。在当代,人工智能的研究应用已经深入百姓的吃、穿、住、行等日常生活中,实际应用包括指纹识别、人脸识别、虹膜识别、掌纹识别、专家系统、自动规划、智能搜索、博弈、自动程序设计、智能控制、机器人学、语言和图像理解、遗传编程等。具体的,例如滴滴打车、百度搜索、有道翻译、搜狗输入法、天猫商城、京东商城、掌上生活、火车票人脸识别系统、核酸检测系统等,其中都涉及大量人工智能技术的应用。

当今没有统一的原理或范式指导人工智能研究,在许多问题上研究者都存在争论,其中几个长久以来仍没有结论的问题是:是否应从心理或神经方面模拟人工智能,或者像鸟类生物学对于航空工程一样,人类生物学与人工智能研究是没有关系的,智能行为能否用简单的原则(如逻辑或优化)来描述,还是必须解决大量完全无关的问题等,这些问题还都没有明确的答案。这些都需要在后续继续进行研究,但是所有的这一切都不妨碍人工智能技术取得巨大成功。

1.1.2 深度学习

深度学习由浅层学习发展而来。实际上,在20世纪50年代,就已经有浅层学习的相关研究,代表性工作主要是罗森布拉特(F. Rosenblatt)基于神经感知科学提出的计算机神经网络,即感知器,在随后的10年中,浅层学习的神经网络曾经风靡一时,特别是马文·明斯基提出了著名的XOR问题和感知器线性不可分的问题。但随后进入了一段时间的冷却期。

1986年诞生了用于训练多层神经网络的真正意义上的反向传播算法,这是现在的深度学习中仍然在使用的训练算法,奠定了神经网络走向完善和应用的基础。

1989年,LeCun设计出了第一个真正意义上的卷积神经网络,用于手写数字的识别,该算法在当时的美国银行系统得到了成功应用,需要重点说明的是,这是现在被广泛使用的深度卷积神经网络的鼻祖。

在1986-1993年,神经网络的理论得到了极大的丰富和完善,但当时很多因素限制了它的大规模使用,例如工业发展水平、计算机网络水平、计算机硬件水平等。

到了20世纪90年代,可以说进入了机器学习百花齐放的年代。在1995年诞生了两种经典的算法:支持向量机(Support Vector Machine,SVM)和AdaBoost(自适应增强),此后它们纵横江湖数十载,神经网络则黯然失色,主要由于神经网络算法计算复杂度、梯度消失以及爆炸问题,在当时计算机网络和硬件计算水平有限的大环境下限制了神经网络算法的使用。

支持向量机算法代表了核(Kernel)技术的胜利,这是一种思想,通过隐式地将输入向量映射到高维空间中,使得原本非线性的问题得到很好的处理,因此在当时得到了广泛的应用,在当今若问题规模不大时支持向量机算法仍然具有广泛的应用领域。而AdaBoost算法则代表了集成学习算法的胜利,通过将一些简单的弱分类器集成起来使用,能够达到惊人的精度,该思想现在仍被使用。

当今语音领域炙手可热的LSTM(Long Short-Term Memory,长短期记忆网络)在2000年就出现了,这让很多读者感到惊讶。LSTM在很长一段时间内一直默默无闻,直到2013年后与深度循环神经网络(Deep-Recurrent Neural Network,Deep-RNN)整合,才在语音识别上取得成功。

由于计算机的运算能力有限,多层网络训练困难,通常都是只有一层隐含层的浅层模型,虽然各种各样的浅层机器学习模型相继被提出,在理论分析和应用方面都产生了较大的影响,但是理论分析的难度和训练方法需要很多经验和技巧,随着最近邻(K-Nearest Neighbor,KNN)等算法的相继提出,浅层模型在模型理解、准确率、模型训练等方面被超越,机器学习的发展几乎处于停滞状态。

虽然真正意义上的人工神经网络诞生于20世纪80年代,反向传播算法(BP算法)、卷积神经网络(Convolutional Neural Networks,CNN)、LSTM等早就被提出,但遗憾的是神经网络在过去很长一段时间内并没有得到大规模的成功应用,在与SVM等机器学习算法的较量中处于下风。原因主要有:算法本身的问题,如梯度消失问题,导致深层网络难以训练;训练样本数的限制;计算能力的限制。直到2006年,随着计算机硬件技术的飞速发展,算力不再受限,移动网络技术飞速发展,世界互联,产生了巨量的数据,情况才慢慢改观。

神经网络研究领域领军者Hinton在2006年提出了神经网络深度学习(Deep Learning)算法,被众多学习者奉为该领域的经典著作,使神经网络的能力大大提高,向支持向量机算法发出挑战。2006年,机器学习领域的泰斗Hinton和他的学生Salakhutdinov在顶尖学术刊物《科学》(Science)上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮,微软、IBM等工业巨头投入了大量资源开展研究,MIT等科研机构更是成果层出不穷。

Hinton的学生Yann LeCun的LeNets深度学习网络可以被广泛应用在全球的ATM机和银行之中。同时,Yann LeCun和吴恩达等认为卷积神经网络允许人工神经网络进行快速训练,因为它所占用的内存非常小,无须在图像上的每一个位置上都单独存储滤镜,因此非常适合构建可扩展的深度网络,因此卷积神经网络非常适合识别模型。这些人都是机器学习领域全球的领导者。

目前,新的深度学习算法面临的主要问题更加复杂,深度学习的应用领域从广度向深度发展,这对模型训练和应用都提出了更高的要求。随着人工智能的发展,冯·诺依曼式的有限状态机的理论基础越来越难以应对目前神经网络中层数的要求,这些都对深度学习新的算法的发展和应用提出了挑战。

深度学习的发展并不是一帆风顺的,经历了螺旋式上升的过程,机遇与困难并存。凝聚国内外大量的研究学者的成果才有了今天人工智能的空前繁荣,是量变到质变的过程,也是内因和外因的共同结果,符合客观事物发展规律。目前处于一个美好的时代,是深度学习的波峰时期。

深度学习技术通过具体的深度学习框架来实现,下一节简要介绍目前一些常见的深度学习框架。