深度学习架构与实践
上QQ阅读APP看书,第一时间看更新

1.2 深度学习的发展历史及研究现状

1.2.1 深度学习的发展历史

生物中的神经网络的研究对深度学习的出现起到很大的作用。20世纪60年代,随着神经科学对人脑结构研究的深入,计算机科学家从中获得启发,人工神经网络被提出用于模拟人脑处理数据的流程,以此试图让机器也具有类似于人一样的智能。其中最著名的学习算法称为感知机,但当时提出的感知机模型并不包含隐含层单元,只具有两层结构,输入是人工预先选择好的特征,因此局限于学习具有固定特征的线性函数,对于非线性分类问题一筹莫展。这一局限被提出后,神经网络的研究一度陷入低谷,直到在20世纪80年代中期反向传播(Back Propagation, BP)算法的提出,打开了多层隐含层结构的神经网络模型的学习途径,神经网络的寒冬才被驱散[2]

隐含层单元的增加,从表达力层面来讲,比两层结构的感知机更加机动充盈。然而,多层神经网络虽能够构建更复杂的数学模型,但模型学习的难度同时也提高了。尤其需要注意的是在使用BP算法训练时,如果网络模型中隐含层过多,往往会使结果陷入局部最小值。除此之外,梯度衰竭等也是BP算法需要解决的问题[2]。种种局限性使BP算法在面对隐含层数量较多的深度神经网络时,训练达不到预期的效果。

截至2006年,浅层架构(Shallow-structured)是大多数机器学习的研究热点,这种架构上缺乏自适应非线性特征的多层结构,只包含了一层典型的非线性特征变换。如隐马尔可夫模型(Hidden Markov Model, HMM)、线性或非线性动态系统、最大熵(Max-Entropy)模型、支持向量机(Support Vector Machine, SVM)、逻辑回归、条件随机场(Conditional Random Field, CRF)、内核回归和具有单层隐含层的多层感知机(Multilayer Perceptron, MLP)神经网络。浅层架构在许多简单或受限问题中成效尚可,但由于本身的有限建模与表现能力,浅层架构在处理自然信号和现实问题,如人的讲话,自然的声音、图像和视觉场景等时,仍有不小的困难[3]

在实际处理目标分类问题时,这些目标或许是文档、图像、音频等,需要解决的一个问题是将要处理的目标用数据的形式表达出来。对于解决一个实际问题来说,某一目标的表示选取什么特征是十分重要的。但若想通过人为去选取特征,时间和劳动成本会很高[4]。那么,我们能不能研究出一种自动学习的算法去解决这个问题呢?这时,深度学习(Deep Learning)就诞生了,从它的另一个名字——“无监督的特征学习(Unsupervised Feature Learning)”中的“无监督”这个叫法,我们就能看出来这种特征学习是自动的、无人为参与的方法[3]

我们常听到的深度学习,即深度结构的学习。在2006年左右,这个概念由Geoffrey等人在发表的“Reducing the dimensionality of data with neural networks”文章中首次提出,自此在机器学习研究中开始作为一个新兴的领域出现,并很快掀起了学术界和工业界的浪潮。他们提出了两个观点:1)具有多隐含层的人工神经网络有着更好的特征学习能力,获得的特征对数据有更本质的刻画,更方便分类和可视化;2)“逐层初始化”能够很好地降低深度神经网络在训练上的难度。在这篇文章中,通过无监督学习来实现逐层初始化[3]

深度学习作为机器学习的一个子分支,自然也是通向人工智能的途径之一。通俗来讲,深度学习是一种能够使计算机系统借助经验和数据,学习事件的潜在规律的技术。机器学习作为唯一切实可行的方法,能够构建出人工智能系统,并使其在复杂的实际环境下运行。而深度学习是一种特定类型的机器学习,同样具有强大的能量,甚至可以将自然界的万物用嵌套的层次概念体系表示出来,这种表示方式是由较简单概念间的联系定义复杂概念,由一般抽象概括到高级抽象[4]。图1-3说明了这些不同的人工智能学科之间的关系。深度学习既是一种表征学习,也是一种机器学习,可以用于许多(但不是全部)人工智能方法。维恩图的每个部分包括一个人工智能技术的实例。

1.2.2 深度学习的研究现状

深层神经网络算法的研究过程其实不尽如人意。对于隐含层二层或三层的神经网络虽能取得较好的实验结果,但当面对含有更多隐含层的神经网络时,训练结果却很难令人满意。

训练深度神经网络一直处于很困难的状况下,直至在无监督预训练出现之前这种状况都一直存在,而卷积神经网络却是一个特殊的存在。同样从人体结构——视觉系统中受启发而产生,1980年,Fukushima在神经认知机中提出第一个卷积神经网络(Convolutional Neural Network, CNN),在此之后,LeCun等人在此基础上改进了算法,他们在1989年和1998年分别用误差梯度设计并训练CNN,使得算法在某些模式识别任务上有更加出色的表现[4]

图1-3 人工智能学科维恩图

2000年,Hinton提出了对比散度(Contrastive Divergence, CD)的学习算法,该算法采用了一个近似概率分布的差异度量对比散度,在学习时十分高效[6]

2006年,Hinton提出了深度信念网(Deep Belief Net, DBN)模型及其无监督学习算法——基于层叠的受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)深度信念网的学习算法。它将一个深度学习网络模型视为由许多RBM堆叠而成,然后无监督地由低到高一步一步训练这些RBM,且CD算法还可以将各RBM单独训练。这样一来,对于整体网络的训练过程就直接绕过了整体训练的高度复杂性,变成了对多个RBM的训练学习的问题。通过这种方法训练而成的网络,底层全是向下的连接方向,而顶层则是无方向连接。接下来再用神经网络的学习算法对网络参数进行微调,使整个网络收敛至局部最优点。前后者的联合处理,是我们利用RBM算法先获得较优的初始,随后再进行传统训练,如此一来,就获得了不错的初始参数值和最终效果较好的参数值[7]

2008年,随机极大似然(Stochastic Maximum Likelihood, SML)算法被Tieleman提出,又称连续对比散度(Persistent Contrastive Divergence, PCD)算法,此算法之所以重要是在于它保证了极大似然数学习的同时还修正了CD算法极大似然度的缺点,比原来的CD算法更加高效。

2009年,Tieleman又对PCD算法进行了改进,添加了多一组的参数辅助学习,即马尔可夫链蒙特卡洛(Markov Chain Monte Carlo, MCMC)采样[7]

2009~2010年,计算机科学家们提出了很多基于回火的MCMC算法,如回火转移(Tempered Transition)算法、模拟回火(Simulated Tempering)算法、并行回火(Parallel Tempering)算法等[7]

除此之外,在实际应用中,深度学习也做出了举足轻重的贡献。李春林等人提出了一种深度学习网络的设计方法,这种方法结合了网络数据的特点,针对的是如何将深度学习应用到网络入侵检测中以提高入侵检测准确率的问题,并且后续在此基础上提出一种基于深度学习的入侵检测方法。余永维等人提出一种利用深度学习网络来实现的智能识别方法,此算法用于解决建立射线无损检测智能化信息处理平台的需求。王宪保等人训练获取网络的初始权值,根据样本特征建立深度置信网络,提出了一种基于深度学习的太阳能电池片表面缺陷检测方法[7]