
1.3 深度学习概述
通过1.1节和1.2节的介绍,我们知道深度学习是机器学习的一个分支。本节将着重介绍深度学习的产生背景、几种常用模型及其应用场合,并介绍一些常见的深度学习开源工具。
1.3.1 深度学习产生的背景
人工智能在20世纪70年代遭遇了一次低谷,主要原因就在于计算机存储容量和计算性能支撑不了大规模的复杂计算。虽然当时人们认为理论上机器可以按照预先设定的指令去运行,但现实问题是机器效率太低,可行性不足。
过去的很多年里,计算机硬件负载一直较低,能容纳的数据量有限,所以,机器学习的各种方法都要想方设法对原始数据进行降维与压缩,且在学习模型的过程中要不断去除计算过程中产生的冗余数据,以释放内存空间,便于容纳更多的后续数据。近年来,随着计算机硬件技术的发展,处理器的运算速度和存储器的容量都呈现指数级的提升,为巨量的数据处理与存储提供了保障。与此同时,网络技术的突飞猛进也提供了呈爆炸式增长的数据。因此,人类在21世纪进入了大数据时代,当年的问题在今天看来已经变得完全可行了。关于大数据的应用、挑战、方法和技术等的介绍,请参阅文献[15]。
在此背景下,Hinton等人于2006年在Science上发文,认为多隐藏层的人工神经网络通过逐层训练,能得到优异的特征学习能力[16],自此引发了深度学习研究的热潮。作为机器学习的一个分支领域,深度学习与传统的机器学习方法的不同之处在于:传统机器学习方法是从输入的训练样本中直接学习并得到模型(特征),再去做测试,其中学习到的特征只有一层;而深度学习采用数据驱动的方式,采用非线性变换,从训练样本中提取由低层到高层、由具体到抽象的多层特征[18],其示意图如图1-8所示。虽然两者都提取特征,但从数据量、计算复杂度和模型训练时间的角度看,深度学习要远远超过传统的机器学习方法。

图1-8 传统机器学习方法与深度学习的区别
尽管如此,巨大的代价换来巨大的回报。在一年一度的ImageNet(http://www.image-net.org/)图像识别国际竞赛中,2011年采用传统的机器学习方法达到26%的错误率,而2012年首次采用深度学习技术则将错误率大幅度降至15.315%。此后,通过不断改进和优化深度学习模型,2015年将错误率降到3.567%,已经优于人类识别的5%的错误率[17]。此外,对于很多以前用传统机器学习方法解决不了或处理不好的问题,如语音识别、自然语言处理、文本识别等,采用深度学习技术后,识别性能均得到了大幅提升。
由上述内容可知,计算机硬件技术的发展让深度学习成了现实,那么深度学习本身是不是凭空产生的呢?肯定不是。在深度学习问世之前,就已经有了人工神经网络、非线性映射、玻尔兹曼机、权值反向传播等概念。深度学习正是在此基础上,与大数据时代背景相结合产生的,并不断完善,一直发展到今天。
说到深度学习的发展,就不得不提及该领域的“三巨头”——Yoshua Bengio、Geoffrey Hinton和Yann LeCun。他们为深度学习领域做出了巨大的贡献,因此共同获得了2018年图灵奖。
神经网络技术最早始于20世纪50—60年代,当时称为感知机,只能解决简单的线性二分类问题,对复杂的分类问题束手无策。直到1983年,Hinton在此基础上提出了玻尔兹曼机(Boltzmann Machine),用于解决人工神经网络的复杂问题。1986年,Hinton又证明了反向传播(从输出反推到输入)算法有助于神经网络发现数据的内部表示。2012年,Hinton团队改进了卷积神经网络,将图像识别的错误率降低了一半。
Bengio在20世纪90年代将神经网络与序列概率模型相结合,提出了隐形马尔可夫模型(Hidden Markov Model,HMM),为现在的深度语音识别奠定了基础。2000年,Bengio又提出了将高维词向量作为词义表示,在很大程度上影响了现今自然语言处理的发展。2010年,Bengio致力于生成性深度学习,他的团队后来又提出了生成对抗网络(Generative Adversarial Net,GAN),在计算机视觉领域引起了很大的轰动。
LeCun在20世纪80年代研发出了卷积神经网络,为后来的图像识别提供了理论基础。此外,LeCun提出了一个早期的反向传播方法backprop,之后进行了优化改进,加快了反向传播的速度,从而提高了深度学习的效率。在神经网络的推广方面,LeCun提出了网络的分层特征表示,以构建更为复杂的模块网络。
1.3.2 深度学习的几种常用模型
本节将介绍5种常用的深度学习模型:自动编码器、深度神经网络、受限玻尔兹曼机、卷积神经网络和循环神经网络。
1.自动编码器
自动编码器(AutoEncoder)是一种非监督学习的神经网络模型,在输入层和输出层之间有一个潜藏的隐藏层。它通过编码和解码两个不同的函数映射过程来学习信号的潜在结构,如图1-9所示[19]。具体来说,编码的过程就是把原始的输入数据X(图像、语音等)通过线性加权后,非线性地映射到低维的编码机上,映射后的数据为y。所以,如果该映射为f,那么编码的表达式就是y=f(X)。解码的过程则是通过另一个映射g,将y加权后反向地映射到X′上,记作X′=g(y)。通过不断迭代优化每层的连接权值,自动编码器会自动更新整个网络的权值,从而调整映射函数,使重构数据X′不断接近原始数据X,即做到两者误差最小化。

图1-9 自动编码器示意图[19]
2.深度神经网络
深度神经网络(Deep Neural Network,DNN)是一种全连接的神经网络,如图1-10所示[17]。在网络的同层次与不同层次的节点之间构造两两的连接关系(边),并为所有的边分别赋予一定的权重,通过不断调节网络节点的权重,能学习数据固有的内在表示。
深度神经网络通常用于图像识别和语音识别。这种网络的缺陷有如下两个方面:①由于是全连接,边的数量多,自然会导致要训练的权重参数太多,费时费力,从而使该类型网络的广度和深度受到限制;②由于每个节点相互独立,因此在图像识别方面顾及不到相邻像素点的局部几何关系,在语音识别方面也不考虑音节、音调的前后顺序。

图1-10 深度神经网络示意图[17]
3.受限玻尔兹曼机
1.3.1节中提到,玻尔兹曼机是由Hinton提出的。在此基础上,他又做了改进,提出了受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)。RBM是一个隐藏层与可见层相互连接的双向图模型结构网络,同层节点之间相互独立(无连接边),如图1-11所示[20]。传统的玻尔兹曼机无论是同层的还是非同层的,均有连接,因此学习效率不及RBM。
根据热力学定律,物体温度越低,内部状态越稳定,达到稳态后内部各元素之间的关系会趋于稳定。RBM就是一种模拟能量下降过程的非监督学习方法。在RBM中,假设可见层节点个数为Nx,隐藏层节点个数为Nh,每个节点都是{0,1}二值状态(要么是0,要么是1),两个层次之间的连接权值为,即边的总数是Nx×Nh。在RBM的能量建模中,假设每条边都有能量,且独立分布。通过建立并学习总体能量函数,使该模型总能量不断下降并达到稳态,能够模拟数据的真实分布,从而得到输入数据与潜在因子(隐藏层)之间的关系,即W的最优解。

图1-11 受限玻尔兹曼机示意图[20]
4.卷积神经网络
卷积神经网络(Convolutional Neural Network,CNN)是深度神经网络中最常见的模型之一,它由卷积层、池化层(下采样)、全连接层三要素构成,如图1-12所示[17]。在卷积层中,卷积核算子能够提取二维图像的局部特征,如轮廓提取、图像平滑等,使得CNN对图像的平移、旋转和尺度变换等具有稳健性。在CNN中,输入的是二维原始图像。卷积核的尺寸、卷积核算子、卷积核的个数都可以人为设定。池化层通过下采样将卷积后得到的高分辨率的特征图像转换成低分辨率图像(图像维度缩减,权重个数也相应减少),同时保持图像的局部特征。全连接层将池化后的各低维特征图像全部拉直并排列成一个一维向量,再经过非线性映射连接到输出端的类别标签信息。
除每层的节点个数外,层次的个数也可以人为设定。例如,图1-12中设置了两个卷积层和两个池化层,也可以设置三层卷积和三层下采样,甚至更多。一般来说,卷积之后紧跟着下采样。当然,层数越多,网络结构越复杂,训练起来越费时。为了防止复杂网络由精度过高带来的过拟合(Overfitting)问题,Hinton等人提出了“dropout”技术,即在每次训练迭代中随机丢弃一部分边及其权重,取得了一定的效果。

图1-12 卷积神经网络示意图[17]
5.循环神经网络
在卷积神经网络中,信号只能从输入端逐层向前传递,且不同时刻的信号相互独立。循环神经网络(Recurrence Neural Network,RNN)可以把上一时刻处理完毕的输出结果W与下一时刻本身的输入U共同作为输入,参与下一时刻的运算,如图1-13所示[17]。该网络能够有效地对信号序列随时间变化的过程建模,目前广泛应用在语音识别、自然语言处理等方面。

图1-13 循环神经网络示意图[17]
RNN信号随时间序列的展开如图1-14所示[17]。不难看出,Ot+1时刻的输入其实是由该时刻本身的输入与Ot时刻的输出共同组成的;而Ot时刻的输出有一部分又取决于Ot+1时刻的输出,以此往前递推。总结起来,每个时间节点上的输出,都是该时间点上自身的输入与历史累计输出共同作用的结果。先前时间越久远的输出,对当前Ot+1时刻的结果影响越小。

图1-14 RNN信号随时间序列展开图[17]
1.3.3 深度学习的应用场合
深度学习最早应用于图像识别,但在短短几年内,深度学习广泛应用于各领域,如在语音识别、音频处理、自然语言处理、机器人、生物信息处理、化学、计算机游戏、搜索引擎、网络广告投放、医学自动诊断和金融等领域均有应用。本节将着重介绍3种应用场景:人体姿态的三维复原、网站的隐私保护和自然场景中的文字提取与识别。
1.人体姿态的三维复原
近年来,随着人们对3D电影和3D动画的兴趣越来越浓厚,基于视频的3D人体姿态复原受到越来越多的关注。如何将从单目镜中所看到的传统二维图像转换成既具有远近距离感,又形象生动的三维立体图效果,是图像语义理解中的一个难题。文献[21]设计了一种多模态特征融合+自动编码器的深度网络结构,从原始2D特征到重构的3D特征的映射训练过程中,采用了反向传播(Back Propagation,BP)来调节网络节点间的权重,进而学习映射函数,使映射前后的特征误差最小化。与传统的非深度训练方法相比,该方法将复原后的正确率提高了20%~25%。如图1-15所示,第一行是原始二维图像,第二行是深度编码器所复原的三维图像,第三行是其他方法复原的三维图像。不难看出,深度学习方法对人体姿态的表述更准确(倾斜、侧身、迎面、背面等),即对图像语义的理解更正确。

图1-15 人体姿态复原示意图[21]
第一行:原始二维图像;第二行:深度编码器复原的三维图像;第三行:其他方法复原的三维图像
2.网站的隐私保护
如今,智能联网的手机越来越普及,手机拍照的清晰度也在不断提高。很多人喜欢拍照片,然后分享到网络社交平台上。虽然可以设置可见权限,如指定好友可见、家人可见等,但在默认的情况下,网络上被分享的照片是人人可见的。尤其是一些人的隐私保护意识淡薄,不经意间泄露的照片很可能影响他们日后的生活。
Image Privacy即iPrivacy[22],是一种大数据量+多层次结构+多主题的网络图片隐私保护方法,它的具体实现依赖深度卷积神经网络。该方法统计社交网络上任意两人之间的共同好友个数或者其他方面共享的程度,以衡量他们之间的关联度,并据此赋予一定权重。以此类推,其根据社交网站中海量人群中两两之间的关联度,构建深度关系网,最后采用关系网+稀疏表示的模型并对其进行训练来提取特征。实验结果表明,iPrivacy方法能够自动识别社交网站上哪些图片涉及个人隐私,并进行模糊处理。
3.自然场景中的文字提取与识别
在计算机视觉领域,从自然场景图像中读取文字,是一项非常热门且意义非凡的研究工作。它的整个过程包含两个部分:文字提取(检测)和文字识别。由于很多已有的自然场景图像中没有文字,因此训练样本数量严重不足。对此,英国牛津大学的Gupta等人用谷歌图片搜索引擎获取了8000张不同主题、不同场景的图像,并从Newsgroup 20数据库中提取了若干个3~7行不等的文字,将两者随机结合后一共产生了800000张人工合成图像,如图1-16所示。
随后,Gupta等人[23]以人工合成图像作为训练样本,采用深度卷积回归网络做监督训练,并采用大小不同的多个卷积核算子来提取文字信息,以克服文字多角度、多尺度、旋转及侧身所带来的不确定性。该方法能有效定位并标出测试图像中的文字,准确率达到80%以上。

图1-16 从自然场景+文字的人工合成图像中检测出文字(线框标出)[23]
接下来对提取的文字进行识别。对此,Shi等人[24]提出了卷积循环神经网络模型(CRNN),其具体由3个部分组成:卷积层、循环层和转录层。在卷积层中,将提取的文字从左到右划分成若干序列,并依次做卷积变换以提取特征序列,如图1-17所示;在循环层,采用类似RNN的长短期记忆(Long Short-Term Memory,LSTM)模型[25],根据特征序列间的依赖关系去判断文字序列中单个特征的取舍;在转录层,将提取的文字特征与词库中的单词进行匹配。词库越丰富,CRNN的识别效果越好。

图1-17 输入的原始图像文字(下方)和卷积变换后的序列特征(上方)[23]
1.3.4 深度学习开源工具
当前,主流的深度学习开源工具介绍如表1-2所示。
表1-2 主流深度学习开源工具介绍

续表
