深度学习算法实践(基于Theano和TensorFlow)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-23 09:56:19

点击下载

作者:闫涛,周琦

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

深度学习算法实践(基于Theano和TensorFlow)

深度学习算法实践(基于Theano和TensorFlow)试读:

版权信息书名:深度学习算法实践(基于Theano和TensorFlow)作者:闫涛;周琦排版:小暑暑出版社:电子工业出版社出版时间:2018-03-01ISBN:9787121337932本书由电子工业出版社有限公司授权北京当当科文电子商务有限公司制作与发行。— · 版权所有 侵权必究 · —推荐序《深度学习算法实践(基于Theano和TensorFlow)》针对深度学习初学者的需求,详细讲解了深度学习典型算法的数学原理,给出了基于TensorFlow和Theano的算法实现,并以手写数字识别、图像标注、文本生成等为例,演示了深度学习算法的典型应用。作者立足于引导读者从解决问题的思路出发,层层剖析,逐步开发出实用的深度学习系统。通过阅读本书,在熟练掌握深度学习基本数学原理的基础上,读者不仅可以直接将书中内容用于项目实践,而且可以跟踪理解深度学习的最新进展。

自2017年下半年以来,深度学习又有了一些新进展,如注意力机制、生成式对抗网络、胶囊网络等,虽然本书还没有将其详细纳入,但是相信读者基于本书的知识架构,通过阅读相关论文及文献,理解并掌握这些算法并不困难。

当前,人工智能、深度学习技术的发展可谓一日千里,需要时刻跟踪业界的最新进展,才能保证自己的知识结构跟上业界发展步伐。作者拥有较深的理论造诣和丰富的实践经验,希望本书能够帮助读者掌握完整的知识体系,拥有较强的动手能力,成为人工智能、深度学习领域的学习型和实践型人才。中国工程院院士2018年3月9日前 言

2016年上半年,随着AlphaGo战胜围棋世界冠军李世石,深度学习技术迅速进入大众的视野,成为热门技术。无论是科技领域还是创业投资领域,深度学习技术都受到了前所未有的关注,面向深度学习技术的初创公司不断刷新融资数额的纪录。

随着深度学习技术的流行,市场上对于深度学习人才的需求量激增。但是,由于深度学习技术涉及高等数学、线性代数、数理统计和机器学习相关知识,故学习曲线比较陡峭。目前国内外著名大学深度学习相关专业硕博士、国家重点实验室学生,都被BAT等一线互联网公司抢光了,人才大战有愈演愈烈之势。普通公司和初创公司,在这场人才大战中处于劣势,面临着越来越严重的人才荒。

随着深度学习技术的深入应用,企业对深度学习技术人才的渴求是正常的,但是当前市场上对深度学习技术人才的需求是非理性的。一方面,大家疯抢的深度学习人才都是著名院校的硕博士和重点实验室的研究员,但是这部分人所受的训练和精通的领域是做算法研究,而企业的目的是实际应用,二者在很大程度上是不匹配的,最后可能是企业下了血本却没有产生效益;另一方面,对于很多深度学习应用来说,对项目本身业务的理解,比对深度学习算法的理解要重要得多,而由于业务专家不懂深度学习技术,致使很多好的应用领域没有合适的人才来做。

编写本书的目的就是解决上述问题,希望读者可以通过对本书的学习,迅速掌握深度学习的理论框架和知识体系,具备在自己的专业领域内应用深度学习技术的能力,同时还具备跟踪深度学习领域最新进展的能力,能够独立复现顶级期刊文章中介绍的新方法和新理论。

本书内容及知识体系

第一部分为深度学习算法概述,包括第1章。

第1章简单介绍神经网络和深度学习发展史、现状和发展趋势,介绍并比较了深度学习开源框架,还介绍了开源框架的选择标准。

第二部分为深度学习算法基础,主要讲述深度学习算法中比较成熟的算法,包括第2章到第7章。

第2章介绍Python开发环境的搭建、NumPy的使用、Theano的安装和使用,并用本章介绍的知识实现一个简单的线性回归算法的程序。

第3章讲述逻辑回归算法的数学推导过程,并且讲述了通用学习模型的相关知识,还利用逻辑回归算法对MNIST手写数字识别数据集进行训练和识别。

第4章讲述多层感知器模型算法推导过程,以及数值计算与向量表示方式,并利用多层感知器模型对MNIST手写数字识别数据集进行训练和识别。

第5章讲述卷积神经网络的数学原理,详细讲解卷积神经网络的层间稀疏连接、权值共享和最大池化等技术,并利用卷积神经网络模型对MNIST手写数字识别数据集进行训练和识别。

第6章讲述递归神经网络的数学原理,以字符RNN网络为例,向读者演示了简单的计算机写作系统。而且,以微软图像标注数据集为例,以测试驱动开发的形式,向读者介绍利用递归神经网络做图像标注的典型应用。

第7章讲述长短时记忆网络的网络架构和数学原理,并以大型影评数据集为例,采用长短时记忆网络进行情感计算。

第三部分为深度学习算法进阶,主要讲述深度学习算法中比较前沿的算法,包括第8章到第11章。

第8章讲述自动编码机的数学原理,重点介绍实际中应用较多的去噪自动编码机和稀疏自动编码机,并以去噪自动编码机为例,对MNIST手写数字识别数据集进行特征提取。

第9章讲述将去噪自动编码机进行分层训练,组合成堆叠去噪自动编码机,并将堆叠去噪自动编码机用于MNIST手写数字识别任务。

第10章讲述受限玻尔兹曼机的数学原理,并将其用于MNIST手写数字识别任务。

第11章讲述深度信念网络的数学原理,以及其与受限玻尔兹曼机的关系,并将其用于MNIST手写数字识别任务。

第四部分为机器学习基础,主要讲述一些基础的机器学习算法,包括第12章和第13章。

第12章讲述生成式学习的基础理论,并将高斯判别分析用于癌症判别,将朴素贝叶斯算法用于垃圾邮件过滤。

第13章简单介绍支撑向量机算法的数学原理。

第五部分为深度学习平台 API,这部分讲述将深度学习算法包装成深度学习服务云平台的技术,包括第14章和第15章。

第14章介绍Python的Web开发环境及开发技术。

第15章应用Web开发技术,将前面介绍的多层感知器模型包装成RESTful服务,用户可以通过网页上传图片文件,并得到识别后的结果。

由于篇幅所限,书中很多例子只给出了部分代码,这些代码对于理解算法的实现原理是足够的,但是考虑到代码的完整性,我们将书中绝大部分例程都上传到了GitHub的开源项目https://github.com/yt7589/dlp.git,书中的代码放在book/chp**目录下,这些代码在Ubuntu 16.04+Python3.6+TensorFlow1.2和Windows+Anaconda+TensorFlow1.2下均可正常运行。读者可以下载相关源码,通过运行这些源码加深对书中内容的理解。第一部分深度学习算法概述❑ 深度学习算法简介第1章 深度学习算法简介1.1 神经网络发展简史

人工神经网络(ANN)是由许多简单的、相互连接的处理单元组成的,这些处理单元被称为神经元。人工神经网络是对生物神经系统进行仿生设计的结果,因此人工神经元与生物神经元有许多相似之处,每个神经元都具有若干个输入信号,神经元经过处理(通常是非线性处理)产生一个实数值的输出,通过输出突触传递给周围的神经元。整个人工神经网络,通过接收外界的输入信号,经过神经元的协同运算,产生人们希望的结果。从过去几十年的发展历史来看,相对于其他方法而言,人工神经网络对于很难用显性知识表示的领域,例如计算机视觉、模式识别、人脸识别、语音识别、视频识别等领域,具有非常大的优势。

神经网络的学习过程主要是指通过发现合适的神经元间的连接权值,来使整个神经网络表现出我们希望的行为,如自动驾驶、图像识别等。根据需要处理的问题,以及神经元间连接方式的不同,神经网络的决策过程可能包括很长的因果链,或者说多个计算阶段。在每个阶段中,神经网络都会自动汇总网络的激活信号,经过特定的非线性变换,为下一阶段的运算做好准备,并最终产生我们需要的结果。深度学习网络正是这样一种结构,它完美地体现了分阶段任务的特性,因此在实际应用中取得了令人刮目相看的成就。

我们知道,浅层神经网络在很久以前就存在了,20世纪60、70年代,就有多层非线性神经网络应用的例子。而且,基于监督学习的梯度下降方法,对于连续可微的多重函数,人们发现了反向传播算法(BP),并且在1981年成功将其应用于神经网络,使得基于这种算法的前馈神经网络在20世纪80年代迅速流行起来。然而在20世纪80年代末期,人们发现将BP算法应用于深度网络会出现非常大的问题,鉴于即使只有一个隐藏层神经网络,只要隐藏层神经元数目足够多,也可以拟合任意函数,因此当时人们普遍认为浅而宽的神经网络具有更好的性能。但是对于深度网络的研究并没有停止,尤其是研究人员将非监督学习引入深度学习网络之后,随着算法和神经元激活函数方面的一系列改进,使得深度学习网络在一系列模式识别竞赛中获奖,尤其是2011年,在某些特定领域,深度学习网络的模式识别能力甚至超过了人类。与此同时,深度学习在商业应用方面也取得了巨大的成功,例如在图像识别、语音识别和自然语言处理方面,取得了一系列令人瞩目的成绩,这一趋势一直延续至今。

在过去十几年中,前向神经网络(FNN)和递归神经网络(RNN)都赢得了一系列的算法竞赛。从某种意义上来说,递归神经网络是最深的神经网络,拥有比前向神经网络更强的计算能力,因为递归神经网络将序列信号分析和信息并行处理,以一种自然、高效的方式结合在一起。配合当前不断增加的计算能力,可以预见递归神经网络将拥有越来越重要的地位。

然而,神经网络的发展并不是一帆风顺的,中间经历数次大起大落,本节我们将简要回顾一下神经网络的发展史,通过介绍深度学习之前神经网络所遇到的困境,使读者对深度学习的背景有一个清晰的了解,这对于理解深度学习发展趋势是非常重要的,因为历史总是惊人的相似。同时,我们也应该看到,深度学习并不是人工神经网络发展的终点,其只是人工神经网络发展的一个特定阶段,一定会有更先进的技术超越当前的深度学习技术,因为深度学习网络目前只是将学习过程进行了分解,同时用非监督学习来辅助监督学习,并没有从根本上解决人工神经网络中欠拟合(Under Fitting)和过拟合(Over Fitting)等泛化问题。如果可以在强化学习和非监督学习方面取得突破,理论上可以产生更好的学习算法。1.1.1 神经网络第一次兴起

现代神经网络起源于20世纪40年代,早期典型的神经网络模型有Hebb在1949年提出的非监督学习模型,以及1958年Rosenblatt提出的基于监督学习的感知器模型,其后出现了一系列监督学习和非监督学习模型。总体来讲,由于这一阶段计算能力有限,神经网络模型都比较简单,而且缺乏成功的实际应用。

最早的深度学习网络模型出现在20世纪60~70年代,Ivakhnenko等人提出了GMDH网络模型,在这种网络模型下,神经元的激活函数为Kolmogorov-Gabor多项式。在给定一个训练集的情况下,先通过回归分析增加神经网络的层数,再通过单独的验证集对网络拓扑结构进行剪裁。综上所述,GMDH神经网络的网络层数和每层的神经元数,都可以通过学习来进行调整,并且针对特定的问题,网络拓扑结构也将不同。可以说,GMDH神经网络是第一种开放的、分层学习的神经网络模型,当时最深的网络可以达到8层。

在20世纪60~70年代,神经生理科学家们发现,在猫的视觉皮层中有两类细胞,一类是简单细胞,另一类是复杂细胞。简单细胞对图像中的细节信息更敏感,例如边缘等;而复杂细胞具有空间不变性,可以处理目标远近、旋转、放缩及遮挡等情况。这一发现直接导致了卷积神经网络的提出。在卷积神经网络中,层间神经元不是全连接的,而是连接于其接收域。接收域形成了2D区域,卷积滤波器会依次对这个2D区域进行滤波操作,滤波结果经过向下采样,形成新的输出信号,传递给下一层。由于大规模采用权值共享机制,可以说卷积神经网络(CNN)是第一种可以应用于实践中的深度学习网络。在后面的讨论中我们可以看到,当时的卷积神经网络,与当代获得模式识别竞赛大奖的卷积神经网络(MPCNN)还是非常相似的。

在复杂、非线性、可微分的多层神经网络中,通过梯度下降算法来最小化误差函数,在20世纪60年代就得到了广泛的应用。在神经网络的权值空间中,通过反复使用链式微分法则,可以采用最速梯度下降算法来进行神经网络学习。但是这些算法只使用了Jacobian矩阵计算,没有考虑到层间的连接特性和网络的稀疏性,因此在1969年Minsky和Papert指出了这些神经网络的局限性,在此后很长一段时间内,神经网络的研究和应用处于低潮期。

尽管没有明确提及神经网络,但Linnainmaa在1970年的硕士论文中,提出了在任意、离散、潜在稀疏的计算网络中,可以采用显式高效的误差反向传播算法。将误差反向传播算法(BP算法)用于神经网络,始于Werbos在1981年的文章。在1986年,实验证明了神经网络隐藏层的内部表现方式,它可以使BP算法在多层神经网络得到高效应用,这一研究成果使BP算法迅速在神经网络研究中占据了主导地位。1.1.2 神经网络沉寂期(20世纪80年代—21世纪)

在20世纪80年代中后期,人们发现BP算法在神经网络应用中存在很多问题,并不是能解决所有问题的“灵丹妙药”。当时所有实用的神经网络,都是只有很少隐藏层的神经网络,因为人们发现,多层神经网络在实际应用中的效果并不理想。与此同时,Kolmogorov、Hecht、Hornik证明,只有一个隐藏层的神经网络系统,只要隐藏层神经元足够多,就能以任意精度拟合任意连续函数。当时人们普遍认为,尽管BP算法可以用于多层神经网络,但是BP算法只有在浅层神经网络应用中才有理想的效果。

研究者们想出了各种方法来解决BP算法在多层神经网络中的问题,总体来讲,这些方法虽然有所改进,但是都没有取得理想的效果。其中出现了两种非常有意思的网络,一种是神经热能交换器网络,另一种是BP逻辑网络。神经热能交换器网络由Schmidhuber在1990年提出,由两个相反方向的前馈神经网络组成。输入先从第一个神经网络逐层向上传播,到达输出层,可以类比于加热过程;然后将这些输出信号作为第二个神经网络的输入信号,逐层向下传播,最后到达输入层,重新变为输入信号,可以类比于冷却过程。

在1989年,Shavlik和Towell提出了将领域知识中的命题逻辑利用解释器生成深层前馈神经网络,这种神经网络的深度可以用最长命题逻辑链条来定义。这种神经网络的权值可以通过领域知识中的命题逻辑来初始化,并采用BP算法对神经网络连接权值进行微调,用来解决领域知识中的不确定性问题。这种神经网络的一个优点是可解释性,因为传统的神经网络对于人们来讲是一个黑盒,人们只能得到结果,不能对结果进行解释。但是这种神经网络不仅可以得到正确的结果,而且可以给出合理的解释。

在前馈神经网络中,当时最流行的算法是最速梯度下降算法。为了提高最速梯度下降算法的效率,人们想出了各种改进方法,包括牛顿法、准牛顿法、共扼梯度法等。

在所有算法中,BP算法不仅收敛速度较慢,而且更为严重的是容易陷入局部最小值点。为了解决这一问题,研究者们提出了动量项的概念,即针对BP算法容易进入局部最小值点,或者非常平坦的区域的特点,在BP算法中引入动量项,试图使其跳出局部最小值点或局部平坦区域,增加找到全局最小值点的可能性,取得了较好的效果。

有一些研究者,只考虑误差求导中的符号,而不关心其具体数值,于是提出了Rprop算法和更稳定的iRprop+算法。

在BP算法中,学习率是一个重要的参数,如果取值太小,则收敛速度慢;如果取值太大,则会产生波动,不容易找到最优解。通常学习率为一个特别小的正数,如小于0.1的正数。但是一些研究者发现,在BP算法前期,由于需要调整的幅度较大,适合比较大的学习率。而在BP算法后期,则需要较小的学习率来进行微调,找到神经网络的最优解,所以提出了自适应学习率的算法。

Hochreiter 1991年发表的论文,可以说是深度学习的一个里程碑式的事件。在这篇论文中,Hochreiter指出,随着神经网络的深度加深,BP算法会出现梯度消失或梯度爆炸问题。这就是说,随着层数增多,BP算法的误差函数的导数会逐渐衰减,直到消失;或者会逐渐变大,直到超出取值范围。此后,在研究者对深度学习算法的研究中,都是采用各种方法来解决这一问题的。

以上我们主要讨论的是神经网络中的监督学习,其实非监督学习的神经网络在此期间也得到了长足发展,同时研究者们认识到,可以利用非监督学习的神经网络来协助监督学习神经网络更好地完成任务。多数非监督学习方法都是根据信息理论优化信息熵,自动找到输入信号的分布式、稀疏式表示形式,因此这类网络又被称为特征提取器。例如,一些非监督学习网络,可以作为边缘识别器或Gabor滤波器,这些特征提取器与生物系统中的视觉预处理阶段非常类似。1.1.3 神经网络技术积累期(20世纪90年代—2006年)

非监督学习神经网络可以将输入信号转换为一种更适合算法处理的形式。在深度学习中,非监督学习的一个重要任务就是消除冗余,在理想情况下,给定一组输入信号,非监督学习算法可以找到这组输入信号的因子分解码,因子之间相互独立。在实际应用中,这种因子分解码表示方式可能是稀疏的,同时有利于进行后续处理,如数据压缩、加速后续应用BP算法的效率、简化贝叶斯分类器等。

在早期多数非监督前馈网络中只有一个隐藏层,但是也有一些深度非监督前馈网络存在。深层非监督学习网络包括:层级自组织Kohonen网络、自组织树算法(SOTA)、堆叠自动编码机(AE)。其中应用比较广泛的是堆叠自动编码机,经典的单个自动编码机有3层,输入的节点数与输入信号的维度相同,隐藏层节点数少于输入信号节点数,输出层神经元节点数与输入层相同。信号由输入层输入,经过隐藏层,通常隐藏层比输入层有更少的节点,对输入信号进行压缩,并传输到输出层。自动编码机算法就是保证网络输出层信号与输入层信号尽可能相等,这样隐藏层的输出就可以视为输入信号的压缩编码。在多层自动编码机中,会将前一层自动编码机的隐藏层作为输入,接入下一层的自动编码机的输入层,如此循环下去,组成一个层叠的多层自动编码机网络。在这种网络中,由于可以逐层对自动编码机进行训练,故可以有效地解决深度神经网络训练困难的问题,因此在实际中得到了广泛应用。

除堆叠自动编码机之外,还有一些神经网络也采用类似的方法。例如,分层Kohonen网络和受限玻尔兹曼机(RBM),受限玻尔兹曼机得到了广泛的应用,目前比较流行的深度信念网络(DBN)就是通过层叠受限玻尔兹曼机来组成的。这种先通过竞争性非监督学习算法对深度网络进行预训练,再通过BP算法对网络权值空间进行微调的方法,在实际应用中取得了巨大的成功。

最早的实用的深度学习网络,是Schmidhuber在1992年提出的,该网络由数百层组成,是由经过非监督学习预训练的递归神经网络组成的。对单个RNN网络进行非监督学习训练,预测下一个输入信号,当训练一段时间之后,仅将出错的输入信号输入到上层递归神经网络中进行训练,以此类推,直到训练到最上层。这样就形成了一个对输入信号逐层压缩的网络,越往上层走,压缩比例越高,冗余越低。这种网络目前依然是一种重要的神经网络,被称为神经层级时序记忆(HTM),与堆叠自动编码机和深度信念网络类似。

在卷积神经网络中引入最大池化层(MP),可以极大地提高卷积神经网络的性能。在这种网络中,首先对输入信号进行卷积操作,对卷积结果进行向下采样,选取卷积结果中的最大值,从而形成新一层的输入。在实际应用中,采用权值共享、稀疏表示、卷积操作、最大池化的卷积神经网络(MPCNN),配合BP学习算法微调,成为当前图像识别中的主流算法,也是近些年来在MNIST手写字母识别和ImageNet中获奖算法的基础。

在前馈神经网络发展的同时,递归神经网络也得到了长足发展,其中具有里程碑意义的网络就是基于监督学习的长短时记忆网络(LSTM)。对于普通的递归神经网络而言,虽然输入信号在隐藏层产生的输出会再次传回隐藏层,但是经过数个输入信号之后,原来输入信号对网络的影响基本消失了,可以说这种网络不具有长期记忆的特性。而有很多应用,则需要递归神经网络具有长期记忆的特性,因此研究者们提出长短时记忆网络。在这种网络中,隐藏层的神经元被记忆块所取代,记忆块的核心是记忆细胞,并且具有输入门、输出门、遗忘门。当输入门打开,输出门和遗忘门关闭时,网络开始学习;当输入门关闭时,网络就可以保存该输入的记忆,直到遗忘门打开,网络忘记之前的记忆,这样可以开始重新学习。

长短时记忆网络有很多种变形,可以用于解决不同的问题。长短时记忆网络可以用来解决很多其他深度学习网络无法解决的问题,如被噪声分割的时序信号、长时间高精度保存实数数值、对连续输入流进行算术运算、在强噪声背景下识别短暂的有用信号等。

长短时记忆网络还被应用于上下文无关语言(CFL)中,而原有的隐马可夫模型和FSA却不能表示这类问题。长短时记忆网络不仅成功应用于与上下文无关的小语料训练集,提取出通用规则,而且成功应用于大语料训练集。而其他方法通常可以在小语料训练集上取得成功,但是不能在大语料训练集上取得成功。

在上下文敏感语言问题中,长短时记忆网络也取得了很好的效果。长短时记忆网络最少只需要30个最短样本(n≤10),就可以成功预测前缀长度大于1000的连续序列。这表示,当网络训练完成后,可以读取大于30000000个符号(逐个字符读入),最终可以识别出很微小的差异,例如可以判断a(10,000,000) b(10,000,000)c(10,000,000)是正确的,而a(10,000,000)b(9,000,000)c(10,000,000)是错误的。

双向递归神经网络(BRNN)用于处理当前任务同时需要上下文的情况,例如当手写字母识别时,如果知道前面的字符也知道后面的字符,比仅知道前面的字符的准确率会高很多。所以双向递归神经网络可以用于预先知道整个序列的场合,对于语音识别等领域,由于存在句子间停顿,可以在接收到完整的一句话后再开始进行语音识别,因此也可以运用双向递归神经网络。双向递归神经网络实际上是由两个共享输出层的递归神经网络构成的,第一个递归神经网络处理正向输入信号,第二个神经网络处理反向输入信号,二者在输出层进行叠加处理。双向递归神经网络应用最成功的场景是蛋白质二级结构预测、蛋白质交互模型和有机分子性质等方面。

对于无法确定输入信号边界的应用,在输入信号很长或维度很高的情况下,研究者们提出了递归神经网络专用的连接序列分类(CTC)输出层,利用梯度下降相关方法,确定最优连接权值,最大化误差信号,这样可以成功应用于模式识别和图像分割等领域。

当前递归神经网络被认为最强大的神经网络之一,各种新型网络层出不穷。例如,从本质上来说,输入信号是一维的时序信号,而图像应用是二维的时序信号,视频应用是三维的时序信号,核磁等是四维的时序信号,所以研究者提出了多维递归神经网络(MDRNN),这种网络是由多个相对独立的双向长短时记忆网络组成的。由于图像和视频数据量极为庞大,相应的网络计算量也非常巨大,因此有研究者提出分层递归神经网络的概念,首先对输入信号进行逐层压缩,然后分别采用递归神经网络来进行处理。

为了衡量各种神经网络算法的效果,与其他领域类似,神经网络领域也有很多测试样本集,例如MNIST的手写数字识别、ImageNet大型图像集识别、cifar10/100小尺寸图片识别等。这些测试集每年都会进行竞赛,来比较各个研究小组算法的效果,每年各种竞赛的优胜者基本代表了该领域的最高水平,因此也会受到业界的特别关注。

在2000年之前,这些竞赛的获奖者多数是非神经网络的研究者,比如有很多研究者利用支持向量机(SVM)算法赢得了一系列的比赛。支持向量机是一种改良的线性分类器判决算法,由于其相对简单,并且具有足够高的分类精度,因此在线性可分和一些非线性可分的分类问题中得到了广泛应用。

神经网络在此期间也有很多有益的探索,例如2006年由Neal提出的基于贝叶斯理论的神经网络赢得了NIPS 2003特征抽取大赛的冠军。这个神经网络具有两个隐藏层,还不是深度学习网络。1.1.4 深度学习算法崛起(2006年至今)

在所有神经网络中,卷积神经网络在一系列图像识别竞赛中取得了压倒性的胜利。例如,Simard在2003年利用LeCun的卷积神经网络(该网络采用卷积神经网络结构)和误差反向传播算法进行训练,在MNIST手写数字识别中达到了0.4%的误差率,这个识别精度甚至高于人类的识别准确度。但是Simard采用了利用训练样本进行变形处理的方式,增加了训练样本的数量。同样,Simard在2003年,利用标准的前向BP网络也达到了0.7%的误差率。但是这些网络的层数还比较少,不能称之为深度学习网络。

在图像理解方面,深层神经网络取得了一定的进展。在2004年,Behnke在前馈网络的隐藏层中加入了反馈连接,采用改进的反向传播Rprop算法,在图像识别方面取得了较好的效果。

在此之后,神经网络在图像模式识别方面的应用突破,主要集中在利用非监督学习辅助监督学习领域。尽管深度学习的概念和实践早在20世纪60年代就出现了,但是当代意义上的深度学习理论,公认是由Hinton于2006年提出的,其核心思想就是先利用竞争性非监督学习提取出有意义的特征,再用监督学习对这些特征进行识别,大大提高了学习效率。

在这类技术中,最著名的当属Hinton提出的深度信念网络。深度信念网络(DBN)是由一系列独立的受限玻尔兹曼机堆叠而成的,每个受限玻尔兹曼机(RBM)可以单独训练,并将其输出作为上层受限玻尔兹曼机的输入。受限玻尔兹曼机根据热力学理论,通过找到网络的能量最小值点来获得输入信号的特征表示,通过多层受限玻尔兹曼机,可以得到越来越抽象的特征,从而便于上层监督学习层的处理。将所有受限玻尔兹曼机训练完成并堆叠在一起之后,利用传统的误差反向传播算法进行微调,从而加快训练速度,减小对训练样本数量的需求,得到更高的识别精度,而且解决了之前困扰神经网络应用的一个难题,即对特定问题特征选取的问题。

深度信念网络在一系列应用上取得了很好的应用效果,例如2006年,Hinton利用深度信念网络在没有经过训练样本变形的情况下,在MNIST手写数字测试集上的误差率达到1.2%左右。不仅在图像识别领域,在语音识别领域,深度信念网络在TIMIT测试集上的识别误差率也降低到了26.7%左右。基于深度信念网络的语义哈希索引技术,可以将相似的文档放在邻近的位置,比传统的邻域敏感哈希索引技术的效果有较大的提高。

与此同时,Bengio于2007年提出,可以通过堆叠自动编码机,作为监督学习的预训练层,提高监督学习的效果。自动编码机就是先将输入信息输入到网络输入层,然后经过维度较低的隐藏层,最后输出到与输入信号维度相同的输出层。堆叠自动编码机的目标是使输出层的信号与输入层的输入信号尽可能一致,这样中间隐藏层的输出就可以视为输入信号的压缩编码。训练结束之后,可以将这个自动编码机的隐藏层作为输入,接入上层的自动编码机。为了提高自动编码机的性能,研究者们提出了各种改进方案,例如稀疏自动编码机、去噪自动编码机等模型,在实际应用中取得了较好的效果。

在2006年,出现了基于GPU的卷积神经网络实现,其比CPU上的卷积神经网络的速度快4倍左右,而一些基于GPU的算法,甚至比CPU的速度快20倍左右。正是这些早期的实践,开创了当前主流深度学习算法依赖GPU的潮流。

在2007年,研究者们在卷积神经网络中,将原来向下采样中使用的平均值池化技术改为最大池化技术,形成了所谓的MPCNN,取得了非常好的应用效果。这种技术后来成为大量获奖项目的技术基础。

在2007年,研究者们提出了多层长短时记忆递归网络(LSTM RNN),这种网络输出层由连接序列分类(CTC)组成。对于序列标注,每个长短时记忆递归网络预测输入序列的标签,并将结果输入到上层长短时记忆递归网络。序列标注的误差,由顶层开始逐层向下反向传播,对连接权值进行修改。在语音数字识别中,这种网络的效果优于传统的隐马可夫模型,取得了较好的应用效果。

为了促进深度学习研究的发展,国际上有一系列深度学习算法竞赛,使一系列优秀的深度学习算法迅速流行起来。

在2009年的ICDAR手写字符识别竞赛中,利用了长短时记忆递归神经网络,输出层采用链式时序分类器算法,同时赢得了法语、阿拉伯语、波斯语识别竞赛,这是递归神经网络第一次赢得国际性神经网络大赛。

为了在监控视频中发现人物行为,研究者通过一个三维的卷积神经网络,结合支持向量机,组成了一个大型特征识别器,用来识别视频序列中感兴趣的内容。在2009年,这种架构的神经网络连续赢得了3个TRECVID国际竞赛。

2009年也出现了GPU版本的深度信念网络实现,它比之前的CPU版本有了显著提升,同时有研究者提出,将卷积层引入深度信念网络,采用基于概率的最大池化模型,这在音频识别中得到了成功应用。

在2010年,在MNIST手写数字识别竞赛中,采用普通深层BP网络的误差率降到0.35%。与其他流行的方法不同,它没有采用非监督学习的预训练网络。那么,一个古老的算法为什么能达到这么高的准确率呢?主要有以下两方面原因,首先是因为这种网络利用将训练样本变形的方式,产生大量训练样本,可以有效地避免过拟合问题;其次是这种网络采用了GPU实现,比之前的算法快大约50倍。由此可见,一些经典算法,在强大的运算能力帮助下,可以产生惊人的效果。这甚至从一个侧面说明,现代计算能力的进步,相比算法进步而言,更能推动深度学习的进展。

从2011年开始,基于GPU实现的卷积层,在最大池化向下采样,多层累加之后接入全连接层,通过BP算法进行权值调整学习,成为此后国际深度学习算法竞赛获奖项目的主流技术。此后,研究者们将多个这种类型的独立网络组合成卷积神经网络集群,系统最终识别结果是由各组成的卷积神经网络的判断结果在概率论的基础上进行综合汇总得出的。在2011年交通标志识别竞赛中,采用这个架构的神经网络的误差率降到了0.56%,优于人类识别效果的两倍,比其他深度学习技术好3倍以上。由此可以看出这种网络架构的强大威力。采用这种架构的网络,在MNIST测试集上的误差率可以降低到0.2%左右,同样优于人类的识别能力。

在图像识别竞赛中,ImageNet比赛的影响力无疑是最大的。在ImageNet竞赛中,深度学习算法识别、物体检测或分割分辨率为256×256的图片,其中用于训练的图片有1200万张左右,用于验证集的图片有500万张,用于测试和评价的图片有100万张,所有这些图片属于1000个类别。在ImageNet的所有竞赛项目中,图像中的物体识别是最令人关注的项目。因为物体识别可以用于图片搜索、人体组织医学图像诊断,例如识别出癌组织,但是图像中的物体识别也是非常困难的。在2012年,基于GPU的卷积神经网络集群,赢得了乳腺癌组织图像识别的比赛。这个结果具有重要的意义,全美国超过10%的GDP用于医疗健康产业,其中很大一部分用于医疗诊断,而最主要的应用就是医学图像诊断,目前这部分工作完全需要高水平专家来完成,如果可以部分地实现自动化,这将会极大地降低医疗成本,同时使更多的大众可以享受专家级的诊断技术服务。

也是在2012年,在图像分割领域,基于GPU的最大池化卷积神经网络集群表现出色。欧洲和美国的由电子显微镜获取的脑图像数据,需要重建出3D神经元和树突的模型,如果这部分由人工来对图像进行注解,需要数天甚至数周的时间才能完成,非常需要自动化。1.2 深度学习现状1.2.1 传统神经网络困境

传统神经网络或机器学习算法虽然可以成功解决很多问题,但是在语音识别、图像识别、图像标注等领域却遇到了巨大的问题。传统机器学习算法的一个主要问题就是泛化问题,泛化能力指训练好的模型遇到新的样本时做出正确判断的能力。在低维的情况下,这个问题并不严重,但是一旦遇到高维问题,泛化问题的解决难度将呈现指数级增长的趋势,而这一问题只能通过深度学习才能解决。在本节中,我们将讨论传统机器学习算法在高维问题中遇到的困境,以及深度学习算法给出的解决方案。

传统机器学习遇到的第一个问题就是所谓的维度诅咒问题。在高维甚至超高维问题中,传统机器学习遇到的问题首先是由于维度增加,造成模型参数指数级增长的问题,同时造成在参数空间中找到最优解的难度和计算量均呈指数级的增长趋势,因此传统机器学习算法在高维问题中极少取得成功。

假设我们研究3个问题,第一个问题的维度为10,第二个问题的维度为100,第三个问题的维度为1000。

对于第一个问题,由于问题的维度是10,每个维度上有100个不同的值,则将有1000种组合。要想处理这种情况,至少需要1000个以上的训练样本,而且它们必须均匀分布在每个不同的组合中。这样当一个需要识别的新样本出现时,尽管我们用的具体算法可能不同,但是其原理都是找到与这个样本最像的样本,再根据与其最像的样本来预测新样本的类别。1000个训练样本的需求还是相对容易满足的,所以传统的机器学习算法还是有可能成功应用于这类问题的。

对于第二个问题,由于有100个维度,如果每个维度上也有100个不同的值,则有10000种不同的组合。要想处理这种情况,我们至少需要10 000个以上的训练样本,而且它们必须均匀分布在每个不同的组合中。这样大的样本量,而且要求在每种组合中都有足够多的训练样本供机器学习算法来学习,就非常难以达到了。因为在通常情况下,我们即使有大量的样本,也更有可能集中在其中的常用类别中,所以很可能无法满足要求。在这种情况下,传统的机器学习算法就很难应用在这类问题上了。

至于第三个问题,由于有1000个维度,如果每个维度上还是有100个不同的值,则将有100 000种不同的组合。要想处理这种情况,至少需要100 000个以上的训练样本,而且必须在每个组合中都具有训练样本。这将是一个非常苛刻的要求,在实际应用中基本不可能满足。因为在实际应用中,即使我们有海量的训练样本,这些样本更有可能集中在少数几个类别中,而其他类别中没有相应的样本,这样我们就无法进行有效的学习。这就是传统机器学习算法在现代高维度问题中难以应用的重要原因。

传统机器学习算法面临的第二大问题是局部一致性和平滑性假设。为了提高泛化能力,机器学习算法需要一些先验知识作为指导,告诉深度学习算法要学习的函数具有哪些特性。例如,我们认为小的权值有利于提高泛化能力,因此通常有L2(权值衰减)调整项。当然有一些先验知识直接作用于需要学习的函数,而间接作用于参数。

最常用的先验知识是局部一致性或光滑性,即我们认为目标假设函数在局部是光滑的,一个小的值域上的改变不会引起函数值产生巨大的变化。

正是由于传统的机器学习算法严重依赖于局部光滑性假设,所以无法处理复杂的问题,而深度学习算法通过引入额外的先验知识,成功地解决了这一问题。下面先来看一下为什么只依赖于局部光滑性先验知识会有问题,然后再来看一下深度学习怎样解决这一问题。

我们可以将局部光滑性表示为:∗∗f (x)≈f (x+∈)

在上式中,∈是一个非常小的值,加上∈后的计算结果与未加之前的计算结果基本相等。根据这一假设,对于一个新样本点,我们只需找到与其足够相邻的点,通过某种求平均和内插法,可以很好地根据训练样本推断新样本的属性。对这个性质应用得最极端的例子是K最小近邻算法。

这种先验知识很简单也很好用,但缺点就是如果某个区域没有训练样本,基于这个假设的学习算法就不能应用了。那么有没有办法解决这类问题呢?例如我们要研究的问题是一个国际象棋棋盘,其由黑白相间的方格组成,在局部光滑性假设下,如果某个方格内有训练样本并且在居中位置的话,我们就可以很准确地判断样本是黑色的还是白色的。但是对于没有训练样本的方格,当新样本在这些方格中时,我们无法做出正确预测。如果我们这时有先验知识,方格是黑白相间的,那么即使没有训练样本的方格也可以很好地做出预测。深度学习算法就是提出了类似的先验知识,所以可以解决很多传统机器学习算法无法解决的问题。

当然,在实际的深度学习工作中,我们不可能使用像上面的先验知识,因为实际问题中很难有像上例国际象棋棋盘这么规则的问题,另外,为了我们的深度学习算法更具通用性,也不倾向于使用过于特例化的先验知识。

深度学习最常见的一个先验知识就是,认为复杂问题是由具有层次结构的特征组成的,这些特征是可以分步来学习的,深度学习网络就是将上述每一步用深度学习网络的层来表示。我们可以证明,同样一个问题,短而浅的网络所需的参数要远远大于深而窄的深度学习网络。网络参数减少,学习难度自然会降低,这就与我们的日常生活常识相一致。例如,有一道非常难的数学题,通过分步求解就比较简单,但是如果让我们直接说出答案则非常困难。

深度学习中另外一个非常重要的概念就是流形学习。流形是一个互相连接的区域。流形学习是最近比较热的一个机器学习领域,数学模型和概念描述比较抽象难懂,所以这里就不讨论了。我们这里仅介绍一些实际例子,让大家对这个新兴的领域有一个感性的认识。

我们先将一张纸团成一团,然后再将其展开平放在阳光下,这时纸面上会有很多复杂的褶皱,形状非常不规则。如果我们需要学习的函数就是这样一张纸,那么将非常复杂。但是如果我们研究纸在阳光下的影子,那么纸就变成了二维模型,难度就大幅降低了。

再以一个球面为例,我们所研究的样本点都在一个球心为(x,y)、半径为r的球面上,而不是在普通三维空间上。那么,对于三00维球面来说,可以用球面方程来表示:x=x+rsinθ·cosФ0y=y+rsinθ·sinФ0z=z+rcosθ0

式中,θ∈[0,π],Ф∈[0,2π]。

如果我们的应用分类问题假设,Ф∈[0,π]是一类,其他的是另一类。那么这两个类别在三维空间上来看就是一个复杂的球面分割问题。然而如果把这些点根据上面的方程组求解出对应的θ、Ф值,那么我们不仅成功地将问题从三维变为二维,更重要的是,在θ、Ф二维空间上,类别的分割界面将是一个矩形,这无疑使问题得到了极大的简化。由此可见,如果我们能够找到流形学习背后的规律,就能化繁为简,使很多复杂问题迎刃而解。

上面讨论的问题过于简单了,下面来看一个比较实际的例子。以MNIST手写数字识别为例,原始图像为28×28的黑白图片,输入到机器学习算法时,就变成了784维的问题,但是并不是说784维上的每个点我们都关心,实际上我们只关心6万多个点,这些点对应于0~9这10个数字的手写字体。这个例子实际上与上面的球面例子类似,我们直接在原始的784维空间上求解将十分困难,如果能找到类似球面方程的形式,那么问题就变得简单多了。但是MNIST手写数字识别很难找出类似的方法,如果通过卷积神经网络还是可以找出图片所对应的特征,从而在这些特征空间中学习,大大提高学习效率。1.2.2 深度多层感知器

深度前馈网络一度被认为是一种低效的网络,在非常长的时间里不被人们所重视。因为有定理证明,对于任意复杂的函数,都可以通过选择合适的隐藏层神经元数,达到以任意精度逼近原函数的网络,这就是著名的万能逼近理论。以此理论为指导,10年之前,几乎所有成功的前馈网络基本上都是3层结构,只有1个隐藏层,不同的是隐藏层神经元数量会有比较大的差异,但卷积神经网络是一个特例。因为在这种网络中,采用了局部接收域、权值共享、最大池化等技术,成功地减少了训练网络所需要的参数,在图像应用领域取得了巨大成功。但是这毕竟仅是一个特例而已,当时主流的神经网络应用还是以3层前向神经网络为主。

直到2006年,Hinton教授首先采用受限玻尔兹曼机堆叠形成深度信念网络,并在MNIST手写数字识别中取得成功,这才第一次证明深度前馈网络只要采用合理的技术手段也是一种非常强大的机器学习技术。在2014年左右,完全基于BP算法的前向神经网络没有任何预学习过程,在MNIST手写数字识别竞赛中获得冠军,人们终于认识到深度前馈网络确实是一种非常强大的学习技术。

深度前馈网络的核心技术误差反向传播算法,已经至少三四十年没有发生变化了,但是为什么近年深度前馈网络会重新流行起来呢?这主要是由以下三个方面的因素共同决定的。

第一方面无疑是计算技术的发展。近年来,随着计算能力的提高,尤其是GPU在深度学习领域的应用,人们拥有的计算能力是三四十年前难以想象的。另外,随着Web 2.0等技术的发展,出现了很多巨型的数据集。我们知道,前馈网络的参数非常多,因此需要大量的训练样本数据,UGC的出现正好提供了这样的数据,因此深度学习算法首先在这方面获益也就不足为奇了。

第二方面来自算法层面的改进。之前人们一直使用平均平方误差作为前馈神经网络的代价函数,但是由于我们采用Sigmoid或双曲正切作为神经元的激活函数,而这些函数在过大或过小的数值上都趋近于饱和,其导数将非常小,因此会使学习过程变得相当困难。近年来,人们普遍采用交叉熵函数,将负对数似然函数作为代价函数,因为在负对数似然函数中会取对数,其正好可以中和神经元激活函数中的指数函数所带来的饱和问题,使学习过程变得相对容易。

第三方面来自神经元的选择方面。在此之前,人们通常倾向于选择采用Sigmoid函数作为神经元激活函数,或者因为效率问题,采用双曲正切函数作为神经元激活函数。因为人们认为Sigmoid函数在(-∞,+∞)区间连续且可导,并且值域为(0,1),可以代表事件的发生概率,是理想的神经元激活函数。但是后来人们发现了ReLU函数,尽管其在x=0点不可导,但是实际效率却要好很多。由于ReLU神经元高效、简单的特性,目前其已经成为前馈神经网络隐藏层神经元的默认选择。另外,研究人员也发现,对于小数据集,ReLU神经元比其他神经元有更好的性能,并且优势相当明显。神经科学方面的研究成果也支持ReLU神经元是一种更接近于生物神经元的模型,因为神经科学方面的研究发现,生物神经元具有以下特性:① 对于某些输入信号,神经元没有任何反应;② 对于某些输入信号,神经元的输出与输入信号成正比;③ 在大多数时间,神经元工作在非活跃状态。前两个特性与ReLU神经元的特性完全一致,这也从一个侧面证明了ReLU神经元的合理性。

当前,人们普遍认为,深度前馈神经网络是一种非常强大的神经网络,还有非常大的发展潜力。研究人员正在将深度前馈网络作为工具,来发展变分自动编码机(Variational Autoencoder)和生成式对抗网络(Generative Adversarial Network,GAN)。在深度学习兴起之初,深度前馈神经网络被认为需要非监督学习算法来协助才行,而现在深度前馈神经网络更经常的角色是协助非监督学习来更好地完成任务。可以预见,随着计算能力的提高和数据集的增大,深度前馈神经网络还会取得更大的成功。1.2.3 深度卷积神经网络

卷积神经网络在深度学习历史上具有重要地位。卷积神经网络是通过研究脑神经系统受到启发而研制的系统,研究人员受到生物视觉神经系统具有接收域的启发,设计了层间具有稀疏连接的神经网络系统,同时利用最大池化技术实现了一定的移动不变性,通过层叠接收域体系,形成深度神经网络,并最终在图像处理领域取得了巨大成功。现在卷积神经网络不仅在图像处理领域,而且在视频处理、fMRI等医学图像处理、语音识别等领域也取得了巨大的成功。

卷积神经网络也是第一个成功的深度神经网络。在现代深度学习算法复兴之前,人们普遍认为深度网络不具有实践价值,而选用浅而宽的神经网络来解决实际问题。但是以3×3为接收域的卷积神经网络可以达到几十层,同时还可以具有很好的泛化效果。研究人员基本形成共识,在卷积神经网络中,窄而深的网络具有更好的性能。卷积神经网络为后来的深度学习算法复兴提供了宝贵的实践经验。

卷积神经网络同时是目前商业应用上较成功的神经网络。早在20世纪90年代,AT&T的研究人员就用卷积神经网络成功解决了账单读取问题,到20世纪90年代末,这个系统在NEC上可以读取10%左右的账单。微软也在2000年前后开始应用卷积神经网络,并且在光学字符识别和手写识别方面取得了巨大的成功。从2012年开始,ImageNet竞赛的冠军基本被卷积神经网络及其变形所控制,在MNIST手写数字识别竞赛中,目前大幅超过人类识别水平的记录,也是由卷积神经网络来保持的。

综上所述,卷积神经网络不仅是目前较成功的神经网络技术,同时也是未来具有广阔发展前景的网络。笔者认为,今后卷积神经网络的研究重点,除理论上解决为什么卷积神经网络比全连接网络性能要好之外,还需要研究有哪些在实际中取得成功的卷积层卷积核、它们分别适用于哪些特定情况,以及怎样动态选择这些卷积核。例如,我们能够确定哪些卷积核对草原的识别效果最好,哪些卷积核对斑马的识别效果最好,如果当前是一幅草原上有几匹斑马的图片,那么我们应该可以动态组成一个卷积神经网络。在周围采用对草原识别效果好的卷积核,而在中间使用对斑马识别效果好的卷积核,这样可以得到更好的特征,便于后续进行基于特征空间的模式识别学习。1.2.4 深度递归神经网络

递归神经网络是一种允许信号回传的神经网络,普通递归神经网络由一个3层网络组成,中间的隐藏层不仅将输出值传送给输出层,还将该值传输给自己,这样一个输入信号的作用就不仅仅是其输入的一瞬间,而是在其后很长时间持续起作用。为了控制输入信号的作用范围,研究人员在20世纪90年代后期引入了长短时记忆网络,通过引入输入门、遗忘门、输出门来控制。当人们不希望新的输入信号影响现有输入信号时,就关闭输入门。如果旧的输入信号处理完成,需要处理新的信号时,遗忘门打开,将原来的输入信号影响消除,再打开输出门,就可以在输出层得到有用的信息。由于可以对任意长度的序列进行标注,递归神经网络在语音识别、手写文字识别,甚至图像处理领域都有非常成功的应用。

递归神经网络也是一种结构最为灵活的网络,为了处理手写文字识别,如果知道下面几个字母,可以根据单词拼写更好地识别当前字符。研究人员提出了双向递归神经网络,其由两个递归神经网络构成,一个是从头到尾读序列,另一个是从尾到头读序列,这在手写文字识别中取得了巨大的成功。为了处理序列的开始和结束不具有明确的规则的问题,研究人员提出将普通输出层替换为CTC层,这在语音识别领域同样取得了巨大的成功,其比之前一直采用的隐马可夫模型的准确率大幅提高。

从传统意义上讲,递归神经网络的应用领域主要集中在语音识别等序列标注领域,但是最近研究人员提出多维递归神经网络(MD-RNN),用于处理图像识别任务,其虽然运算量较大,但是泛化效果要优于其他神经网络。与卷积神经网络级联的接收域处理图像信息相似,研究人员还提出了多维级联递归神经网络,并成功用于图像识别领域,且取得了较好的效果。

递归神经网络是结构最灵活的神经网络,同时也是功能最强大的神经网络,研究人员一直在提出各种改进模型,以提高递归神经网络的性能,其中最具代表性的当属神经图灵机(Neural Turning Machine,NTM)。

智能需要知识,知识可以通过学习来获取。正是基于这个理念,人们建立了各种大型深度学习架构。但是知识分为不同的类别,有些知识很难用语言描述,比如如何走路、猫和狗有什么区别等。而另外一些知识,则可以用语言来明确表示,例如猫是一种动物、这些知识可以使用知识图谱来进行描述等。

神经网络在存储隐式知识方面表现很好,却很难表示显式知识。在神经网络训练中,最典型的是使用随机梯度下降算法,要把一个输入信号对应的模式保存到网络中,需要多次迭代才能完成,而且即使如此,神经网络对这个知识的记忆也是不稳定的,完全可能因为学习其他样本而将这个样本忘记,这也是我们在训练样本集上会有误差的原因。

针对这种情况,Graves在2014年提出新的假设,认为神经网络之所以不能很好地记忆知识,是因为神经网络缺少显式的工作记忆。人类在解决某项任务时,通常会先从工作记忆中查找相关知识,然后根据这些知识来决定怎样完成一项任务的问题。

为了解决这个问题,研究人员提出了内存网络的概念,其包括一系列记忆单元,可以通过一种特定的寻址机制来获取记忆单元的内容。最初,这些网络需要人工监督才能将信息存入记忆单元。2014年Graves提出的神经图灵机,通过采用一种软寻址机制,也就是软注意力机制,可以将任意内容从记忆单元读出或写入,而不需要人工的监督信号,从而使采用梯度下降算法进行学习成为可能。

通过向递归神经网络引入注意力机制和工作记忆单元,并且提供基于内容或空间的寻址方式,类似神经图灵机的网络表现出了巨大的应用前景,这是一个非常有前途的研究方向。1.3 深度学习研究前瞻

在1.2节中,我们向读者介绍了当前比较成熟的深度学习网络技术。当然,深度学习到目前为止还在高速发展之中,包括1.2节介绍的神经网络技术,其自身还在不断发展完善之中,这里指的成熟是指其已经有了比较成功的商业应用。

在本节中,我们将介绍深度学习的研究前沿,这些技术目前还处于萌芽状态,虽然还没有特别成功的商业应用,但是由于其技术上的创新性,有望在未来的商业应用中取得巨大的成功。我们学习深度学习算法,对于这些内容也一定要有适当的了解,也许在两三年之后,这里所讲的技术就会像卷积神经网络一样取得重大的商业成功。

我们之前介绍的深度学习技术,都可以归纳为监督学习的类别。这类问题本质上是通过大量经过标注的数据来训练我们的网络模型,再拿训练好的模型来解决实际中的问题。对于这个任务,之前介绍的技术已经做得非常成功了。但是其中还有一个问题,那就是这些技术都需要人工标注的数据,而且需求量非常大。但是在很多情况下,我

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载