深度学习概述

一、 深度学习概念

深度学习(Deep Learning, DL)由Hinton等人于2006年提出,是机器学习(MachineLearning, ML)的一个新领域。

深度学习被引入机器学习使其更接近于最初的目标----人工智能(AI,Artificial Intelligence)。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。

深度学习是一个复杂的机器学习算法,在语言和图像识别方面取得的效果,远远超过先前相关技术。它在搜索技术、数据挖掘、机器学习、机器翻译、自然语言处理、多媒体学习、语音、推荐和个性化技术,以及其它相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。

2006年,机器学习大师、多伦多大学教授Geoffrey Hinton及其学生Ruslan发表在世界顶级学术期刊《科学》上的一篇论文引发了深度学习在研究领域和应用领域的发展热潮。这篇文献提出了两个主要观点:(1)、多层人工神经网络模型有很强的特征学习能力,深度学习模型学习得到的特征数据对原数据有更本质的代表性,这将大大便于分类和可视化问题;(2)、对于深度神经网络很难训练达到最优的问题,可以采用逐层训练方法解决。将上层训练好的结果作为下层训练过程中的初始化参数。在这一文献中深度模型的训练过程中逐层初始化采用无监督学习方式。

2010年,深度学习项目首次获得来自美国国防部门DARPA计划的资助,参与方有美国NEC研究院、纽约大学和斯坦福大学。自2011年起,谷歌和微软研究院的语音识别方向研究专家先后采用深度神经网络技术将语音识别的错误率降低20%-30%,这是长期以来语音识别研究领域取得的重大突破。2012年,深度神经网络在图像识别应用方面也获得重大进展,在ImageNet评测问题中将原来的错误率降低了9%。同年,制药公司将深度神经网络应用于药物活性预测问题取得世界范围内最好结果。2012年6月,Andrew NG带领的科学家们在谷歌神秘的X实验室创建了一个有16000个处理器的大规模神经网络,包含数十亿个网络节点,让这个神经网络处理大量随机选择的视频片段。经过充分的训练以后,机器系统开始学会自动识别猫的图像。这是深度学习领域最著名的案例之一,引起各界极大的关注。

深度学习本质上是构建含有多隐层的机器学习架构模型,通过大规模数据进行训练,得到大量更具代表性的特征信息。从而对样本进行分类和预测,提高分类和预测的精度。这个过程是通过深度学习模型的手段达到特征学习的目的。深度学习模型和传统浅层学习模型的区别在于:(1)、深度学习模型结构含有更多的层次,包含隐层节点的层数通常在5层以上,有时甚至包含多达10层以上的隐藏节点;(2)、明确强调了特征学习对于深度模型的重要性,即通过逐层特征提取,将数据样本在原空间的特征变换到一个新的特征空间来表示初始数据,这使得分类或预测问题更加容易实现。和人工设计的特征提取方法相比,利用深度模型学习得到的数据特征对大数据的丰富内在信息更有代表性。

在统计机器学习领域,值得关注的问题是如何对输入样本进行特征空间的选择。例如对行人检测问题,需要寻找表现人体不同特点的特征向量。一般来说,当输入空间中的原始数据不能被直接分开时,则将其映射到一个线性可分的间接特征空间。而此间接空间通常可由3种方式获得:定义核函数映射到高维线性可分空间,如支持向量机(support vector machine,SVM)、手工编码或自动学习。前2种方式对专业知识要求很高,且耗费大量的计算资源,不适合高维输入空间。而第3种方式利用带多层非线性处理能力的深度学习结构进行自动学习,经实际验证被普遍认为具有重要意义与价值。深度学习结构相对于浅层学习结构[如SVM、人工神经网络(artificial neural networks,ANN),能够用更少的参数逼近高度非线性函数。

深度学习是机器学习领域一个新的研究方向,近年来在语音识别、计算机视觉等多类应用中取得突破性的进展。其动机在于建立模型模拟人类大脑的神经连接结构,在处理图像、声音和文本这些信号时,通过多个变换阶段分层对数据特征进行描述,进而给出数据的解释。以图像数据为例,灵长类的视觉系统中对这类信号的处理依次为:首先检测边缘、初始形状、然后再逐步形成更复杂的视觉形状,同样地,深度学习通过组合低层特征形成更加抽象的高层表示、属性类别或特征,给出数据的分层特征表示。

深度学习之所以被称为"深度",是相对支持向量机(supportvector machine, SVM)、提升方法(boosting)、最大熵方法等"浅层学习"方法而言的,深度学习所学得的模型中,非线性操作的层级数更多。浅层学习依靠人工经验抽取样本特征,网络模型学习后获得的是没有层次结构的单层特征;而深度学习通过对原始信号进行逐层特征变换,将样本在原空间的特征表示变换到新的特征空间,自动地学习得到层次化的特征表示,从而更有利于分类或特征的可视化。深度学习理论的另外一个理论动机是:如果一个函数可用k层结构以简洁的形式表达,那么用k-1层的结构表达则可能需要指数级数量的参数(相对于输入信号),且泛化能力不足。

深度学习算法打破了传统神经网络对层数的限制,可根据设计者需要选择网络层数。它的训练方法与传统的神经网络相比有很大区别,传统神经网络随机设定参数初始值,采用BP算法利用梯度下降算法训练网络,直至收敛。但深度结构训练很困难,传统对浅层有效的方法对于深度结构并无太大作用,随机初始化权值极易使目标函数收敛到局部极小值,且由于层数较多,残差向前传播会丢失严重,导致梯度扩散,因此深度学习过程中采用贪婪无监督逐层训练方法。即在一个深度学习设计中,每层被分开对待并以一种贪婪方式进行训练,当前一层训练完后,新的一层将前一层的输出作为输入并编码以用于训练;最后每层参数训练完后,在整个网络中利用有监督学习进行参数微调。

深度学习的概念最早由多伦多大学的G. E.Hinton等于2006年提出,基于样本数据通过一定的训练方法得到包含多个层级的深度网络结构的机器学习过程。传统的神经网络随机初始化网络中的权值,导致网络很容易收敛到局部最小值,为解决这一问题,Hinton提出使用无监督预训练方法优化网络权值的初值,再进行权值微调的方法,拉开了深度学习的序幕。

深度学习所得到的深度网络结构包含大量的单一元素(神经元),每个神经元与大量其他神经元相连接,神经元间的连接强度(权值)在学习过程中修改并决定网络的功能。通过深度学习得到的深度网络结构符合神经网络的特征,因此深度网络就是深层次的神经网络,即深度神经网络(deep neural networks, DNN)。

深度学习的概念起源于人工神经网络的研究,有多个隐层的多层感知器是深度学习模型的一个很好的范例。对神经网络而言,深度指的是网络学习得到的函数中非线性运算组合水平的数量。当前神经网络的学习算法多是针对较低水平的网络结构,将这种网络称为浅结构神经网络,如一个输入层、一个隐层和一个输出层的神经网络;与此相反,将非线性运算组合水平较高的网络称为深度结构神经网络,如一个输入层、三个隐层和一个输出层的神经网络。

深度学习的基本思想:假设有系统S,它有n层(S1,…,Sn),输入为I,输出为O,可形象的表示为:I=>S1=>S2=>… =>Sn=>O。为了使输出O尽可能的接近输入I,可以通过调整系统中的参数,这样就可以得到输入I的一系列层次特征S1,S2,…,Sn。对于堆叠的多个层,其中一层的输出作为其下一层的输入,以实现对输入数据的分级表达,这就是深度学习的基本思想。

二、 国内外研究现状

深度学习极大地促进了机器学习的发展,受到世界各国相关领域研究人员和高科技公司的重视,语音、图像和自然语言处理是深度学习算法应用最广泛的三个主要研究领域:

1、深度学习在语音识别领域研究现状

长期以来,语音识别系统大多是采用混合高斯模型(GMM)来描述每个建模单元的统计概率模型。由于这种模型估计简单,方便使用大规模数据对其训练,该模型有较好的区分度训练算法保证了该模型能够被很好的训练。在很长时间内占据了语音识别应用领域主导性地位。但是这种混合高斯模型实质上是一种浅层学习网络建模,特征的状态空间分布不能够被充分描述。而且,使用混合高斯模型建模方式数据的特征维数通常只有几十维,这使得特征之间的相关性不能被充分描述。最后混合高斯模型建模实质上是一种似然概率建模方式,即使一些模式分类之间的区分性能够通过区分度训练模拟得到,但是效果有限。

从2009年开始,微软亚洲研究院的语音识别专家们和深度学习领军人物Hinton取得合作。2011年微软公司推出了基于深度神经网络的语音识别系统,这一成果将语音识别领域已有的技术框架完全改变。采用深度神经网络后,样本数据特征间相关性信息得以充分表示,将连续的特征信息结合构成高维特征,通过高维特征样本对深度神经网络模型进行训练。由于深度神经网络采用了模拟人脑神经架构,通过逐层地进行数据特征提取,最终得到适合进行模式分类处理的理想特征。深度神经网络建模技术,在实际线上应用时,能够很好地和传统语音识别技术结合,语音识别系统识别率大幅提升。

国际上,谷歌也使用深层神经网络对声音进行建模,是最早在深度神经网络的工业化应用领域取得突破的企业之一。但谷歌的产品中使用的深度神经网络架构只有4、5层,与之相比百度使用的深度神经网络架构多达9层,正是这种结构上的差别使深度神经网络在线学习的计算难题得以更好的解决。这使得百度的线上产品能够采用更加复杂的神经网络模型。这种结构差异的核心其实是百度更好地解决了深度神经网络在线计算的技术难题,因此百度线上产品可以采用更复杂的网络模型。这对将来拓展大规模语料数据对深度神经网络模型的训练有更大的帮助。

2、深度学习在图像识别领域研究现状

对于图像的处理是深度学习算法最早尝试应用的领域。早在1989年,加拿大多伦多大学教授Yann LeCun就和他的同事们一起提出了卷积神经网络(Convolutional Neural Networks)。卷积神经网络也称为CNN,它是一种包含卷积层的深度神经网络模型。通常一个卷积神经网络架构包含两个可以通过训练产生的非线性卷积层,两个固定的子采样层和一个全连接层,隐藏层的数量一般至少在5个以上。CNN的架构设计是受到生物学家Hubel和Wiesel的动物视觉模型启发而发明的,尤其是模拟动物视觉皮层V1层和V2层中简单细胞(Simple Cell)和复杂细胞(Complex Cell)在视觉系统的功能。起初卷积神经网络在小规模的应用问题上取得了当时世界最好成果。但在很长一段时间里一直没有取得重大突破。主要原因是由于卷积神经网络应用在大尺寸图像上一直不能取得理想结果,比如对于像素数很大的自然图像内容的理解,这使得它没有引起计算机视觉研究领域足够的重视。直到2012年10月,Hinton教授以及他的两个学生采用更深的卷积神经网络模型在著名的ImageNet问题上取得了世界最好成果,使得对于图像识别的研究工作前进了一大步。Hinton构建的深度神经网络模型是使用原始的自然图像训练的,没有使用任何人工特征提取方法。

自卷积神经网络提出以来,在图像识别问题上并没有取得质的提升和突破,直到2012年Hinton构建的深度神经网络才取得惊人成果。这主要是因为对算法的改进,在网络的训练中引入了权重衰减的概念,有效的减小权重幅度,防止网络过拟合。更关键的是计算机计算能力的提升,GPU加速技术的发展,这使得在训练过程中可以产生更多的训练数据,使网络能够更好的拟合训练样本。2012年国内互联网巨头百度公司将相关最新技术成功应用到人脸识别和自然图像识别问题,并推出了相应的产品。现在深度学习网络模型已能够理解和识别一般的自然图像。深度学习模型不仅大幅提高了图像识别的精度,同时也避免了需要消耗大量的时间进行人工特征提取的工作,使得在线运算效率大大提升。深度学习将有可能取代以往人工和机器学习相结合的方式成为主流图像识别技术。

3、深度学习在自然语言处理领域研究现状

自然语言处理(NLP)问题是深度学习在除了语音和图像处理之外的另一个重要应用领域。数十年以来,自然语言处理的主流方法是基于统计的模型,人工神经网络也是基于统计方法模型之一,但在自然语言处理领域却一直没有被重视。语言建模是最早采用神经网络进行自然语言处理的问题。美国的NEC研究院最早将深度学习引入到自然语言处理研究工作中,其研究人员从2008年起采用将词汇映射到一维矢量空间方法和多层一维卷积结构去解决词性标注、分词、命名实体识别和语义角色标注四个典型的自然语言处理问题。他们构建了同一个网络模型用于解决四个不同问题,都取得了相当精确的结果。总体而言,深度学习在自然语言处理问题上取得的成果和在图像语音识别方面还有相当的差距,仍有待深入探索。

由于深度学习能够很好地解决一些复杂问题,近年来许多研究人员对其进行了深人研究,出现了许多有关深度学习研究的新进展。下面分别从初始化方法、网络层数和激活函数的选择、模型结构两个个方面对近几年深度学习研究的新进展进行介绍。

1、 初始化方法、网络层数和激活函数的选择

研究人员试图搞清网络初始值的设定与学习结果之间的关系。Erhan等人在轨迹可视化研究中指出即使从相近的值开始训练深度结构神经网络,不同的初始值也会学习到不同的局部极值,同时发现用无监督预训练初始化模型的参数学习得到的极值与随机初始化学习得到的极值差异比较大,用无监督预训练初始化模型的参数学习得到的模型具有更好的泛化误差。Bengio与Krueger等人指出用特定的方法设定训练样例的初始分布和排列顺序可以产生更好的训练结果,用特定的方法初始化参数,使其与均匀采样得到的参数不同,会对梯度下降算法训练的结果产生很大的影响。Glorot等人指出通过设定一组初始权值使得每一层深度结构神经网络的Jacobian矩阵的奇异值接近1,在很大程度上减小了监督深度结构神经网络和有预训练过程设定初值的深度结构神经网络之间的学习结果差异。另外,用于深度学习的学习算法通常包含许多超参数,一些常用的超参数,尤其适用于基于反向传播的学习算法和基于梯度的优化算法。

选择不同的网络隐层数和不同的非线性激活函数会对学习结果产生不同的影响。Glorot等人研究了隐层非线性映射关系的选择和网络的深度相互影响的问题,讨论了随机初始化的标准梯度下降算法用于深度结构神经网络学习得到不好的学习性能的原因。Glorot等人观察不同非线性激活函数对学习结果的影响,得到逻辑斯蒂S型激活单元的均值会驱使顶层和隐层进入饱和,因而逻辑斯蒂S型激活单元不适合用随机初始化梯度算法学习深度结构神经网络;并据此提出了标准梯度下降算法的一种新的初始化方案来得到更快的收敛速度。Bengio等人从理论上说明深度学习结构的表示能力随着神经网络深度的增加以指数的形式增加,但是这种增加的额外表示能力会引起相应局部极值数量的增加,使得在其中寻找最优值变得困难。

2、 模型结构

(1)、DBN的结构及其变种:采用二值可见单元和隐单元RBM作为结构单元的DBN,在MNIST等数据集上表现出很好的性能。近几年,具有连续值单元的RBM,如mcRBM、mPoT模型和spike—and-slab RBM等已经成功应用。Spike—and—slab RBM中spike表示以0为中心的离散概率分布,slab表示在连续域上的稠密均匀分布,可以用吉布斯采样对spike—and—slab RBM进行有效推断,得到优越的学习性能。

(2)、和--积网络;深度学习最主要的困难是配分函数的学习,如何选择深度结构神经网络的结构使得配分函数更容易计算? Poon等人提出一种新的深度模型结构----和--积网络(sum—product network,SPN),引入多层隐单元表示配分函数,使得配分函数更容易计算。SPN是有根节点的有向无环图,图中的叶节点为变量,中间节点执行和运算与积运算,连接节点的边带有权值,它们在Caltech-101和Olivetti两个数据集上进行实验证明了SPN的性能优于DBN和最近邻方法。

(3)、基于rectified单元的学习:Glorot与Mesnil等人用降噪自编码模型来处理高维输入数据。与通常的S型和正切非线性隐单元相比,该自编码模型使用rectified单元,使隐单元产生更加稀疏的表示。对于高维稀疏数据,Dauphin等人采用抽样重构算法,训练过程只需要计算随机选择的很小的样本子集的重构和重构误差,在很大程度上提高了学习速度,实验结果显示提速了20倍。Glorot等人提出在深度结构神经网络中,在图像分类和情感分类问题中用rectified非线性神经元代替双曲正切或S型神经元,指出rectified神经元网络在零点产生与双曲正切神经元网络相当或者有更好的性能,能够产生有真正零点的稀疏表示,非常适合本质稀疏数据的建模,在理解训练纯粹深度监督神经网络的困难,搞清使用或不使用无监督预训练学习的神经网络造成的性能差异方面,可以看做新的里程碑;Glorot等人还提出用增加L1正则化项来促进模型稀疏性,使用无穷大的激活函数防止算法运行过程中可能引起的数值问题。在此之前,Nair等人提出在RBM环境中rectifed神经元产生的效果比逻辑斯蒂S型激活单元好,他们用无限数量的权值相同但是负偏差变大的一组单元替换二值单元,生成用于RBM的更好的一类隐单元,将RBM泛化,可以用噪声rectified线性单元(rectified linear units)有效近似这些S型单元。用这些单元组成的RBM在NORB数据集上进行目标识别以及在数据集上进行已标记人脸实际验证,得到比二值单元更好的性能,并且可以更好地解决大规模像素强度值变化很大的问题。

(4)、卷积神经网络:研究了用生成式子抽样单元组成的卷积神经网络,在MNIST数字识别任务和Cahech一101目标分类基准任务上进行实验,显示出非常好的学习性能。Huang等人提出一种新的卷积学习模型----局部卷积RBM,利用对象类中的总体结构学习特征,不假定图像具有平稳特征,在实际人脸数据集上进行实验,得到性能很好的实验结果。

三、 深度学习模型结构

深度神经网络是由多个单层非线性网络叠加而成的,常见的单层网络按照编码解码情况分为3类:只包含编码器部分、只包含解码器部分、既有编码器部分也有解码器部分。编码器提供从输入到隐含特征空间的自底向上的映射,解码器以重建结果尽可能接近原始输入为目标将隐含特征映射到输入空间。

人的视觉系统对信息的处理是分级的。从低级的提取边缘特征到形状(或者目标等),再到更高层的目标、目标的行为等,即底层特征组合成了高层特征,由低到高的特征表示越来越抽象。深度学习借鉴的这个过程就是建模的过程。

深度神经网络可以分为3类,前馈深度网络(feed-forwarddeep networks, FFDN),由多个编码器层叠加而成,如多层感知机(multi-layer perceptrons, MLP)、卷积神经网络(convolutionalneural networks, CNN)等。反馈深度网络(feed-back deep networks, FBDN),由多个解码器层叠加而成,如反卷积网络(deconvolutionalnetworks, DN)、层次稀疏编码网络(hierarchical sparse coding, HSC)等。双向深度网络(bi-directionaldeep networks, BDDN),通过叠加多个编码器层和解码器层构成(每层可能是单独的编码过程或解码过程,也可能既包含编码过程也包含解码过程),如深度玻尔兹曼机(deep Boltzmann machines, DBM)、深度信念网络(deep beliefnetworks, DBN)、栈式自编码器(stacked auto-encoders, SAE)等。

1、 前溃深度网络

前馈神经网络是最初的人工神经网络模型之一。在这种网络中,信息只沿一个方向流动,从输入单元通过一个或多个隐层到达输出单元,在网络中没有封闭环路。典型的前馈神经网络有多层感知机和卷积神经网络等。F. Rosenblatt提出的感知机是最简单的单层前向人工神经网络,但随后M. Minsky等证明单层感知机无法解决线性不可分问题(如异或操作),这一结论将人工神经网络研究领域引入到一个低潮期,直到研究人员认识到多层感知机可解决线性不可分问题,以及反向传播算法与神经网络结合的研究,使得神经网络的研究重新开始成为热点。但是由于传统的反向传播算法,具有收敛速度慢、需要大量带标签的训练数据、容易陷入局部最优等缺点,多层感知机的效果并不是十分理想。1984年日本学者K. Fukushima等基于感受野概念,提出的神经认知机可看作卷积神经网络的一种特例。Y. Lecun等提出的卷积神经网络是神经认知机的推广形式。卷积神经网络是由多个单层卷积神经网络组成的可训练的多层网络结构。每个单层卷积神经网络包括卷积、非线性变换和下采样3个阶段,其中下采样阶段不是每层都必需的。每层的输入和输出为一组向量构成的特征图(feature map)(第一层的原始输入信号可以看作一个具有高稀疏度的高维特征图)。例如,输入部分是一张彩色图像,每个特征图对应的则是一个包含输入图像彩色通道的二维数组(对于音频输入,特征图对应的是一维向量;对于视频或立体影像,对应的是三维数组);对应的输出部分,每个特征图对应的是表示从输入图片所有位置上提取的特定特征。

(1)、单层卷积神经网络:卷积阶段,通过提取信号的不同特征实现输入信号进行特定模式的观测。其观测模式也称为卷积核,其定义源于由D. H. Hubel等基于对猫视觉皮层细胞研究提出的局部感受野概念。每个卷积核检测输入特征图上所有位置上的特定特征,实现同一个输入特征图上的权值共享。为了提取输入特征图上不同的特征,使用不同的卷积核进行卷积操作。卷积阶段的输入是由n1个n2*n3大小的二维特征图构成的三维数组。每个特征图记为xi,该阶段的输出y,也是个三维数组,由m1个m2*m3大小的特征图构成。在卷积阶段,连接输入特征图xi和输出特征图yj的权值记为wij,即可训练的卷积核(局部感受野),卷积核的大小为k2*k3,输出特征图为yj。

非线性阶段,对卷积阶段得到的特征按照一定的原则进行筛选,筛选原则通常采用非线性变换的方式,以避免线性模型表达能力不够的问题。非线性阶段将卷积阶段提取的特征作为输入,进行非线性映射R=h(y)。传统卷积神经网络中非线性操作采用sigmoid、tanh 或softsign等饱和非线性(saturating nonlinearities)函数,近几年的卷积神经网络中多采用不饱和非线性(non-saturating nonlinearity)函数ReLU(rectifiedlinear units)。在训练梯度下降时,ReLU比传统的饱和非线性函数有更快的收敛速度,因此在训练整个网络时,训练速度也比传统的方法快很多。

下采样阶段,对每个特征图进行独立操作,通常采用平均池化(average pooling)或者最大池化(max pooling)的操作。平均池化依据定义的邻域窗口计算特定范围内像素的均值PA,邻域窗口平移步长大于1(小于等于池化窗口的大小);最大池化则将均值PA替换为最值PM输出到下个阶段。池化操作后,输出特征图的分辨率降低,但能较好地保持高分辨率特征图描述的特征。一些卷积神经网络完全去掉下采样阶段,通过在卷积阶段设置卷积核窗口滑动步长大于1达到降低分辨率的目的。

(2)、卷积神经网络:将单层的卷积神经网络进行多次堆叠,前一层的输出作为后一层的输入,便构成卷积神经网络。其中每2个节点间的连线,代表输入节点经过卷积、非线性变换、下采样3个阶段变为输出节点,一般最后一层的输出特征图后接一个全连接层和分类器。为了减少数据的过拟合,最近的一些卷积神经网络,在全连接层引入"Dropout"或"DropConnect"的方法,即在训练过程中以一定概率P将隐含层节点的输出值(对于"DropConnect"为输入权值)清0,而用反向传播算法更新权值时,不再更新与该节点相连的权值。但是这2种方法都会降低训练速度。在训练卷积神经网络时,最常用的方法是采用反向传播法则以及有监督的训练方式。网络中信号是前向传播的,即从输入特征向输出特征的方向传播,第1层的输入X,经过多个卷积神经网络层,变成最后一层输出的特征图O。将输出特征图O与期望的标签T进行比较,生成误差项E。通过遍历网络的反向路径,将误差逐层传递到每个节点,根据权值更新公式,更新相应的卷积核权值wij。在训练过程中,网络中权值的初值通常随机初始化(也可通过无监督的方式进行预训练),网络误差随迭代次数的增加而减少,并且这一过程收敛于一个稳定的权值集合,额外的训练次数呈现出较小的影响。

(3)、卷积神经网络的特点:卷积神经网络的特点在于,采用原始信号(一般为图像)直接作为网络的输入,避免了传统识别算法中复杂的特征提取和图像重建过程。局部感受野方法获取的观测特征与平移、缩放和旋转无关。卷积阶段利用权值共享结构减少了权值的数量进而降低了网络模型的复杂度,这一点在输入特征图是高分辨率图像时表现得更为明显。同时,下采样阶段利用图像局部相关性的原理对特征图进行子抽样,在保留有用结构信息的同时有效地减少数据处理量。

CNN(convolutional neuralnetworks)是一种有监督深度的模型架构,尤其适合二维数据结构。目前研究与应用都较广泛,在行人检测、人脸识别、信号处理等领域均有新的成果与进展。它是带有卷积结构的深度神经网络,也是首个真正意义上成功训练多层网络的识别算法。CNN与传统ANN 算法的主要区别在于权值共享以及非全连接。权值共享能够避免算法过拟合,通过拓扑结构建立层与层间非全连接空间关系来降低训练参数的数目,同时也是CNN的基本思想。CNN的实质是学习多个能够提取输入数据特征的滤波器,通过这些滤波器与输入数据进行逐层卷积及池化,逐级提取隐藏在数据中拓扑结构特征。随网络结构层层深入,提取的特征也逐渐变得抽象,最终获得输入数据的平移、旋转及缩放不变性的特征表示。较传统神经网络来说,CNN将特征提取与分类过程同时进行,避免了两者在算法匹配上的难点。

CNN主要由卷积层与下采样层交替重复出现构建网络结构,卷积层用来提取输入神经元数据的局部特征,下采样层用来对其上一层提取的数据进行缩放映射以减少训练数据量,也使提取的特征具有缩放不变性。一般来说,可以选择不同尺度的卷积核来提取多尺度特征,使提取的特征具有旋转、平移不变性。输入图像与可学习的核进行卷积,卷积后的数据经过激活函数得到一个特征图。卷积层的特征图可以由多个输入图组合获得,但对于同一幅输入图其卷积核参数是一致的,这也是权值共享的意义所在。卷积核的初始值并非随机设置,而是通过训练或者按照一定标准预先给定,如仿照生物视觉特征用Gabor 滤波器进行预处理。下采样层通过降低网络空间分辨率来增强缩放不变性。

CNN的输出层一般采用线性全连接,目前最常用的就是Softmax 分类方法。CNN的参数训练过程与传统的人工神经网络类似,采用反向传播算法,包括前向传播与反向传播2个重要阶段。

CNN实际应用中会遇到诸多问题,如网络权值的预学习问题,收敛条件以及非全连接规则等,这些均需要实际应用中进一步解决与优化。

卷积神经网络模型:在无监督预训练出现之前,训练深度神经网络通常非常困难,而其中一个特例是卷积神经网络。卷积神经网络受视觉系统的结构启发而产生。第一个卷积神经网络计算模型是在Fukushima的神经认知机中提出的,基于神经元之间的局部连接和分层组织图像转换,将有相同参数的神经元应用于前一层神经网络的不同位置,得到一种平移不变神经网络结构形式。后来,LeCun等人在该思想的基础上,用误差梯度设计并训练卷积神经网络,在一些模式识别任务上得到优越的性能。至今,基于卷积神经网络的模式识别系统是最好的实现系统之一,尤其在手写体字符识别任务上表现出非凡的性能。LeCun的卷积神经网络由卷积层和子抽样层两种类型的神经网络层组成。每一层有一个拓扑图结构,即在接收域内,每个神经元与输入图像中某个位置对应的固定二维位置编码信息关联。在每层的各个位置分布着许多不同的神经元,每个神经元有一组输入权值,这些权值与前一层神经网络矩形块中的神经元关联;同一组权值和不同输入矩形块与不同位置的神经元关联。卷积神经网络是多层的感知器神经网络,每层由多个二维平面块组成,每个平面块由多个独立神经元组成。为了使网络对平移、旋转、比例缩放以及其他形式的变换具有不变性,对网络的结构进行一些约束限制:(1)、特征提取:每一个神经元从上一层的局部接收域得到输入,迫使其提取局部特征。(2)、特征映射:网络的每一个计算层由多个特征映射组成,每个特征映射都以二维平面的形式存在,平面中的神经元在约束下共享相同的权值集。(3)、子抽样:该计算层跟随在卷积层后,实现局部平均和子抽样,使特征映射的输出对平移等变换的敏感度下降。卷积神经网络通过使用接收域的局部连接,限制了网络结构。卷积神经网络的另一个特点是权值共享,但是由于同一隐层的神经元共享同一权值集,大大减少了自由参数的数量。卷积神经网络本质上实现一种输入到输出的映射关系,能够学习大量输入与输出之间的映射关系,不需要任何输入和输出之间的精确数学表达式,只要用已知的模式对卷积神经网络加以训练,就可以使网络具有输入输出之间的映射能力。卷积神经网络执行的是有监督训练,在开始训练前,用一些不同的小随机数对网络的所有权值进行初始化。

卷积神经网络的训练分为两个阶段:(1)、向前传播阶段:从样本集中抽取一个样本(X,Yp),将x输入给网络,信息从输入层经过逐级变换传送到输出层,计算相应的实际输出Op;(2)、向后传播阶段:也称为误差传播阶段。计算实际输出Op与理想输出Yp的差异。并按最小化误差的方法调整权值矩阵。

卷积神经网络的特征检测层通过训练数据来进行学习,避免了显式的特征提取,而是隐式地从训练数据中学习特征,而且同一特征映射面上的神经元权值相同,网络可以并行学习,这也是卷积神经网络相对于其他神经网络的一个优势。权值共享降低了网络的复杂性,特别是多维向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。

卷积神经网络的成功依赖于两个假设:(1)、每个神经元有非常少的输入,这有助于将梯度在尽可能多的层中进行传播;(2)、分层局部连接结构是非常强的先验结构,特别适合计算机视觉任务,如果整个网络的参数处于合适的区域,基于梯度的优化算法能得到很好的学习效果。卷积神经网络的网络结构更接近实际的生物神经网络,在语音识别和图像处理方面具有独特的优越性,尤其是在视觉图像处理领域进行的实验,得到了很好的结果。

2、 反馈深度网络

与前馈网络不同,反馈网络并不是对输入信号进行编码,而是通过解反卷积或学习数据集的基,对输入信号进行反解。前馈网络是对输入信号进行编码的过程,而反馈网络则是对输入信号解码的过程。典型的反馈深度网络有反卷积网络、层次稀疏编码网络等。以反卷积网络为例,M. D. Zeiler等提出的反卷积网络模型和Y. LeCun等提出的卷积神经网络思想类似,但在实际的结构构件和实现方法上有所不同。卷积神经网络是一种自底向上的方法,该方法的每层输入信号经过卷积、非线性变换和下采样3个阶段处理,进而得到多层信息。相比之下,反卷积网络模型的每层信息是自顶向下的,组合通过滤波器组学习得到的卷积特征来重构输入信号。层次稀疏编码网络和反卷积网络非常相似,只是在反卷积网络中对图像的分解采用矩阵卷积的形式,而在稀疏编码中采用矩阵乘积的方式。

(1)、单层反卷积网络:反卷积网络是通过先验学习,对信号进行稀疏分解和重构的正则化方法。

(2)、反卷积网络:单层反卷积网络进行多层叠加,可得到反卷积网络。多层模型中,在学习滤波器组的同时进行特征图的推导,第L层的特征图和滤波器是由第L-1层的特征图通过反卷积计算分解获得。反卷积网络训练时,使用一组不同的信号y,求解C(y),进行滤波器组f和特征图z的迭代交替优化。训练从第1层开始,采用贪心算法,逐层向上进行优化,各层间的优化是独立的。

(3)、反卷积网络的特点:反卷积网络的特点在于,通过求解最优化输入信号分解问题计算特征,而不是利用编码器进行近似,这样能使隐层的特征更加精准,更有利于信号的分类或重建。

自动编码器:对于一个给定的神经网络,假设其输出等于输入(理想状态下),然后通过训练调整其参数得到每一层的权重,这样就可以得到输入的几种不同的表示,这些表示就是特征。当在原有特征的基础上加入这些通过自动学习得到的特征时,可以大大提高精确度,这就是自动编码(AutoEncoder)。如果再继续加上一些约束条件的话,就可以得到新的深度学习方法。比如在自动编码的基础上加上稀疏性限制,就可得到稀疏自动编码器(Sparse AutoEncoder)。

稀疏自动编码器:与CNN不同,深度自动编码器是一种无监督的神经网络学习架构。此类架构的基本结构单元为自动编码器,它通过对输入特征X按照一定规则及训练算法进行编码,将其原始特征利用低维向量重新表示。自动编码器通过构建类似传统神经网络的层次结构,并假设输出Y与输入X相等,反复训练调整参数得到网络参数值。上述自编码器若仅要求X≈Y,且对隐藏神经元进行稀疏约束,从而使大部分节点值为0或接近0的无效值,便得到稀疏自动编码算法。一般情况下,隐含层的神经元数应少于输入X的个数,因为此时才能保证这个网络结构的价值。正如主成分分析(principal component analysis,PCA)算法,通过降低空间维数去除冗余,利用更少的特征来尽可能完整的描述数据信息。实际应用中将学习得到的多种隐层特征(隐层数通常多个)与原始特征共同使用,可以明显提高算法的识别精度。

自动编码器参数训练方法有很多,几乎可以采用任何连续化训练方法来训练参数。但由于其模型结构不偏向生成型,无法通过联合概率等定量形式确定模型合理性。稀疏性约束在深度学习算法优化中的地位越来越重要,主要与深度学习特点有关。大量的训练参数使训练过程复杂,且训练输出的维数远比输入的维数高,会产生许多冗余数据信息。加入稀疏性限制,会使学习到的特征更加有价值,同时这也符合人脑神经元响应稀疏性特点。

3、 双向深度网络

双向网络由多个编码器层和解码器层叠加形成,每层可能是单独的编码过程或解码过程,也可能同时包含编码过程和解码过程。双向网络的结构结合了编码器和解码器2类单层网络结构,双向网络的学习则结合了前馈网络和反馈网络的训练方法,通常包括单层网络的预训练和逐层反向迭代误差2个部分,单层网络的预训练多采用贪心算法:每层使用输入信号IL与权值w计算生成信号IL+1传递到下一层,信号IL+1再与相同的权值w计算生成重构信号I'L 映射回输入层,通过不断缩小IL与I'L间的误差,训练每层网络。网络结构中各层网络结构都经过预训练之后,再通过反向迭代误差对整个网络结构进行权值微调。其中单层网络的预训练是对输入信号编码和解码的重建过程,这与反馈网络训练方法类似;而基于反向迭代误差的权值微调与前馈网络训练方法类似。典型的双向深度网络有深度玻尔兹曼机、深度信念网络、栈式自编码器等。以深度玻尔兹曼机为例,深度玻尔兹曼机由R. Salakhutdinov等提出,它由多层受限玻尔兹曼机(restricted Boltzmann machine, RBM )叠加构成。

(1)、受限玻尔兹曼机:玻尔兹曼机(Boltzmann machine, BM)是一种随机的递归神经网络,由G. E.Hinton等提出,是能通过学习数据固有内在表示、解决复杂学习问题的最早的人工神经网络之一。玻尔兹曼机由二值神经元构成,每个神经元只取0或1两种状态,状态1代表该神经元处于激活状态,0表示该神经元处于抑制状态。然而,即使使用模拟退火算法,这个网络的学习过程也十分慢。Hinton等提出的受限玻尔兹曼机去掉了玻尔兹曼机同层之间的连接,从而大大提高了学习效率。受限玻尔兹曼机分为可见层v以及隐层h,可见层和隐层的节点通过权值w相连接,2层节点之间是全连接,同层节点间互不相连。

受限玻尔兹曼机一种典型的训练方法:首先随机初始化可见层,然后在可见层与隐层之间交替进行吉布斯采样:用条件分布概率P(h|v)计算隐层;再根据隐层节点,同样用条件分布概率P(v|h)来计算可见层;重复这一采样过程直到可见层和隐层达到平稳分布。而Hinton提出了一种快速算法,称作对比离差(contrastive divergence, CD)学习算法。这种算法使用训练数据初始化可见层,只需迭代k次上述采样过程(即每次迭代包括从可见层更新隐层,以及从隐层更新可见层),就可获得对模型的估计。

(2)、深度玻尔兹曼机:将多个受限玻尔兹曼机堆叠,前一层的输出作为后一层的输入,便构成了深度玻尔兹曼机。网络中所有节点间的连线都是双向的。深度玻尔兹曼机训练分为2个阶段:预训练阶段和微调阶段。在预训练阶段,采用无监督的逐层贪心训练方法来训练网络每层的参数,即先训练网络的第1个隐含层,然后接着训练第2,3,…个隐含层,最后用这些训练好的网络参数值作为整体网络参数的初始值。预训练之后,将训练好的每层受限玻尔兹曼机叠加形成深度玻尔兹曼机,利用有监督的学习对网络进行训练(一般采用反向传播算法)。由于深度玻尔兹曼机随机初始化权值以及微调阶段采用有监督的学习方法,这些都容易使网络陷入局部最小值。而采用无监督预训练的方法,有利于避免陷入局部最小值问题。

受限玻尔兹曼机(RBM,RestrictBoltzmann Machine):假设有一个二部图(二分图),一层是可视层v(即输入层),一层是隐层h,每层内的节点之间设有连接。在已知v时,全部的隐藏节点之间都是条件独立的(因为这个模型是二部图),即p(h|v) = p(h1|v1) … p(hn|v)。同样的,在已知隐层h的情况下,可视节点又都是条件独立的,又因为全部的h和v满足玻尔兹曼分布,所以当输入v的时候,通过p(h|v)可得到隐层h,得到h之后,通过p(v|h)又可以重构可视层v。通过调整参数,使得从隐层计算得到的可视层与原来的可视层有相同的分布。这样的话,得到的隐层就是可视层的另外一种表达,即可视层的特征表示。若增加隐层的层数,可得到深度玻尔兹曼机(DBM,Deep Boltzmann Machine)。若在靠近可视层v的部分使用贝叶斯信念网,远离可视层的部分使用RBM,那么就可以得到一个深度信念网络(DBNs,Deep Belief Nets)。

受限玻尔兹曼机模型是玻尔兹曼机(BM,BoltzmannMachine)模型的一种特殊形式,其特殊性就在于同层内的节点没有连接,是以二部图的形式存在。

  • 6
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值