第1章 深度学习神经网络:方法和范围
1.1 定义
DLNN可以定义为一种神经网络体系结构。它可以促进对深藏在输入信息中且不易获取的数据进行深入学习、检索和分析,在深入挖掘输入数据方面的能力通常比其他(非神经网络)计算方法更有效,因为它在特定任务中有效地集成了多种数学、逻辑和计算方法。这些方法包括线性或非线性、解析或启发式、确定性或随机性的方法。
DLNN的另一个定义是利用多层非线性信息处理的机器学习技术,用于有监督和无监督的特征提取和转换,以及模式分析和分类。此外,DLNN通常是前馈网络。
顾名思义,当简单的方法不能充分挖掘数据信息时,就需要深度学习实现对信息的深入挖掘。这通常需要构建庞大数据库的知识结构。尽管具有强有力的工具,这个数据库也必须是多种多样的。然而,这些工具必须进行智能融合。这种融合不能有偏颇,应取决于对结果的无偏学习。DLNN通过学习自适应地排列整个数据库。这就是它的目的,也是本书的主要内容。
与其他神经网络体系结构一样,DLNN结构试图在一定程度上模仿生物的大脑结构。它的融合算法并不存在于生物大脑中,这与大脑本身从外部预处理器接收输入的方式不太一样。光输入视网膜中被预处理,声音输入耳蜗中被预处理(分别用于颜色识别或声频识别)。类似地,在发送到中枢神经系统(central nervous system, CNS)之前,嗅觉或味觉的化学预处理是在鼻子或舌头中进行的。在某种程度上,人们甚至可以把阅读文字视为对知识的预处理。
1.2 深度神经网络简史及其应用
深度学习从一开始就是机器智能的主要目标之一,因此它也是人工神经网络(artifical neural network, ANN)的主要用途之一。人们希望ANN能够利用计算机及其相关的编程能力挖掘比人类理解更深入的信息,并将各种数学方法整合起来直接应用于数据。因此,对某一特定的应用来说,揭示那些可能很重要却不明显的因素,始终是科学进步的期望,而计算机是实现这一目标的工具之一。此外,人们希望能够构建模仿人脑一般结构的机器,即在ANN结构中,寻求实现这一目标的基础。
反向传播(back propagation, BP)神经网络是第一种被设计出的通用深度学习ANN,由Rumelhart等于1986年提出。Werbos在1974年,Parker在1982年也曾提出类似的设计。BP是在Bellman动态规划理论的基础上发展起来的,目前仍广泛应用于几种主要的DLNN体系结构中。然而,尽管它具有普遍性,但本身过于缓慢,无法有效地融合许多深度学习需要的前置滤波或预处理的数学算法。
1975年,Fukushima提出一种能模拟视网膜功能的认知机神经网络,并将它用于机器视觉模式识别。他在1980年扩展了认知机,提出新认知机,但这仍然非常复杂,且相当缓慢,就像它的前身一样,仍限于视觉模式识别。尽管它不是深度学习网络,也不是卷积网络,但却是第5章要讨论的最重要的卷积神经网络(convolutional neural network, CNN)的基础。
CNN是目前公认的最流行的DLNN。从历史上看,CNN的灵感源自视觉皮层的建模,源于LeCun及其同事与图像识别有关的工作。因此,直到今天,CNN仍主要应用于与图像相关的问题也就不足为奇了。
1989年,LeCun等在基于5层BP的设计中加入了卷积操作,实现了比BP更深、更快的学习。虽然这一早期设计的训练时间约为3天,但是如今基于CNN设计的Le-Net 5在并行处理的情况下,仅需几分钟的训练时间(取决于涉及问题的复杂性)。
Hinton及其同事将基于CNN体系结构的应用范围扩展到语音识别和自然语言处理。因此,CNN很快成为图像处理和语音处理的主流方法,并超过其他体系结构,如基于支持向量机(support vector machine, SVM)的算法或其他算法。目前,如果某些应用可以表示或重新表示为二维或高维空间形式,即矩阵或张量表示法,或任何其他合适的特征图,那么这些应用就可以采用CNN处理。因此,CNN成为解决复杂深度学习问题最广泛使用的神经网络。
相关文献中出现许多关于CNN的应用,我们只提到以下几个方面。
静态图像和视频应用:LeCun提出的CNN(Ciresan)打破了手写文本识别的记录,由Ji等设计的3D结构(Simonyan和Zisserman)实现了CNN在视频中的应用,以及在语音中的应用。
其他应用领域:包括故障检测、金融、搜索引擎、医药等。
1996年,Graupe和Kordylewski提出一种不受层数限制的大内存存储和检索神经网络(large memory storage and retrieval neural network, LAMSTAR或LNN)。该神经网络发展成一种基于广义神经网络的学习机器,用于计算来自不同数据源的预测、检测和决策。数据可以是确定的、随机的、空间的、时间的、逻辑的、时变的、非解析的,或者以上的组合。LAMSTAR是一个赫布(Hebbian)神经网络,源于1969年的机器智能模型。该模型是由Kant在Understanding中提出的相关概念,源于不同大脑皮层和脑层之间的神经元相互联系的启发。它能够从不同的协处理器(随机的、解析的或非解析的,包括熵、小波等)中对参数进行积分和排序。它的速度源于采用Hebbian-Pavlovian原则和Kohonen的赢者通吃(winner takes all, WTA)原则,以及易于并行计算。
LAMSTAR被成功地应用于医学预测和诊断、金融计算、视频处理、计算机入侵、语音等各个领域,以及第6章和第8章的研究中提到的领域。
基本的LAMSTAR结构(LAMSTAR-1或LNN-1)于2008年由Schneider和Graupe标准化,并产生一个改进的版本(LAMSTAR-2或LNN-2)。LAMSTAR-2在不影响计算速度的同时提高了性能。
1.3 本书范围
尽管DLNN发展历史较短,但仍有多种结构被相继提出。虽然这些结构会用到不同的方法,但是根据问题编写算法仍是一项非常重要的任务。此外,虽然神经网络应该遵循或近似基于CNS体系结构,但许多DLNN结构却与CNS体系结构几乎没有共同之处。我们对CNN本身的认识仍然肤浅,无法对其建模。许多DLNN设计借鉴了广泛的数学理论和方法,并将这些理论和方法应用到类似网络的算法中。在任何简单情况下,体系结构的约束对这种融合来说都是过于严格的,根据其定义,深度学习需要“所有可能的工具”。因此,需要借用任何我们可实现的数学方法。
DLNN可以划分为三类。
第一类的特点是融合流畅、智能,网络计算速度快,适用范围广。
第二类基于特定的工具,允许针对特定类别的问题进行深入学习,在某些情况下,也可以快速地进行深度学习。
第三类的特点是融合复杂、网络缓慢,因此吸引力有限。
深度学习也可以通过非神经网络结构来实现。例如,SVM的应用范围很广泛,但速度很慢,尤其是在非常复杂或具体的问题中。
本书主要关注第一类DLNN。事实上,我们打算证明这些DLNN能够适应不同的深度学习问题,并提供良好的性能。它们的设计速度快,不仅是因为采用神经网络结构,允许融合外部的数学和算法工具,同时它们的性能和速度与设计非常耗时的Ad-Hoc算法相比具有很强的竞争力。不遵循这一设计框架的深度学习技术,特别是生成非监督技术,不能视为第一类DLNN。
本书研究的DLNN在性能和速度上令人满意,可以作为飞机、汽车、非线性控制器、机器人、医学植入、医学预测和诊断工具、交易和金融分析工具等工业和医疗工具和设备的产品。在大多数情况下,Ad-Hoc设计慢,太依赖完全相同类型的输入数据,在适应现实世界和在线环境方面要求太高。DLNN能够很好地解决这些问题。
因此,本书将对以下DLNN网络进行深入讨论。
① BP神经网络。
② CNN。
③ LAMSTAR。
我们认为,BP神经网络有非常广泛的应用范围,同时也是一种潜在的DLNN,但BP神经网络速度太慢,不适用于深度学习,可以作为CNN的一个学习单元(CNN是最流行的DLNN)。此外,它在其他深度学习网络中也起着重要的作用,特别是在深度递归神经网络(deep recurrent neural network, DRNN)和反卷积/小波神经网络(deconvolution convolutional neural network, DCNN或wavelet neural network, WNN)中。因此,对它的学习有助于我们对后面内容的理解。
此外,我们还提出另外三个神经网络。
① 深度玻尔兹曼机 (deep Boltzman machine, DBM)。
② DRNN。
③ DCNN/WNN。
DBM和DCNN/WNN的应用领域受限。DRNN在复杂问题中的应用非常缓慢。DBM和DCNN也不能融合多种工具。
1.4 本书的结构安排
本书组织结构如下。
第2章简要介绍神经网络相关的基本概念,并将其应用于DLNN。
第3章介绍BP,其理论遵循Bellman的动态规划理论。该理论使BP网络成为第一个真正意义上的广义神经网络。BP动态规划学习算法为CNN和其他深度学习网络提供了学习引擎。
第4章介绍Fukushima认知神经网络及其扩展神经网络(神经认知神经网络)。这两种神经网络被首次尝试应用到一个非常复杂的系统,即基于神经网络结构的生物视网膜。其目的不是作为一个广义的学习机器,因为计算是非常耗时的。然而,认知机和新认知机促进了DLNN发展,即CNN。
第5章介绍CNN。CNN是最早发展起来的用于图像识别的神经网络。CNN几乎成为深度学习的代名词,被广泛应用于各个领域。CNN采用BP作为学习引擎。
第6章介绍LAMSTAR。LAMSTAR与其他神经网络不同,它使用经过Hebbian训练的连接权值,用于从不受数量限制的预处理滤波器的融合反馈,并对输入进行排序。
第7章介绍DBM、DRNN和DCNN三种DLNN的原理。由于结构或计算速度,这些网络在应用范围上的通用性有限。从某种意义上来说,这些网络基于深度学习,可以深入挖掘信息,但不能集成超出其范围的工具。
第8章介绍有关DLNN应用的20个案例。所有的这些案例都涉及两个或更多不同的神经网络。每个案例都比较了该案例涉及网络的综合性能(准确性、成功率),以及在完全相同的数据、相同的计算机和相同的编程语言(每个特定的案例)情况下的计算时间。这一章讨论的案例不包括应用范围有限的深度学习网络,如DCNN、DBM或DRNN。
这一章附录给出20个案例的程序核心代码。这些程序不是各个案例的完整程序。因此,为第8章涉及的每项研究提供相应的参考代码和相关网址,方便读者学习。案例涵盖的应用领域广泛,有助于说明DLNN的通用性,以及上述主要深度学习网络的通用性。
接下来是对于相同输入数据的性能和计算速度的比较。必须强调的是,案例复杂性较低,没有反映出对更复杂案例的必要支持。本书的案例主要使用直接的和标准的程序。神经网络的思想是可以在没有专家知识的情况下使用,使计算机解决大多数问题,并会产生“好”结果的一种工具。因此,如果一种网络对于一个给定的问题成功率是100%,并比另一种网络更快,那么它就像人们期望的一样“好”。
第9章给出结论性意见和评价。
参考文献
Abdel-Hamid O, Deng L, Yu D, “Convolutional neural network structure
展开