您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 深度学习及其优化方法概述
深度学习(DeepLearning)及其优化方法1/25报告人:胡海根E-mail:hghu@zjut.edu.cn浙江工业大学计算机学院Outline深度学习基本介绍LossFunction一般形式及数学概念深度学习梯度优化方法深度学习优化方法2/25深度学习的概念3/25什么是deeplearning?深度学习:一种基于无监督特征学习和特征层次结构的学习方法。本质:通过构建多隐层的模型和海量训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。含多隐层的多层感知器就是一种深度学习结构。DL训练过程4/25深度学习的基本思想:对于DeepLearning,需要自动地学习特征,假设有一堆输入I,输出是O,设计一个系统S(有n层),形象地表示为:I=S1=S2=.....=Sn=O,通过调整系统中参数,使得它的输出仍然是输入I,那么就可以自动地获取得到输入I的一系列层次特征,即S1,...,Sn。用自下而上的无监督学习1)逐层构建单层神经元。2)每层采用wake-sleep算法进行调优。每次仅调整一层,逐层调整。5/25第二步:自顶向下的监督学习这一步是在第一步学习获得各层参数进的基础上,在最顶的编码层添加一个分类器(如,SVM等),而后通过带标签数据的监督学习,利用梯度下降法去微调整个网络参数。DL训练过程6/25深度学习的具体模型及方法:1、自动编码器(AutoEncoder)2、稀疏自动编码器(SparseAutoEncoder)3、限制波尔兹曼机(RestrictedBoltzmannMachine)4、深信度网络(DeepBeliefNetworks)5、卷积神经网络(ConvolutionalNeuralNetworks)DL训练过程自动编码器7/251、自动编码器(AutoEncoder)通过调整encoder和decoder的参数,使得重构误差最小,就得到了输入input信号的第一个表示了,也就是编码code了。因为是无标签数据,所以误差的来源就是直接重构后与原输入相比得到。稀疏自动编码器8/25如上图,其实就是限制每次得到的表达code尽量稀疏。因为稀疏的表达往往比其他的表达要有效。2、稀疏自动编码器(SparseAutoEncoder)AutoEncoder的基础上加上L1的Regularity限制(L1主要是约束每一层中的节点中大部分都要为0,只有少数不为0),就可以得到SparseAutoEncoder法。RBM9/253、限制波尔兹曼机(RBM)定义:假设有一个二部图,同层节点之间没有链接,一层是可视层,即输入数据层(v),一层是隐藏层(h),如果假设所有的节点都是随机二值(0,1)变量节点,同时假设全概率分布p(v,h)满足Boltzmann分布,称这个模型是RBM。RBM10/25给定隐层h的基础上,可视层的概率确定:(可视层节点之间是条件独立的)给定可视层v的基础上,隐层的概率确定:给定一个满足独立同分布的样本集:D={v(1),v(2),…,v(N)},我们需要学习参数θ={W,a,b}。最大似然估计:对最大对数似然函数求导,就可以得到L最大时对应的参数W了。DBN11/25DBNs由多个限制玻尔兹曼机(RBM)层组成,一个典型的神经网络类型如下图所示。CNN12/255、卷积神经网络(ConvolutionalNeuralNetworks)卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。CNNs是第一个真正成功训练多层网络结构的学习算法。核心思想:局部感受野、权值共享以及时间或空间子采样这三种结构思想结合起来获得某种程度的位移、尺度、形变不变性。LossFunction一般形式13/25LossFunction一般形式14/25回归函数及目标函数以均方误差作为目标函数(损失函数),目的是使其值最小化,用于优化上式。数学概念15/251、梯度(一阶导数)某一点的梯度方向是在该点坡度最陡的方向,而梯度的大小告诉我们坡度到底有多陡;对于一个含有n个变量的标量函数,即函数输入一个n维的向量,输出一个数值,梯度可以定义为:数学概念16/252、Hesse矩阵(二阶导数)Hesse矩阵常被应用于牛顿法解决的大规模优化问题,主要形式如下:当f(x)是下列形式:其中x为列向量,A是n阶对称矩阵,b是n维列向量,c是常数。f(x)梯度是Ax+b,Hesse矩阵等于A。数学概念17/253、Jacobian矩阵Jacobian矩阵实际上是向量值函数的梯度矩阵,假设F:Rn→Rm是一个从n维欧氏空间转换到m维欧氏空间的函数。这个函数由m个实函数组成:这些函数的偏导数(如果存在)可以组成一个m行n列的矩阵(mbyn),这就是所谓的雅可比矩阵:优化方法18/251、GradientDescentGradientdescent(steepestdescent),也叫批量梯度下降法BatchGradientDescent,BSD,利用一阶的梯度信息找到函数局部最优解的一种方法,主要迭代公式如下:其中,是第k次迭代我们选择移动的方向,是第k次迭代用linesearch方法选择移动的距离,每次移动的距离系数可以相同,也可以不同,有时候我们也叫学习率(learningrate)。kkkkpxx1kpk优化方法19/251、GradientDescent该方法利用目标函数的局部性质,得到局部最优解,具有一定的“盲目性”,如果目标函数是一个凸优化问题,那么局部最优解就是全局最优解;每一次迭代的移动方向都与出发点的等高线垂直,此外,锯齿现象(zig-zagging)将会导致收敛速度变慢:优化方法20/252、Newton’smethod牛顿法则是利用局部的一阶和二阶偏导信息,推测整个目标函数的形状;进而可以求得出近似函数的全局最小值,然后将当前的最小值设定近似函数的最小值;相比最速下降法,牛顿法带有一定对全局的预测性,收敛性质也更优良。优化方法21/252、Newton’smethod推导过程如下:利用Taylor级数求得原目标函数的二阶近似:把x看做自变量,所有带有xk的项看做常量,令一阶导数为0,即可求近似函数的最小值:即:将当前的最小值设定近似函数的最小值(或者乘以步长)。优化方法22/252、Newton’smethod牛顿法主要存在的问题是:Hesse矩阵不可逆时无法计算;矩阵的逆计算复杂为n的立方,当问题规模比较大时,计算量很大;解决的办法是采用拟牛顿法如BFGS,L-BFGS,DFP,Broyden’sAlgorithm进行近似;如果初始值离局部极小值太远,Taylor展开并不能对原函数进行良好的近似。优化方法23/252、Newton’smethod在牛顿法的迭代中,需要计算海赛矩阵的逆矩阵H-1这一计算比较复杂,考虑用一个n阶矩阵来近似代替H-1,这就是拟牛顿法的基本思路。DFP(Davidon-Fletcher-Powell)使用一个n阶矩阵Gk+1来近似H-1BFGS(Broyden-Fletcher-Goldfarb-Shanno)使用一个n阶矩阵Bk来逼近HL-BFGS(Limited-BFGS):由于上述两种拟牛顿法都要保存一个n阶矩阵,对于内存消耗非常大,因此在此基础上提出了一种节约内存的方法L-BFGS。优化方法24/253、ConjugateGradients共轭梯度法是介于最速下降法与牛顿法之间的一个方法;它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点;避免牛顿法需要存储和计算Hesse矩阵并求逆的缺点.共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。与最速梯度下降的不同,共轭梯度的优点主要体现在选择搜索方向上:优化方法25/253、ConjugateGradients共轭方向:如上图,d(1)方向与二次函数的等值线相切,d(1)的共轭方向d(2)则指向椭圆的中心。对于二维二次函数,若在两个共轭方向上进行一维搜索,经过两次迭代必然达到最小点。优化方法26/253、ConjugateGradients确定了移动方向(GD:垂直于等值线,CG:共轭方向),并在该方向上搜索极小值点(恰好与该处的等值线相切),然后移动到最小值点,重复以上过程,过程如下图:优化方法27/254、随机梯度下降算法(SGD)优化方法28/254、随机梯度下降算法(SGD)SGD是最速梯度下降法的变种,每次只使用一个样本,迭代一次计算量为n2,当m很大的时候,随机梯度下降迭代一次的速度要远高于梯度下降:梯度下降需要把m个样本全部带入计算,迭代一次计算量为m*n2优化方法29/255、Mini-batchGradientDescent介于BSD和SGD之间的一种优化算法,每次选取一定量的训练样本进行迭代;速度比BSD快,比SGD慢;精度比BSD低,比SGD高。选择n个训练样本(nm,m为总训练集样本数)在这n个样本中进行n次迭代,每次使用1个样本对n次迭代得出的n个gradient进行加权平均再并求和,作为这一次mini-batch下降梯度;不断在训练集中重复以上步骤,直到收敛。优化方法30/255、Mini-batchGradientDescent其思想是:SGD就是每一次迭代计算mini-batch的梯度,然后对参数进行更新;其中,是学习率,是梯度,SGD完全依赖于当前batch的梯度,可理解为允许当前batch的梯度多大程度影响参数更新。tg优化方法31/255、Mini-batchGradientDescent面临的挑战:learningrate选取比较困难对于稀疏数据或者特征,有时我们可能想更新快一些;对于常出现的特征更新慢一些,这时候SGD就不太能满足要求了;SGD容易收敛到局部最优,并且在某些情况下可能被困在鞍点优化方法-Momentum32/25momentum是模拟物理里动量的概念,积累之前的动量来替代真正的梯度:其中,是动量因子。优化方法-Momentum33/25SGDwithoutmomentumSGDwithmomentum优化方法-Momentum34/25特点:下降初期时,使用上一次参数更新,下降方向一致,乘上较大的能够进行很好的加速;下降中后期时,在局部最小值来回震荡的时候,,使得更新幅度增大,跳出陷阱;在梯度改变方向的时候,能够减少更新;总之,momentum项能够在相关方向加速SGD,抑制振荡,从而加快收敛。优化方法-Nesterov35/25nesterov项在梯度更新时做一个校正,避免前进太快,同时提高灵敏度:并没有直接改变当前梯度,所以Nesterov的改进就是让之前的动量直接影响当前的梯度。即:因此,加上nesterov项后,梯度在大的跳跃后,进行计算对当前梯度进行校正。优化方法-Nesterov36/25momentum首先计算一个梯度(短的蓝色向量),然后在加速更新梯度的方向进行一个大的跳跃(长的蓝色向量),nesterov项首先在之前加速的梯度方向进行一个大的跳跃(棕色向量),计算梯度然后进行校正(绿色梯向量):momentum项和nesterov项都是为了使梯度更新更加灵活,对不同情况有针对性。优化方法-Adagrad37/25Adagrad其实是对学习率进行了一个约束,即:对从1到进行一个递推形成一个约束项regularizer优化方法-Adagrad38/25特点:前期较小时候,regularizer较大,能够放大梯度;后期较大的时候,regularizer较小,能够约束梯度;适合处理稀疏梯度。缺点:仍依赖于人工设置一个全局学习率;设置过大的话,会使regularizer过于敏感,对梯度的调节太大;中后期,分母上梯度平方的累加将会越来越大,使,训
本文标题:深度学习及其优化方法概述
链接地址:https://www.777doc.com/doc-6418718 .html