【笔记】神经网络的优化问题(一)

笔记总结自《神经网络与深度学习》第7章-网络优化与正则化

1. 高纬空间的非凸优化

在高纬空间中,大部分的局部最优点都是鞍点。因此,在深度网络的非凸优化问题的难点是如何逃离鞍点。通过引入随机因素,能够解决梯度下降方法在鞍点附近梯度为0的问题,从而有效地逃离鞍点。

2. 改善神经网络计算的优化方法

2.1 小批量(Mini-batch )梯度下降

初衷:通常深度神经网络使用的数据量都非常大,不适合一次性加载所有的数据进行梯度计算和更新,因此用到了小批量的梯度更新方法。

在这里插入图片描述

影响小批量梯度下降效果的因素

​ 1)批量大小( K K K);2)学习率( α \alpha α);3)梯度估计( g t g_t gt)。

在此基础上研究改进的方法。

​ 1)选择合适的批量;2)选择合适的学习率;3)更好地估计梯度

2.2 选择合适的批量

batch size对网络优化影响很大。

一般而言,批量大小不影响随机梯度的期望,但是会影响随机梯度的方差.批量大小越大,随机梯度的方差越小,引入的噪声也越小,训练也越稳定,因此可以设置较大的学习率.而批量大小较小时,需要设置较小的学习率,否则模型会不收敛.

调整方法:线性缩放规则

当批量大小增加 𝑚 倍时,学习率也增加 𝑚 倍.性缩放规则往往在批量大小比较小时适用,当批量大小非常大时,线性缩放会使得训练不稳定.

2.3 选择合适的学习率

2.3.1 学习率调整方法

调整方法1:学习率衰减

目的:学习率在一开始要保持大些来保证收敛速度,在收敛到最优点附近时要小些以避免来回振荡。

调整方法2:学习率预热

目的:提高小批量梯度下降的训练稳定性。

原因:小批量梯度下降法中,当批量大小的设置比较大时,通常需要比较大的学习率.但在刚开始训练时,由于参数是随机初始化的,梯度往往也比较大,再加上比较大的初始学习率,会使得训练不稳定

调整方法3:周期性学习率

目的:当优化过程处于尖锐最小值附近时,增大学习率有助于逃离尖锐最小值

我的理解:非凸优化中,局部的尖锐最小值并不对应全局最优解。其次,在尖锐最小值处,模型的鲁棒性较差(模型参数的微小变动会使得性能的大幅改变)。

2.3.2 学习率调整算法

该部分仅简要记录算法的特点,对于算法细节暂时不作阐述。

算法1:AdaGrad

AdaGrad(Adaptive Gradient Algorithm),自适应梯度算法。

算法的自适应是针对模型参数而言的。在每次迭代过程中,调整不同参数的学习率。

算法2:RMSprop

在有些情况下避免 AdaGrad 算法中学习率不断单调下降以至于过早衰减的缺点。

在迭代过程中,每个参数的学习率并不是呈衰减趋势,既可以变小也可以变大

算法3:AdaDelta

AdaDelta 算法也是对AdaGrad算法的优化。相比 RMSprop 算法,一定程度上平抑了学习率的波动

2.4 更好地估计梯度

初衷:当批量取值较小时,损失会震荡式下降,增加了训练的随机性。

2.4.1 动量法

在这里插入图片描述

动量法相当于对梯度更新的一种平滑,缓解梯度估计的随机性。

2.4.2 Adam 算法

相当于动量法+RMSprop

2.5 总结

优化方法大体上可以分为两类:1)调整学习率,使得优化更稳定;2)梯度估计修正,优化训练速度。

这里我直接贴书本的图和表,对这几个算法的效果有更直观的印象。

在这里插入图片描述

下面给出了这几种优化方法在 MNIST 数据集上收敛性的比较(学习率为0.001,批量大小为128)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值