【顶刊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



相关文章
|
7天前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【注意力机制篇】| ICCV2023 聚焦线性注意力模块 Focused Linear Attention 聚焦能力与特征多样性双重提升,含二次创新
RT-DETR改进策略【注意力机制篇】| ICCV2023 聚焦线性注意力模块 Focused Linear Attention 聚焦能力与特征多样性双重提升,含二次创新
22 1
|
9天前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| ICCV2023 聚焦线性注意力模块 Focused Linear Attention 聚焦能力与特征多样性双重提升,含二次创新
YOLOv11改进策略【注意力机制篇】| ICCV2023 聚焦线性注意力模块 Focused Linear Attention 聚焦能力与特征多样性双重提升,含二次创新
19 1
|
12天前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【卷积层】| CVPR-2021 多样分支块DBB,替换传统下采样Conv 含二次创新C3k2
YOLOv11改进策略【卷积层】| CVPR-2021 多样分支块DBB,替换传统下采样Conv 含二次创新C3k2
47 0
YOLOv11改进策略【卷积层】| CVPR-2021 多样分支块DBB,替换传统下采样Conv 含二次创新C3k2
|
12天前
|
计算机视觉
YOLOv11改进策略【卷积层】| CVPR-2024 利用DynamicConv 动态卷积 结合C3k2进行二次创新,提高精度
YOLOv11改进策略【卷积层】| CVPR-2024 利用DynamicConv 动态卷积 结合C3k2进行二次创新,提高精度
15 0
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
《C++ 中 RNN 及其变体梯度问题的深度剖析与解决之道》
在AI发展浪潮中,RNN及其变体LSTM、GRU在处理序列数据上展现出巨大潜力。但在C++实现时,面临梯度消失和爆炸问题,影响模型学习长期依赖关系。本文探讨了这些问题的根源及解决方案,如梯度裁剪、合理初始化、选择合适激活函数、截断反向传播和优化网络结构等,旨在帮助开发者构建更有效的模型。
51 9
|
8月前
|
机器学习/深度学习 决策智能
**批量归一化(BN)**是2015年提出的深度学习优化技术,旨在解决**内部协变量偏移**和**梯度问题**。
【6月更文挑战第28天】**批量归一化(BN)**是2015年提出的深度学习优化技术,旨在解决**内部协变量偏移**和**梯度问题**。BN通过在每个小批量上执行**标准化**,然后应用学习到的γ和β参数,确保层间输入稳定性,加速训练,减少对超参数的敏感性,并作为隐含的正则化手段对抗过拟合。这提升了模型训练速度和性能,简化了初始化。
79 0
|
9月前
|
机器学习/深度学习 算法 数据建模
SPSS多层感知器 (MLP)神经网络预测全国污染物综合利用量数据
SPSS多层感知器 (MLP)神经网络预测全国污染物综合利用量数据
中文核心论文实战:基于通道注意力cbam+lstm的工业用电功率预测时间序列
中文核心论文实战:基于通道注意力cbam+lstm的工业用电功率预测时间序列
154 0
|
机器学习/深度学习 算法 数据处理
Backbone 在神经网络中意味着什么?
Backbone 在神经网络中意味着什么?
153 0
|
机器学习/深度学习 计算机视觉 网络架构
13层网络如何拿下83%精度?极简神经网络架构VanillaNet作者亲自解读
13层网络如何拿下83%精度?极简神经网络架构VanillaNet作者亲自解读
171 0