深度学习理论综述
2016-06-17韩小虎徐鹏韩森森
韩小虎 徐鹏 韩森森
摘 要: 深度学习是机器学习研究中的一个新领域,其动机在于建立、模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据。目前深度学习在智能识别方向具有很强的优越性。文章主要介绍了深度学习的基本理论、常用模型和开发平台。
关键词: 深度学习; 机器学习; 特征表示; 工具
中图分类号:TP399 文献标志码:A 文章编号:1006-8228(2016)06-107-04
Abstract: Deep learning is a new field in the research of machine learning, whose motivation is to build and simulate the neural network, with which the human brain analyzes and studies, and simulate the mechanism of human brain to interpret the data. At present, deep learning has a strong advantage in the direction of intelligent identification. This paper mainly introduces the basic theory, common models and development platforms of deep learning.
Key words: machine learning; deep learning; feature expression; tool
0 引言
神经网络的历史最早可以追溯到上世纪的40年代,在20世纪80年末期,Rumelhart、Hinton和Williams在《自然》(Nature)上发表了用于人工神经网络的BP(Back-Propagation,反向传播)算法[1],掀起了一阵机器学习的浪潮,但是由于各种原因,神经网络被许多学者放弃。
20世纪90年代,更多的学者开始采用浅层机器学习模型,例如SVM(Support Vector Machines,支持向量机),最近邻等分类器,Boosting等。这些模型都取得了巨大成功,但是同时由于理论分析难度大,训练方法复杂,这个时期神经网络陷入了沉寂。
自2006年以来,深度学习领域取得了突破性进展,人工智能的实现,不再是那么遥不可及的事情了。至于技术手段,在依赖云计算对大数据的并行处理能力的基础上,更加依赖一个算法,这个算法就是深度学习,通过这个方法,人们终于知道如何处理抽象概念这个难题。
深度学习的概念最早由机器学习领域的泰斗、多伦多大学G.E.Hinton教授提出[2],之后在各大领域有了飞速的发展。2012年,由Hinton教授带领的深度学习团队在ImageNet图像分类大赛中取得了优胜,其准确率超过了第二名10%以上,引起了计算机视觉领域的极大震动,再一次掀起了深度学习的浪潮。同年6月,Google被披露出Google Brain计划,这个项目由斯坦福大学的机器学习教授Andrew Ng和在大规模计算机系统方面的世界顶尖专家JeffDean共同主导,用16000个CPU Core的并行计算平台训练一种称为“深度神经网络”(DNN,Deep Neural Networks)的机器学习模型,在语音识别和图像识别等领域获得了巨大的成功。百度在2013年1月高调宣布成立百度研究院,其中第一个便是深度学习研究所(IDL,Institute of Deep Learning)。
1 深度学习基本理论
人工智能所具有的特征之一就是对信息的学习能力,即网络的性能是否会随着数据的增加积累也不断提高。随着人类社会信息的高度爆发,大数据时代到来,可用计算能力与数据量的增加,为人工智能的发展提供很好的平台。在这样的背景下,深度学习在各大领域所取得的成就绝非偶然。
深度学习基本理论主要包括深度学习的基本概念、深度学习的训练过程和深度学习的模型三部分。
1.1 深度学习的基本概念与架构
2006年,加拿大多伦多大学教授、机器学习领域泰斗Geoffrey Hinton和他的学生Ruslan SalakHutdinov首次在《科学》上发表论文,提出深度学习的两个主要观点。
⑴ 含多隐层的人工神经网络具有很优秀的特征学习能力,其对学习所得到的特征数据有更深刻的展示,最终得到的网络数据更有利于分类或可视化。
⑵ 深度神经网络在训练其本身网络参数上的具有一定的难度,但是这些都可以通过“逐层初始化”(layer-wise pre-training)来克服,而逐层初始化则可以通过无监督学习来实现。
深度学习允许那些由多处理层组成的计算模型去学习具有多个等级抽象数据的表达,该方法在许多领域得到了广泛的应用,例如视觉对象识别,语音识别,对象检测等,同时对医药学的新发现和基因组学的新进展也起到了促进作用。深度学习利用反向传播算法发现大数据的内在复杂的结构,然后BP算法会指导机器如何在每一层利用从上一层获得的表达来改变其内部的参数。
深度学习的本质是利用海量的训练数据(可为无标签数据),通过构建多隐层的模型,去学习更加有用的特征数据,从而提高数据分类效果,提升预测结果的准确性。“深度学习模型”是手段,“特征学习”是目的。
1.2 深度学习的常用模型
深度学习常用模型主要有:自动编码器(AutoEncoder)、稀疏自动编码器(Sparse AutoEncoder)、降噪自动编码器(Denoising AutoEncoder)、限制玻尔兹曼机(Restricted Boltzmann Machine,RBM)。
⑴ 自动编码器[3](AutoEncoder)
深度学习中最简单的一种是利用ANN(即人工神经网络)的层级结构特点设计的一种网络。对于一个给定的网络,我们假设其输入与输出是一致的,接下来我们训练网络并调整网络中的参数,得到每一层的权值。由此我们就得到了输入数据Input的相异表现形式,这些表示就是特征。
AutoEncoder就是一种可以尽可能复现输入数据的一种神经网络。自动编码器基于这样一个事实:原始的输入Input经过加权即(w,b)、还有映射(Sigmoid函数)之后得到一个数据y,然后对y进行加权反向映射得到数据z。通过不断的迭代训练,使得误差最小(即尽可能使得z接近或者与input相同)。在这个过程中并没有使用标签数据来计算数据之间的误差从而去更新参数,所以是无监督学习网络,同时利用了类似神经网络的双隐层方式来提取样本。
自动编码器一般由两部分组成:解码器与编码器。它们可以被定义为这样的两种转换:
在自动编码器当中,如果隐含层的结点个数过少,隐含结点就需要对原始输入数据进行数据压缩,但当输入为随机序列的时候,对输入提取特征数据将会变得困难。虽然在隐含层结点数目很大的情况下,仍可以用自动编码算法,但是需要加入稀疏限制,加入限制之后的自动编码器就是稀疏自动编码器。稀疏自动编码器编码解码过程如图2所示。
⑶ 降噪自动编码器(Denoising AutoEncoder)
2008年,Vincent在他的论文“Extracting and Composing Robust Features”中突出了AutoEncoder的改良的降噪自动编码器(DA,Denoising AutoEncoder)。DA采取部分损坏的输入而训练来恢复原来的不失真的输入,这就迫使编码器去学习输入信号更加robustly的良好表达,一个很好的表达对于恢复相应的清晰输入是很有效果的,这也是DA的泛化能力比一般编码器强的原因。其训练方法如图3所示。
⑷ 限制玻尔兹曼机[4](Restricted Boltzmann Machine,RBM)
限制玻尔兹曼机(RMB)是一种深度学习模型。在1986年它由Hinton和Sejnowski提出,是一种生成式随机神经网络(generative stochastic neural network),整个网络是一个二部图,同层次结点之间没有链接,只有可见单元与隐含单元之间才会存在边。可见单元即输入数据层,隐含单元即隐含层,它们都是二元变量。与此同时若全概率分布满足玻尔兹曼分布的话,我们就把这个模型称为限制玻尔兹曼机(Restricted Boltzmann Machine,RBM)。限制玻尔兹曼机RBM由三个可视层结点和四个隐含结点组成,可以用于降维,学习特征以及深度置信网等。通过隐含层层数增加则可以得到深度玻尔兹曼机(Deep Boltzmannn Machine)。
1.3 非线性激活函数
激活函数是用来为神经网络加入非线性因素的,因为线性模型的表达分类能力不够。某些数据是线性可分的,其含义就是,可以用一条直线将数据分开。这时候需要通过一定的机器学习的方法,比如为感知机算法(perceptron learning algorithm)找到一个合适的线性方程。但是,有些数据是线性不可分的,它们没有办法画一条直线将数据区分。这时候有两个办法,一个办法是做线性变换(linear transformation),比如x,y变成x2,y2,这样可以画出圆形;另一个办法是加入非线性因素,即激活函数。总的来说,引入激活函数就是用来解决线性不可分的问题。本节主要讲解三个激活函数,sigmoid、tanh以及ReLu。
2001年,Dayan、Abott从生物学角度提出了模拟脑神经元接收信号更清晰的激活模型,这个模型函数就是Relu。传统激活函数在增加或者减少的时候梯度会消失,而Relu并不会,这对于神经网络的训练来说很关键。从数学上来看,非线性的sigmoid函数对两侧的信号增益较小,对中央区域增益较大。从神经学上来说,两侧区域类似于抑制区域,中央区域类似于兴奋区域,所以可以将重点推向中央区,非重点特征放入两侧区。而对于Relu来说,其主要有三点变化,第一是单侧抑制;第二是相对宽广的兴奋边界;第三是稀疏激活性。其公式为:
同年,Charles Dugas等人也提出了Softplus函数,该函数类似于强制非负校正函数max(0,x)的平滑版本。其公式为:
Relu整流线性单元使用深度神经网络主要应用在计算机视觉与语音识别等领域中,取得了很好的效果。
2 深度学习开发框架
目前人气比较高的几个深度学习的开源框架有三个,分别是Caffe框架,Theano框架和Torch框架。
⑴ Caffe
Caffe源自加州伯克利分校的Caffe被广泛应用,包括Pinterest这样的Web大户。与TensorFlow一样,Caffe也是由C++开发,Caffe也是Google今年早些时候发布的DeepDream项目(可以识别“喵星人”的人工智能神经网络)的基础。
⑵ Theano
2008年Theano诞生于蒙特利尔理工学院,Theano派生出了大量深度学习Python软件包,最著名的包括Blocks和Keras,近几年还有Lasagne。
相对于Keras的傻瓜式操作,Lasagne有更复杂的参数设置系统,若继续深入学习神经网络结构及其流程,Lasagne是更好的选择。
⑶ Torch
Torch诞生已经有十年之久,但是真正起势得益于14年Facebook开源了大量Torch的深度学习模块和扩展。Torch另外一个特殊之处是采用了不怎么流行的编程语言Lua(该语言曾被用来开发视频游戏)。
3 结束语
深度学习的概念自06年被提出以来不断发展,受益于大数据时代的到来,深度学习受到了越来越多的重视,其在图像、语音、语文识别领域,以及人工智能领域都有不小的突破。目前深度学习领域还有很多有待解决和发现的问题,在深度学习的拓展方面,如何充分利用深度学习的方式来增强传统算法的性能是目前深度学习研究的重点。
参考文献(References):
[1] D.E.Rumelhart, G.E.Hinton, and R.J.Williams.Learning
internal representations by error propagation. Nature,1986.323(99):533-536
[2] HINTON G E,OSINDERO S,TEH Y W.A fast learning
algorithm for deep belief nets[J].Neural Computation,2006.18(7):1527-1554
[3] Bengio, Yoshua (2009)."Learning Deep Archi-tectures
for AI".Foundations and Trends in Machine Learning2(1):1-127
[4] Larochelle, Hugo; Salakhutdinov, Ruslan (2010). "Efficient
Learning of Deep Boltzmann Machines":693-700
[5] Han, Jun; Morag, Claudio (1995). "The influence of the
sigmoid function parameters on the speed of backpropagation learning". In Mira, José; Sandoval, Francisco. From Natural to Artificial Neural Computation. pp:195-201
[6] Robert E. Bradley, Lawrence A. D'Antonio, Charles
Edward Sandifer.Euler at 300: an appreciation. Mathematical Association of America,2007:100
[7] Xavier Glorot, Antoine Bordes and Yoshua Bengio(2011).
Deep sparse rectifier neural networks. AISTATS.