【顶刊2023】重新审视Dropout层的作用,不止可有效防止过拟合!来源:《Dropout Reduces Underfitting》

简介: 【顶刊2023】重新审视Dropout层的作用,不止可有效防止过拟合!来源:《Dropout Reduces Underfitting》

前言

  在大众的普遍认知里面我们都知道DROPOUT是一种正则化方法,通过在训练过程中以一定的概率随机地将神经元的输出设置为0来防止过拟合。这是早在2012年Hinton等人提出的观点且到现在为止的确经受住了各类实验的验证。今年的顶刊《Dropout Reduces Underfitting》中提出了Dropout层居然可以解决欠拟合问题。

精要概括

  在神经网络训练中只是在训练的初始阶段使用 Dropout,训练一段时间之后不用了。这与没有 全程Dropout 的模型和未这样使用Dropout相比,训练初阶段使用Dropout模型的最终训练损失更低。作者也在很多模型中证明了这样可以解决模型欠拟合问题的,这种手段命名为Early Dropout。

image.png


基础回顾

  在神经网络训练过程中欠拟合和过拟合是较为常遇见的两大类问题,在这里先做个基础回顾,温故而知新。

过拟合

  在深度学习中,过拟合(overfitting)是指模型过度适应训练数据,导致在新的数据上表现不佳。也就是说,模型在训练集上的表现非常好,但是在测试集上的表现却很差。过拟合的原因通常是由于模型的容量过大,模型可以学习到训练数据中的噪声和随机性,从而导致模型对于训练数据过度拟合。过拟合还可能由于训练数据过少、噪声较多、特征工程不足等原因导致。过拟合会导致模型无法泛化到新的数据上,丧失了模型的实用价值。

              image.png

  在模型训练过程中,可以通过监控训练集和测试集的误差来判断模型是否出现了过拟合。如果模型在训练集上的误差持续下降,但在测试集上的误差反而开始上升,就说明模型出现了过拟合问题,需要及时采取相应的措施来解决。

欠拟合

  在深度学习中,欠拟合(underfitting)是指模型无法充分拟合训练数据的特征,表现为模型在训练集和测试集上的误差都很大,不能很好地捕捉到数据的规律。也就是说,模型的表现能力过低,不能很好地适应数据;欠拟合的原因可能是模型的复杂度过低,模型无法拟合数据的复杂特征。欠拟合还可能由于训练数据过少、特征工程不足等原因导致。欠拟合会导致模型的预测能力很差,无法有效地利用训练数据,丧失了模型的实用价值。

               image.png

  在模型训练过程中,可以通过监控训练集和测试集的误差来判断模型是否出现了欠拟合。如果模型在训练集和测试集上的误差都很大,无法有效地适应数据,就说明模型出现了欠拟合问题,需要及时采取相应的措施来解决。

Dropout解决过拟合

  Dropout是一种用于深度神经网络的正则化技术,可以有效地防止过拟合。Dropout的原理是在训练过程中随机地关闭一些神经元,从而减少模型中神经元之间的相互依赖,强制模型学习更加鲁棒和通用的特征。具体来说,Dropout在每一次训练迭代中以一定的概率随机地关闭神经元,这样相当于对每个神经元都添加了一个二元的掩码(0或1),如果掩码为0则表示该神经元被关闭了,不参与该次迭代的计算。这个概率一般是在0.2到0.5之间。

image.png

  在测试时,Dropout则不再随机关闭神经元,而是保留所有的神经元,并且将每个神经元的输出乘以保留该神经元的概率,以保持网络的期望输出值不变。这个过程相当于对每个神经元的输出进行了加权平均,可以视作是集成了许多不同的子模型,从而使得模型更加稳健和泛化能力更强。

  因此,Dropout在训练过程中可以避免过拟合的问题,提高模型的泛化能力,同时可以加速训练,避免神经元之间的相互适应和共适应。

python

复制代码

def dropout_layer(X, dropout):  
    assert 0 <= dropout <= 1  
    # 在本情况中,所有元素都被丢弃  
    if dropout == 1:  
        return torch.zeros_like(X)  
    # 在本情况中,所有元素都被保留  
    if dropout == 0:  
        return X  
    mask = (torch.rand(X.shape) > dropout).float()  
    return mask * X / (1.0 - dropout)

Dropout解决欠拟合

  从精要概括中我们可得到Early Dropout的工作机制,那么我们分别从下述的几个角度来分析Dropout解决欠拟合的原因。

  1. 梯度的幅值
  2. 模型距离
  3. 梯度方向方差
  4. 梯度方向误差
  5. 偏差与方差权衡

   上述的原因理论解释方面大家可详见博客前面的论文地址,这里我们只放实验结构图供大家参考学习。

梯度的幅值&模型距离

image.png

梯度方向方差

image.png

梯度方向误差

image.png



相关文章
|
4月前
|
算法 计算机视觉
YOLOv8改进 | 损失函数篇 | 最新ShapeIoU、InnerShapeIoU损失助力细节涨点
YOLOv8改进 | 损失函数篇 | 最新ShapeIoU、InnerShapeIoU损失助力细节涨点
306 2
|
4月前
|
机器学习/深度学习 算法 计算机视觉
YOLOv5改进 | 损失函数篇 | 最新ShapeIoU、InnerShapeIoU损失助力细节涨点
YOLOv5改进 | 损失函数篇 | 最新ShapeIoU、InnerShapeIoU损失助力细节涨点
269 1
|
机器学习/深度学习 PyTorch 算法框架/工具
【论文泛读】 ResNeXt:深度神经网络的聚合残差变换(ResNet的改进,提出了一种新的维度)
【论文泛读】 ResNeXt:深度神经网络的聚合残差变换(ResNet的改进,提出了一种新的维度)
【论文泛读】 ResNeXt:深度神经网络的聚合残差变换(ResNet的改进,提出了一种新的维度)
|
3月前
|
机器学习/深度学习 决策智能
**批量归一化(BN)**是2015年提出的深度学习优化技术,旨在解决**内部协变量偏移**和**梯度问题**。
【6月更文挑战第28天】**批量归一化(BN)**是2015年提出的深度学习优化技术,旨在解决**内部协变量偏移**和**梯度问题**。BN通过在每个小批量上执行**标准化**,然后应用学习到的γ和β参数,确保层间输入稳定性,加速训练,减少对超参数的敏感性,并作为隐含的正则化手段对抗过拟合。这提升了模型训练速度和性能,简化了初始化。
36 0
|
4月前
|
编解码 计算机视觉 网络架构
【YOLOv8改进】BiFPN:加权双向特征金字塔网络 (论文笔记+引入代码)
该专栏深入研究了YOLO目标检测的神经网络架构优化,提出了加权双向特征金字塔网络(BiFPN)和复合缩放方法,以提升模型效率。BiFPN通过双向跨尺度连接和加权融合增强信息传递,同时具有自适应的网络拓扑结构。结合EfficientNet,构建了EfficientDet系列检测器,在效率和准确性上超越先前技术。此外,介绍了YOLOv8如何引入MPDIoU并应用BiFPN进行可学习权重的特征融合。更多详情可参考提供的专栏链接。
|
4月前
|
机器学习/深度学习 计算机视觉
【SPP】来自何凯明在2015年发表的顶刊。一起学习池化层的变形体SPP
【SPP】来自何凯明在2015年发表的顶刊。一起学习池化层的变形体SPP
46 0
【SPP】来自何凯明在2015年发表的顶刊。一起学习池化层的变形体SPP
|
机器学习/深度学习 自然语言处理 算法
涨点技巧 | 旷视孙剑等人提出i-FPN:用于目标检测的隐式特征金字塔网络(文末获取论文)(一)
涨点技巧 | 旷视孙剑等人提出i-FPN:用于目标检测的隐式特征金字塔网络(文末获取论文)(一)
276 0
涨点技巧 | 旷视孙剑等人提出i-FPN:用于目标检测的隐式特征金字塔网络(文末获取论文)(一)
|
机器学习/深度学习 计算机视觉 网络架构
13层网络如何拿下83%精度?极简神经网络架构VanillaNet作者亲自解读
13层网络如何拿下83%精度?极简神经网络架构VanillaNet作者亲自解读
124 0
|
机器学习/深度学习 vr&ar 计算机视觉
ShiftViT用Swin Transformer的精度跑赢ResNet的速度,论述ViT的成功不在注意力!(二)
ShiftViT用Swin Transformer的精度跑赢ResNet的速度,论述ViT的成功不在注意力!(二)
208 0
|
机器学习/深度学习 自然语言处理 算法
ShiftViT用Swin Transformer的精度跑赢ResNet的速度,论述ViT的成功不在注意力!(一)
ShiftViT用Swin Transformer的精度跑赢ResNet的速度,论述ViT的成功不在注意力!(一)
206 0