核心要点
训练时随机丢弃神经元输出
理解集成效应与共适应破坏
知道推理时 scale 或 eval 关闭
能设置合理 dropout rate
简要回答
Dropout 训练时以概率 p 随机将神经元输出置零,迫使网络不依赖少数神经元,等价于训练指数级子网络集成,从而减轻过拟合。
标准回答
Dropout(Srivastava et al.)是缓解 过拟合 的正则化技术。
机制:
- 训练时:以概率 p(如 0.5)随机丢弃神经元输出(置 0)
- 推理时:model.eval() 关闭 Dropout,或输出乘以 (1-p) 保持期望一致(PyTorch nn.Dropout 自动处理)
为何有效:
- 破坏共适应:神经元不能依赖固定搭档,须学鲁棒特征
- 隐式集成:每步相当于训练不同子网络,推理近似平均
- 降低有效容量:防止记忆训练集噪声
实践:
- 全连接层 p=0.5 常见;CNN 卷积层 p 较小(0.2~0.3)或用在 FC 头
- 与 Batch Normalization、数据增强、权重衰减叠加使用
- 过大 p 导致欠拟合
回答思路
【定义】用一句话说清「Dropout 层如何帮助防止过拟合」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
常见误区
⚠️ 常见踩坑
推理忘记 model.eval();训练与测试输出 scale 不一致;p 过大仍过拟合却不调其他正则。
追问
追问 1:Dropout 和 L2 正则有何不同?
L2 惩罚大权值,平滑权重;Dropout 随机结构正则,不直接 shrink 权重。二者可互补;Transformer 更常用 Dropout + weight decay。
追问 2:为什么 eval 模式必须关 Dropout?
训练时随机丢弃,推理需确定性输出。eval() 关闭 Dropout 并用训练时 scale 补偿,否则推理输出随机且幅度错误。
🔗 相似问题
同一考点的不同问法,换着练更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习
