深度学习:深度模型中的优化

机器学习中的优化

 

1、经验风险最小化

机器学习算法的目标是降低目标函数的期望泛化误差,这个数据被称为风险

将机器学习问题转化为一个优化问题的最简单方法是最小化训练集上的期望损失。这意味着用训练集上的经验分布替代真实分布。现在,我们将最小化经验风险:

E_{X,y\sim \widehat{p}_{data}}[L(f(x;\theta),y)]=\frac{1}{m}\sum_{i=1}^{m}L(f(x^{(i)};\theta),y^{(i)})

m表示训练样本的数目

基于最小化这种平均训练误差的训练过程被称为经验风险最小化(容易导致过拟合)

 

2、代理损失函数和提前终止

由于精确地最小化0-1损失函数通常是不可解的,所以我们通常会优化代理损失函数。

例如,正确类别的负对数似然通常被用作0-1损失的替代

提前终止:训练算法通常不会停止在局部极小点。提前终止通常使用真实潜在损失函数

 

3、批量算法与小批量算法

首先,小批量算法能够快速的计算出梯度估计值,而不是缓慢地计算准确值

另外,训练集有可能会冗余,在最坏的情况下,训练集中所有的m个样本都是彼此相同的拷贝。基于采样的梯度估计可以使用单个样本计算出正确的梯度,而比原来的做法少花了m倍时间。

使用整个训练集的优化算法被称为批量或确定性梯度算法

每次只是用单个样本的优化算法有时被称为随机或者在线算法

大多数深度学习的算法介于两者之间,这些会被称为小批量或小批量随机方法。

小批量大小的决定因素:

更大的批量会计算更精确的梯度估计,但是回报是小于线性的

极小批量通常难以充分利用多核架构,不会减少计算时间

内存消耗和批量大小成正比,这是批量大小的限制因素

使用GPU时,使用2的幂数会获得更少的运行时间

小批量在学习过程中可能加入了噪声,他们会有一些正则化效果

 

神经网络优化中的挑战

 

1、病态

Hessian矩阵的病态时优化凸函数时最突出的挑战。矩阵病态主要是因为矩阵向量之间相关性太大,在二维上说就是矩阵向量之间的夹角太小,导致这两个相似的矩阵向量稍有改变,计算结果就会有很大的不同。

 

2、局部最小值

凸优化问题一个突出特点就是可以简化为寻找一个局部极小值点的问题。

但是,几乎所有的深度模型基本上都会有非常多的局部极小值。

由于模型可辨识性问题,神经网络和任意具有多个等效参数化潜变量的模型都会具有多个局部极小值。如果一个足够大的训练集可以唯一确定一组模型参数,那么该模型时可辨认的。带有潜变量的莫听通常是不可辨认的,因为通过相互交换潜变量我们能得到等价的模型。这种不可辨认性被称为权重空间对称性

如果局部极小值点相比全局最小点拥有很大的代价,局部极小值会带来很大的隐患

 

3、高原、鞍点和其他平坦区域

在鞍点,Hessian矩阵同时具有正负特征值。在更高维的空间中,局部极小值很罕见,而鞍点很常见。

鞍点对于牛顿法而言显然是一个问题

 

4、悬崖和梯度爆炸

多层神经网络通常存在像悬崖一样的斜率较大的区域,这是由于几个较大的权重相乘导致的,遇到斜率极大的玄烨结构时,梯度更新会很大程度地改变参数值,通常会完全跳过这类悬崖结构。

我们可以使用梯度截断方法来避免其产生的严重后果。

 

5、长期依赖

当计算图变得很深的时候,神经网络的优化算法会面临的另一个问题就是长期依赖的问题,由于变深的结构使模型丧失了学习到先前信息的能力

梯度消失和梯度爆炸的问题

 

6、非精确梯度

大多数优化算法的先决条件都是我们知道精确的梯度或者Hessian矩阵。在实践中,通常这些量会有噪声,甚至是有偏的估计。几乎每一个深度学习算法都需要基于采样的估计,至少使用训练样本计算梯度。

我们一半选择代理损失函数避免这个问题

 

7、局部和全局之间的弱对应

大部分的训练运行时间取决于到达解决方案的轨迹长度。现在研究方法在求解具有困难全局结构问题时,旨在寻找良好的初始点,而不是开发非局部范围更新的算法。

 

8、优化的理论限制

性能限制

某些问题不可解

 

 

基本算法

 

1、随机梯度下降(SGD)

按照数据生成分布抽取m个小批量样本,通过计算他们的梯度值,我们可以得到梯度的无偏估计

 

2、动量

动量方法旨在加速学习,特别是处理高曲率、小但一致的梯度,或是带噪声的梯度。

 

参数初始化策略

 

 

 

自适应学习率算法

 

1、AdaGrad算法

独立地适应所有模型参数地学习率,缩放每个参数反比于其所有梯度历史平方和的平方根

对于训练深度神经网络而言,从训练开始时积累梯度平方会导致有效学习率过早和过量地减少。

 

2、RMSProp算法

使用指数衰减平均以丢弃遥远过去地历史,使其能够在找到凸碗状结构后快速传递收敛。

目前它是深度学习从业者经常采用的优化方法之一。

 

3、Adam

首先,在Adam中,动量直接并入了梯度一阶矩的估计。其次,Adam包括偏置修正,修正了从原点初始化的一阶矩(动量项)和二阶矩的估计

 

 

二阶近似方法

 

1、牛顿法

 

2、共轭梯度

共轭梯度时一种通过迭代下降的共轭方向以有效避免Hessian矩阵求逆计算的方法。

 

3、BFGS

拟牛顿法使用了矩阵来近似Hessian矩阵的逆

 

优化策略和元算法

 

1、批量标准化

减去均值除以标准差

解决训练非常深的模型的困难

 

2、坐标下降

我们相对于某个单一变量x_{i} 最小化 f(x),然后相对于另一个变量x_{j} 等等,反复循环所有的变量,我们回保证到达(局部)极小值,这种做法被称为坐标下降

 

3、Polyak平均

会平均优化算法在参数空间访问轨迹中的几个点,应用于凸问题时,具有比较好的收敛性。

 

4、监督预训练

在训练目标函数求解目标问题之前,训练简单的模型求解简化问题的方法统称为预训练。

贪心监督预训练,其有帮助于更好地指导深层结构的中间层的学习。。

另一个与监督预训练有关的方法扩展了迁移学习的想法

另一条相关的工作线时FitNets方法

 

5、设计有助于优化的模型

 

6、拓展法和课程学习

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值