定义与核心思想

  • Dropout​ 是一种用于神经网络的正则化技术,由 Hinton 团队在 2012 年提出,旨在减少过拟合。

  • 核心思想:在训练阶段,随机”丢弃”(临时关闭)网络中的一部分神经元(通常按概率 p),迫使剩余神经元学习更鲁棒的特征,避免对特定神经元的过度依赖。

  • 测试阶段:使用完整的网络结构,但需对权重进行缩放以保持输出的期望值一致。

实现方式

  • 训练阶段

    • 对每个神经元以概率 p(超参数,常用 0.5)决定是否关闭。
    • 关闭的神经元不参与前向传播(传0)和反向传播(传0)。
    • 保留的神经元的输出值需缩放(乘以 ),以保持该层输出的总期望不变,
    • 反向传播时的保留神经元的梯度也按照缩放后的值传播。
  • 测试阶段

    • 使用全部神经元,无需丢弃。
    • 权重直接参与计算,无需额外调整(因训练时已通过缩放保证期望一致)。

数学表达

  • 训练时:对第 l 层的输出,按概率 p 生成掩码(Mask)向量 M(0 或 1),输出调整为:
  • 测试时:直接使用完整网络:

作用机制

  • 打破协同适应:防止神经元过度依赖少数关键节点,迫使每个单元独立学习有效特征。

  • 隐式模型集成:每次训练的子网络结构不同,相当于集成了多个模型的预测结果(类似 Bagging)。

  • 噪声鲁棒性:通过随机丢弃引入噪声,增强模型泛化能力。

优点与局限性

  • 优点

    • 显著减少过拟合,尤其适用于深层网络和大规模数据。
    • 计算高效,仅需在训练时增加少量操作。
    • 与 L2 正则化、数据增强等方法兼容。
  • 局限性

    • 训练时间可能延长(因随机丢弃需更多迭代)。
    • 在极小型数据集或浅层网络中效果有限。
    • 丢弃概率 p 需手动调参(常用 0.5 作为基准)。

变体与改进

  • DropConnect:随机断开权重连接(而非关闭神经元)。

  • Spatial Dropout:针对卷积网络,按通道(Channel)丢弃整个特征图。

  • Adaptive Dropout:根据神经元重要性动态调整丢弃概率(如引入注意力机制)。

  • 蒙特卡罗 Dropout:测试阶段多次采样丢弃,用于不确定性估计(贝叶斯神经网络)。

应用场景

  • 全连接层:常用于全连接层后,如 MLP 或 Transformer 中的 FFN 层。

  • 过拟合风险高的场景:数据量较小、模型参数量大时。

  • 与其他正则化技术结合:与 Batch Normalization、权重衰减(L2)等联合使用。