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