核心要点

  • 训练时随机丢弃神经元输出

  • 理解集成效应与共适应破坏

  • 知道推理时 scale 或 eval 关闭

  • 能设置合理 dropout rate

简要回答

Dropout 训练时以概率 p 随机将神经元输出置零,迫使网络不依赖少数神经元,等价于训练指数级子网络集成,从而减轻过拟合

标准回答

Dropout(Srivastava et al.)是缓解 过拟合正则化技术。

机制

  • 训练时:以概率 p(如 0.5)随机丢弃神经元输出(置 0)
  • 推理时model.eval() 关闭 Dropout,或输出乘以 (1-p) 保持期望一致(PyTorch nn.Dropout 自动处理)

为何有效

  1. 破坏共适应:神经元不能依赖固定搭档,须学鲁棒特征
  2. 隐式集成:每步相当于训练不同子网络,推理近似平均
  3. 降低有效容量:防止记忆训练集噪声

实践

PyTorchnn.Dropout(p=0.5)。详见 深度学习训练技巧

回答思路

  • 【定义】用一句话说清「Dropout 层如何帮助防止过拟合」

  • 【原理】讲清关键机制或步骤(2~3 点)

  • 【例子】举一个真实项目、论文或产品中的例子

  • 【对比】与易混淆概念或替代方案比较(如有)

  • 【收尾】总结适用场景 + 一个局限或风险

延伸学习

常见误区

⚠️ 常见踩坑

推理忘记 model.eval();训练与测试输出 scale 不一致;p 过大仍过拟合却不调其他正则。

追问

追问 1Dropout 和 L2 正则有何不同?

L2 惩罚大权值,平滑权重;Dropout 随机结构正则,不直接 shrink 权重。二者可互补;Transformer 更常用 Dropout + weight decay。

追问 2为什么 eval 模式必须关 Dropout?

训练时随机丢弃,推理需确定性输出。eval() 关闭 Dropout 并用训练时 scale 补偿,否则推理输出随机且幅度错误。

追问 3Dropout 能用在卷积层吗?

可以,Spatial Dropout 丢弃整通道;标准 nn.Dropout2d 丢特征图通道。ResNet 常在 FC 前用 Dropout;现代 ViTAttention 后用 Dropout。

🔗 相似问题

同一考点的不同问法,换着练更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习