1、深度学习简介主要内容现状神经网络深度学习 介绍 常见模型Stacked Auto-EncoderConvolutional Neural NetworkDeep Belief Network杂项现状2006年7月,机器学习界的著名学者Geoffery Hinton 和他的学生Ruslan Salakhutdinov在Science上发表了一篇关于深层神经网络训练算法的文章,引起了深度学习在学术界和工业界的关注;2012年5月到10月,为了回应对于深度学习方法的质疑,也为了测试深度学习算法的真实效果,Geoffery Hinton和他的另外一个学生Alex Krizhevsky参加了ImageN
2、et大规模视觉识别竞赛,以大幅领先优势取得第一名;2012年6月,机器学习和人工智能的知名学者Andrew Ng等人与谷歌经过多年的合作,在语音识别与图像目标识别方面取得了突破性的进展;2012年11月,在二十一世纪计算大会上,微软首席研究官Rick Rashid展示了一套基于深层神经网络模型的语音识别系统,能实时流畅翻译,切显著地降低了错误率,这在语音识别领域是一个突破;2013年1月,百度创始人兼CEO李彦宏在年会上宣布将成立百度研究院;2013年7月,谷歌收购了深度学习初创公司DNNResearch Inc.,公司员工GeofferyHinton和他的两个学生Alex Krizhevsk
3、y,Ilya Sutskever 加入谷歌;现状2013年10月,雅虎收购图像识别公司LookFlow,正式加入深度学习研究队伍;2015到2016年,苹果收购人工智能研究公司VocalIQ,Percepti,Emotient,Turi等,强化Siri和摄像等应用上的优势;2015年11月,谷歌发布人工智能系统TensorFlow并宣布开放源代码;2016年5月,亚马逊发布了一个开源的使用GPU训练和部署深层神经网络开源工具DSSTNE;2016年8月,英特尔开发者大会上,英特尔宣布将于2017年推出专门为人工智能和深度学习而设计的最新一代CPUIntel Xeon Phi处理器,代号Knig
4、hts Mill,英特尔宣称其运算能力比对手NVIDIA的Kepler 系列GPU产品快两倍以上。2016年10月,NVIDIA 发布了新版本的通用并行计算架构库:统一计算设备架构(Compute Unified Device Architecture,CUDA)8.0,以及深度学习专用GPU 加速库:cuDNN 5.0;2016年11月,在2016全球超级计算机大会(SC16)上,AMD 宣布推出新版Radeon开放计算平台(Radeon Open Compute Platform,ROCm),以及用于GPU 加速器的免费开源库MIOpen。主要内容现状神经网络深度学习 介绍 常见模型Sta
5、cked Auto-EncoderConvolutional Neural NetworkDeep Belief Network杂项神经网络在机器学习与认知识别领域中,人工神经网络是一类模拟生物神经网络的模型,基于大量训练数据,用来预测(决策问题)或估计目标函数模型。人工神经网络一般呈现为相互关联的“神经元”之间相互交换信息的系统。在神经元的连接中包含有可以根据训练样本调整的权重,使得神经网络可以自适应输入样本,并且拥有学习能力。作为机器学习方法的一种,神经网络算法可以用来处理一系列传统机器方法无法处理,或者处理难度较大的问题,包括计算机视觉、语音识别等任务。基本结构神经网络的基本单元是神经元
6、。通过对所有输入进行加权求和,之后进行非线性映射得到该神经元的输出值。神经网络按照拓扑结构,大体分为层状与网状两大类。常用激活函数:ReLU函数 S型函数 双曲正切函数xexf11)(神经元模型神经网络输出:激活函数:神经网络BPBP网络前馈网络的逐层计算:输入值从输入层神经元通过加权连接逐层前向传播,经过隐含层,最后到达输出层得到输出。在信号的前向传播过程中,网络的权值是固定不变的,每一层神经元的状态只影响下一层神经元的状态。反向传播算法:网络的实际输出与期望输出之间的差值即为误差信号。误差信号由输出端开始逐层反向传播。在误差信号反向传播的过程中,网络的权值根据误差的梯度进行调节,通过权值的
7、不断修正使网络的实际输出更加接近期望输出。前馈网络结构说明代价函数 在遇到回归问题时,指定代价函数 以使目标变量的真实值和预测值的距离最小;代价函数描述了网络输出与真实值之间的误差;网络模型的训练过程即:通过随机梯度下降的方法最小化代价函数以提高网络精度;可以在代价函数中引入其他约束以满足设定要求。反向传播算法反向传播算法可表示为以下几个步骤:1.进行前馈传导计算,利用前向传导公式,得到 直到输出层 的激活值。2.对输出层(第 层),计算:3.对于 的各层,计算:4.计算最终需要的偏导数值:5.根据残差对参数W和b做出更新:反向传播与梯度下降BP算法流程S型函数导数主要问题主要问题 训练过程易
8、陷入局部极小值,从而得不到全局最优解;计算量大,训练次数多,使得学习效率低,收敛速度慢;对于隐含层个数和隐含层神经元节点的个数选择,至今还没有一个具体的定论,缺乏理论指导;训练时,学习新样本有遗忘旧样本的趋势常用改进方法 添加动量项,Dropout等规则化算法等;采用改进的梯度下降法,使用硬件辅助计算;RNN,LSTM等改进模型和神经元。主要内容现状神经网络深度学习 介绍 常见模型Stacked Auto-EncoderConvolutional Neural NetworkDeep Belief Network杂项深度学习深度学习的基础架构来自于前馈神经网络和BP算法,构造多层网络,通过最小
9、化代价函数的方法来提高分类精度。对于传统的ANN网络而言,由于多层网络训练的困难,实际使用的多数是只含有一层隐层节点的浅层模型。深度学习更侧重于如何通过增加网络的深度,来减小每层需要拟合的特征个数,来提取出数据(尤其是语音与图像数据)的高层特征信息,从而达到更好的测试性能与分类精度。深度学习对输入数据逐级提取从底层到高层的特征,从而能更好地建立从底层信号到高层语义的复杂映射关系。传统的机器学习方法,在训练数据量到达一定规模后,算法的学习能力就饱和了,而深度学习目前还看不到瓶颈。深度学习浅层模型深层模型隐含层数1-25层以上表达能力有限更强特征提取方式人工设计或自动学习自动学习代价函数存在凸代价
10、函数,可以收敛到全局最优解非凸代价函数,存在大量局部最优点。(实际情况是容易收敛到非常好的点)训练难度低高理论基础成熟不完善,需要根据实验结果调整模型先验知识和工程经验非常依赖较少依赖训练样本数量多非常多使用场景数据包含简单特征数据包含复杂、多层、抽象特征深度学习深度学习的实质,是通过构建包含很多隐含层的神经网络模型,以更少的单层参数与更深的网络结构,通过海量训练数据,来学习特征的多层抽象表示,从而最终提升分类或预测的准确性。所以,“深度模型”是手段,“特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于:)强调了模型结构的深度,通常有5层以上、甚至100多层的隐含层;)明确突出了特征学
11、习的重要性,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,使得分类或预测更加容易。深层带来的好处为什么采用层次网络预训练与梯度消失现象神经网络层数加深以后,容易出现梯度消失现象;由于前层的梯度是由后层的梯度项相乘得到,梯度会逐层衰减,从而导致后层的网络学习率超过前层,BP算法收敛缓慢。当神经网络有很多层时,就会面临不稳定的情况。对网络的预训练可以较好地避免这种现象。这是因为:实验表明,在非凸优化问题上初始点的选择十分重要;无监督学习增加了深层结构的鲁棒性;对神经网络进行不同的预训练能够使网络学习到数据的不同的高质量特征;单纯增加一个网络的深度,如果不进行预训练处理,会提高陷于
12、局部极小点的可能性。主要内容现状神经网络深度学习 介绍 常见模型Stacked Auto-EncoderConvolutional Neural NetworkDeep Belief Network杂项自编码器结构单层自动编码器网络(AutoEncoder)实质上是一个三层的反向传播神经网络。它逐层采用无监督学习的方式,不使用标签调整权值,将输入映射到隐含层上,再经过反变换映射到输出上,实现输入输出的近似等价。自动编码器的主要思想是利用无监督无监督方式最小化重建误差,学习到的权重提供了一个网络初始化的较好的初始点。无监督学习的主要目的是从无标签的数据中提取有用的特征,以减少输入信息,保留数据中
13、关键的有效信息。网络通过没有标签的数据学习到潜在的分布信息,有利于它区分有标签的信息。然而,在网络中,权重仍然需要进行微调。因此,需要在神经网络的顶部增加一个线性回归,再对有标签的数据进行处理。网络的微调会采用梯度下降法,对所有层同时进行调整。自编码器的建立建立AutoEncoder的方法是:对于m个数据的输入,有:Code编码:使用非线性激活函数,将维输入数据映射到维隐含层(隐含节点表示特征)其中W是一个的权重矩阵,b是一个d维的偏移向量 Decode解码:通过反向映射,对映射后的数据进行重建SAE网络每一次训练输入都会得到映射后的 与解码后的 。通过对代价函数的最优化可以得到训练集上的权重
14、与偏置。ihiy 节点的稀疏性限制22111(|)log(1)log1ssjjjjjKL为了增强网络的稳定性,避免过拟合的发生,我们需要让少部分神经元输出值大于0,其他的大部分为0(或近似为0),这就是所谓的稀疏性。在人脑中有大量的神经元,但是大多数自然图像通过视觉进入人脑时,只会刺激到少部分神经元,大部分神经元都是出于抑制状态的。而且,大多数自然图像,都可以被表示为少量基本元素(面或者线)的叠加。稀疏性处理能够更加有助于我们用少量的神经元提取出自然图像更加本质的特征。从数学的角度来说,稀疏编码是一种多维数据描述方法,数据经稀疏编码后仅有少数分量同时处于明显激活状态。在实际应用中,稀疏编码有如
15、下几个优点:稀疏编码方案存储能力大,具有联想记忆能力,并且计算简便;使自然信号的结构更加清晰;事实上,这一简单的自编码神经网络通常可以学习出一个跟主成分分析(PCA)结果非常相似的输入数据的低维表示。21(,)(W,b)(|)ssparsejjJW bJKL图像实验原始图像隐含层特征可以看到,AE在图像处理的特征提取中可以作为边缘检测器学习到图像边缘信息Stacked AutoEncoderStacked AutoEncoder一个AE模型有1个可视层、1个隐含层1个重建层。通过自下而上的映射,实现编码与反编码重建:()yf x激活函数,yzW b bminimizeCOST FUNCTION
16、update梯度下降参数设置:设置好激活函数、学习率、迭代步数、训练层数等一系列基本参数;构建SAE网络:分层建立输入-输出-输入的AE网络,并对权值与偏置初始化;SAE预训练:对网络只传入训练数据,在有限迭代步数下进行无监督的学习,以学得数据特征,得到权值与偏置的初始值;参数微调:加入输出层,将SAE网络转化成输入-输出的NN网络并传入训练标签,即放弃输出到输入的反向映射,进行反向传播学习,减小训练误差;测试:对测试数据进行神经网络测试,得到结果。SAESAE构建方法ExampleExampleDefined By User空间去冗余压缩实验总结1.训练时间与迭代步数、层数、节点数、数据量四
17、者呈线性关系;2.随着迭代步数的增加,分类精度迅速提高,然而分类有其上限,过多的迭代步数无法提高分类精度;不同的数据所适用的网络层数不一致,并不是层数越高,效果越理想;对节点的实验表明,神经网络更适用于数据的压缩,单层过高的节点数会降低分类效果;同时,数据量也比较明显地影响着分类精度;3.实验表明,向SAE网络中引入降维的数据并不能很好的提高分类效果;4.对比其他分类算法SVM与KNN,实验表明,SAE网络更适合于大量数据的学习,而SVM与KNN浅层网络训练与测试所用时间更短,而且可以在较少的数据量下获得比较良好的分类效果。CNNCNN基本知识卷积神经网络是人工神经网络的一种,已成为当前图像识
18、别领域的研究热点。卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、旋转或者其他形式的变形具有一定的不变性。卷积网络的核心思想是将:局部感知、权值共享以及下采样这三种结构结合起来,以达到图像降维的特征学习与分类。局部连接卷积神经网络上下层之间采用局部连接的方式构建网络,每个隐含层的节点只与上一层的一部分连续输入点相连接,这样模拟了大脑皮层中,不同位置的视觉细胞只对局部区域有响应这一现象。CNN中局部连接以卷积的方法来实现。对于自然图像来说,从图像中某个部位提取到的特征也适用于其它部位,因此这种卷积和局部连接的特征提取方式可以提高特征的位置不变性。权值共享在卷积神
19、经网络中,卷积层的每一个卷积核通过滑动窗口作用于整个输入图像,对输入图像进行卷积,卷积结果构成了输入图像的特征图,提取出图像的局部特征。每一个卷积滤波器共享相同的可学习参数,包括相同的卷积核权重矩阵和偏置项。例如对于32x32的图像数据,全连接神经网络需要32*32=1024个神经元连接。采用卷积网权值共享方式,32个3x3的卷积核就可以了,一共32x3x3=288个可学习参数。下采样卷积核与输入图像进行卷积之后生成特征图,之后紧跟着一个进行二次筛选的下采样层(或称为池化层)。这种特有的两次特征提取结构使得网络对输入样本有较高的畸变容忍能力。在通过卷积获得了特征(features)之后,下一步
20、我们希望利用这些特征去做分类。理论上讲,人们可以用所有提取得到的特征去训练分类器,但这样做计算量太大。例如:对于一个96X96像素的图像,假设我们已经学习得到了400个定义在8X8输入上的特征,每一个特征和图像卷积都会得到一个(96 8+1)*(96 8+1)=7921 维的卷积特征,由于有 400 个特征图,所以每个样例(example)都会得到一个 7921*400=3,168,400 维的特征向量。学习一个拥有超过3百万特征输入的分类器十分不便,并且容易出现过拟合(over-fitting)。下采样为了降低特征维度,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像
21、一个区域上的某个特定特征的平均值(或最大值)。这些概要统计特征不仅具有低得多的维度(相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化(pooling),包括平均池化或者最大池等多种方法。LeNet-5LeNet-5深度置信网络深度置信网络(Deep Belief Net,DBN)是拥有深层架构的前馈神经网络,其中包含多个隐含层,而使用DBN的障碍在于如何训练这样的深层网络。通常情况下,由于网络权值的随机初始化,基于梯度的优化容易陷入局部最小值。Hinton等提出了一种新的贪婪逐层非监督算法来初始化基于受限玻尔兹曼机(Restricted Boltzman
22、n Machine,RBM)的DBN网络。这个算法提供了网络权值的初始化方法,随后可以使用基于梯度的算法如梯度下降法来微调网络权值。受限玻尔兹曼机RBM只有两层神经元,有m个可视节点和n个隐含节点,其中每个可视节点只和n个隐含节点相关,和其他可视节点是独立的。是即可视节点的状态只与n个隐含节点相关,对于每个隐含节点也是,只与m个可视节点相关,这个特点使得RBM的训练变得容易。注意这两层间的对称 双向连接。RBM网络有几个参数,一个是可视层与隐含层之间的权重矩阵,一个是可视节点的偏移量b,一个是隐含节点的偏移量c,这几个参数决定了RBM网络将一个m维的样本编码成一个什么样的n维的样本。受限玻尔兹
23、曼机RBMRBM介绍RBM区别于BM的一点是,前者要求层内神经元之间没有连接,而后者允许层内连接定义能量函数联合概率分布性质:给定可见层时,隐含层神经元激活条件独立;反之亦然。给定训练样本训练一个RBM意味着调整参数以拟合给定训练样本。数学推导可知,该问题等价于求下述函数最大值RBMRBM训练一般地,链接权重Wij可初始化为来自正态分布N(0,0.01)的随机数,隐单元的偏置cj初始化为0;对于第i个可见单元,偏置bj初始化为logpi/(1-pi)。pi表示训练样本中第i个特征处于激活状态所占的比率 学习率epsilon至关重要,大则收敛快,但是算法可能不稳定。小则慢。为克服这一矛盾引入动量
24、,使本次参数值修改的方向不完全由当前样本似然函数梯度方向决定,而是上一次参数值修改方向与本次梯度方向的结合可以避免过早的收敛到局部最优点k为动量项学习率 开始时k=0.5,重构误差处于平稳增加状态时,k=0.9RBMRBM评估主要内容现状神经网络深度学习 介绍 常见模型Stacked Auto-EncoderConvolutional Neural NetworkDeep Belief Network杂项对深度学习的评价理论上无法证明它为何有效,但是在实际问题上它的确有效。没有形成系统的理论。各个DL模型为什么好用?原理本质是什么?各个模型都适用于什么场合?针对特定数据,特定问题,如何组合搭建
25、模型,各个参数怎么选?如何根据特定模型,特定数据来训练模型?优点:1.在计算机视觉和语音识别方面确实结果超过传统方法一大截;2.具有较好的transfer learning性质,一个模型训练好了拿到另一个问题上做一些简单的refinement就可以用了;3.只要层数够,就可以学到足够好的特征。缺点:1.训练耗时,模型正确性验证复杂且麻烦;2.某些深度网络需要GPU支持;3.某些模型难以诠释,学得的特征对人而言并不直观。应用图像识别,文本模型,时序相关数据序列语音识别+机器翻译Multimodal Learning 广告系统 把深度学习思想应用到其他的模型上展望当前深度学习领域的学术研究可以包含
26、四部分:优化,泛化,表达以及应用。除了应用之外每个部分又可以分成实践和理论两个方面;包括谷歌、百度等都在研究,并产生了很多理论研究与工程应用;深度学习引领了机器学习的方向,相关的机器视觉方向,从理论到产品,导致了这个行业不断的火热。参考资料Stanford Tutorial http:/ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial http:/openclassroom.stanford.edu/MainFolder/CoursePage.php?course=MachineLearninghttp:/ Learning,Practical Tricks and Guides,Sparse Coding,Foundation Theory and Motivation,Unsupervised Feature Learning,Autoencoders等多个专题。参考资料http:/
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。