Task3: 过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;循环神经网络进阶学习笔记

  • 课程地址:

      https://www.boyuai.com/elites/course/cZu18YmweLv10OeV/video/Rosi4tliobRSKaSVcsRx_

  • Task03:过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;循环神经网络进阶(1天)

过拟合

过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。

具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。

产生过拟合的原因

(1)观察值与真实值存在偏差

(2)训练数据不足,数据太少,导致无法描述问题的真实分布

(3)数据有噪声

可以理解地简单些:有噪音时,更复杂的模型会尽量去覆盖噪音点,即对数据过拟合。这样,即使训练误差Ein 很小(接近于零),由于没有描绘真实的数据趋势,Eout 反而会更大。
   即噪音严重误导了我们的假设。还有一种情况,如果数据是由我们不知道的某个非常非常复杂的模型产生的,实际上有限的数据很难去“代表”这个复杂模型曲线。我们采用不恰当的假设去尽量拟合这些数据,效果一样会很差,因为部分数据对于我们不恰当的复杂假设就像是“噪音”,误导我们进行过拟合

(4)训练模型过度,导致模型非常复杂

抑制过拟合的几种方法

(1)数据处理:清洗数据、减少特征维度、类别平衡

(2)权重衰减,正则化(权重衰减等价于 L2L2 范数正则化(regularization)。正则化通过为模型损失函数添加惩罚项使学出的模型参数值较小,是应对过拟合的常用手段。)

获取更多数据:从数据源获得更多数据,或数据增强;

L2、L1、BN层等;

使用合适的模型(减少网络的层数、神经元个数等,限制权重过大),限制网络的拟合能力,避免模型过于复杂;

增加噪声:输入时+权重上(高斯初始化);

多种模型结合:集成学习的思想;

Dropout:随机从网络中去掉一部分隐神经元

限制训练时间、次数,及早停止

欠拟合

现象:训练的模型在训练集上面的表现很差,在验证集上面的表现也很差。

原因:模型发生欠拟合的最本质原因是“训练的模型太简单,最通用的特征模型都没有学习到”;

措施:

方案1:做特征工程,添加更多的特征项。即提供的特征不能表示出那个需要的函数;

方案2:减少正则化参数。即使得模型复杂一些;

方案3:使用更深或者更宽的模型。

方案4:使用集成方法。融合几个具有差异的弱模型,使其成为一个强模型;

 

 

  • 欠拟合现象:模型无法达到一个较低的误差

  • 过拟合现象:训练误差较低但是泛化误差依然较高,二者相差较大

梯度消失和梯度爆炸

产生的原因

以最简单的网络结构为例,加入有三个隐藏层,每层的神经元个数都是1,且对应的非线性函数为 yi= σ( zi) = σ ( wixi+ bi)(其中 σ 为某个激活函数)如下图:

现在假设我们需要更新参数 b1,那么我们就要求出损失函数对参数 b1的导数,根据链式法则,可以写成下面这样:

而对于激活函数,之前一直使用Sigmoid函数,其函数图像成一个S型,如下所示,它会将正无穷到负无穷的数映射到0~1之间:

当我们对Sigmoid函数求导时,得到结果呈现一个驼峰状(很像高斯函数),Sigmoid导数的取值范围在0~0.25之间,而我们初始化的网络权值∣w∣通常都小于1,因此,当层数增多时,小于0的值不断相乘,最后就导致梯度消失的情况出现。同理,梯度爆炸的问题也就很明显了,就是当权值∣w∣过大时,导致 ∣σ′(z)w∣>1 ,最后大于1的值不断相乘,就会产生梯度爆炸。

Sigmoid函数求导图像

梯度消失或梯度爆炸的影响

当梯度消失发生时,接近于输出层的隐藏层由于其梯度相对正常,所以权值更新时也就相对正常,但是当越靠近输入层时,由于梯度消失现象,会导致靠近输入层的隐藏层权值更新缓慢或者更新停滞。这就导致在训练时,只等价于后面几层的浅层网络的学习。

解决办法

  1. 换用Relu、LeakyRelu、Elu等激活函数
  2. BatchNormalization BN本质上是解决传播过程中的梯度问题
  3. ResNet残差结构
  4. LSTM结构 LSTM不太容易发生梯度消失,主要原因在于LSTM内部复杂的“门(gates)”,具体看LSTM基本原理解析
  5. 预训练加finetunning 
  6. 梯度剪切、正则

    这个方案主要是针对梯度爆炸提出的,其思想是设值一个剪切阈值,如果更新梯度时,梯度超过了这个阈值,那么就将其强制限制在这个范围之内。这样可以防止梯度爆炸。另一种防止梯度爆炸的手段是采用权重正则化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值