读书笔记--神经网络与深度学习(六)网络优化与正则化

7 网络优化与正则化

针对两个难点,优化问题(梯度消失和训练效率)和泛化问题(过拟合),

7.1 网络优化

7.1.1 网络优化的难点

网络结构的多样性。
高维变量的非凸优化:低维空间的非凸优化问题主要是存在一些局部最优点。基于梯度下降的优化方法会陷入局部最优点,因此低维空间非凸优化的主要难点是如何选择初始化参数和逃离局部最优点。深层神经网络的参数非常多,其参数学习是在非常高维空间中的非凸优化问题,其挑战和在低维空间的非凸优化问题有所不同。

鞍点 :在高维空间中,非凸优化的难点并不在于如何逃离局部最优点,而是如何逃离鞍点。鞍点的梯度是0,但是在一些维 鞍点的叫法是因为其形状像马鞍。 度上是最高点,在另一些维度上是最低点。在高维空间中,局部最优点要求在每一维度上都是最低点,这种概率非常低。假设网络有10,000维参数,一个点在某一维上是局部最低点的概率为p,那么在整个参数空间中,局部最优点的概率为p10,000,这种可能性非常小。也就是说高维空间中,大部分梯度为0的点都是鞍点。基于梯度下降的优化方法会在鞍点附近接近于停滞,同样很难从这些鞍点中逃离。
平坦底部:深层神经网络的参数非常多,并且有一定的冗余性,这导致每单个参数对最终损失的影响都比较小,这导致了损失函数在局部最优点附近是一个平坦的区域,称为平坦最小值。

7.2 优化算法

目前,深层神经网络的参数学习主要是通过梯度下降方法来寻找一组可以最小化结构风险的参数。在具体实现中,梯度下降法可以分为:批量梯度下降、随机梯度下降以及小批量梯度下降三种形式。

目前,在训练深层神经网络时,训练数据的规模比较大。如果在梯度下降时,每次迭代都要计算整个训练数据上的梯度需要比较多的计算资源。此外,大规模训练集中的数据通常也会非常冗余,也没有必要在整个训练集上计算梯度。因此,在训练深层神经网络时,经常使用小批量梯度下降算法。

在小批量梯度下降中,批量大小(Batch Size)对网络优化的影响也非常大。一般而言,批量大小不影响随机梯度的期望,但是会影响随机梯度的方差。批量大小越大,随机梯度的方差越小,引入的噪声也越小,训练也越稳定,因此可以设置较大的学习率。而批量大小较小时,需要设置较小的学习率,否则模型会不收敛。学习率通常要随着批量大小的增大而相应地增大。一个简单有效的方法是线性缩放规则。当批量大小增加m倍时,学习率也增加m倍.线性缩放规则往往在批量大小比较小时适用,当批量大小非常大时,线性缩放会使得训练不稳定。为了更有效地进行训练深层神经网络,在标准的小批量梯度下降方法的基础上,也经常使用一些改进方法以加快优化速度。常见的改进方法主要从以下两个方面进行改进:学习率调整和梯度方向优化。
学习率:学习率是神经网络优化时的重要超参数。在梯度下降方法中,学习率α的取值非常关键,如果过大就不会收敛,如果过小则收敛速度太慢。常用的学习率调整方法包括学习率衰减率、学习率预热、周期学习率以及一些自适应地调整学习率的方法,比如AdaGrad、RMSprop、AdaDelta等。自适应学习率方法可以针对每个参数设置不同的学习率。
梯度方向优化:除了调整学习率之外,还可以通过使用最近一段时间内的平均梯度来代替当前时刻的梯度来作为参数更新的方向。

7.3 参数初始化

在感知器和logistic回归的训练中,我们一般将参数全部初始化为0。但是这在神经网络的训练中会存在一些问题。因为如果参数都为0,在第一遍前向计算时,所有的隐层神经元的激活值都相同。这样会导致深层神经元没有区分性。这种现象也称为对称权重现象。为了打破这个平衡,比较好的方法是随机初始化。
随机初始化参数的一个问题是如何选取随机初始化的区间。如果参数太小,一是会导致神经元的输入过小,经过多层之后信号就慢慢消失了;二是还会使得Sigmoid型激活函数丢失非线性的能力。以Logistic函数为例,在0附近基本上是近似线性的。这样多层神经网络的优势也就不存在了。如果参数取得太大,会导致输入状态过大。对于 Sigmoid 型激活函数来说,激活值变得饱和,从而导致梯度接近于0。
因此,要选择一个合适的随机初始化区间。
经常使用的初始化方法有均匀分布初始化和高斯分布初始化。

7.4 数据预处理

缩放归一化
标准归一化

白化:白化(Whitening)是一种重要的预处理方法,用来降低输入数据特征之间的冗余性。输入数据经过白化处理后,特征之间相关性较低,并且所有特征具有相同的方差。白化的一个主要实现方式是使用主成分分析。

7.5 逐层归一化

从机器学习角度来看,如果某个神经层的输入分布发生了改变,那么其参数需要重新学习,这种现象叫做内部协变量偏移。
为了解决内部协变量偏移问题,就要使得每一个神经层的输入的分布在训练过程中要保持一致。最简单直接的方法就是对每一个神经层都进行归一化操作,使其分布保存稳定。

7.6 超参数优化

在神经网络中,除了可学习的参数之外,还存在很多超参数。这些超参数对网络性能的影响也很大。不同的机器学习任务需要往往需要不同的超参数。常见的超参数有
• 网络结构,包括神经元之间的连接关系、层数、每层的神经元数量、激活函数的类型等;
• 优化参数,包括优化方法、学习率、小批量的样本数量等;
• 正则化系数
超参数优化(Hyperparameter Optimization)主要存在两方面的困难。(1)超参数优化是一个组合优化问题,无法像一般参数那样通过梯度下降方法来优化,也没有一种通用有效的优化方法。(2)评估一组超参数配置的时间代价非常高,从而导致一些优化方法在超参数优化中难以应用。
对于超参数的设置,比较简单的方法有人工搜索、网格搜索和随机搜索。

7.7 网络正则化

正则化(Regularization)是一类通过限制模型复杂度,从而避免过拟合,提高泛化能力的方法,包括引入一些约束规则,增加先验、提前停止等。
ℓ1 和ℓ2 正则化:是机器学习中最常用的正则化方法,通过约束参数的ℓ1 和ℓ2范数来减小模型在训练数据集上的过拟合现象。
权重衰减(Weight Decay):是一种有效的正则化手段,在每次参数更新时,引入一个衰减系数。
提前停止(Early Stop):对于深层神经网络来说是一种简单有效的正则化方法。由于深层神经网络的拟合能力非常强,因此比较容易在训练集上过拟合。在使用梯度下降法进行优化时,我们可以使用一个和训练集独立的样本集合,称为验证集(Validation Set),并用验证集上的错误来代替期望错误。当验证集上的错误率不再下降,就停止迭代。
丢弃法:当训练一个深层神经网络时,我们可以随机丢弃一部分神经元(同时丢弃其对应的连接边)来避免过拟合,这种方法称为丢弃法(Dropout Method)。

深层神经网络一般都需要大量的训练数据才能获得比较理想的效果。在数据量有限的情况下,可以通过数据增强(Data Augmentation)来增加数据量,提高模型鲁棒性,避免过拟合。目前,数据增强还主要应用在图像数据上,在文本等其它类型的数据还没有太好的方法。
在数据增强中,我们可以给样本特征加入随机噪声来避免过拟合。同样,我们也可以给样本的标签引入一定的噪声。假设训练数据集中,有一些样本的标签是被错误标注的,那么最小化这些样本上的损失函数会导致过拟合。一种改善的正则化方法是标签平滑(Label Smoothing),即在输出标签中添加噪声来避免模型过拟合。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值