返回 深度学习 思维导图
中文·English
🧠 深度学习ID: dropout

Dropout

🎯核心定义
Dropout 以概率 pp 随机置零神经元, 防止共适应 (co-adaptation)。标准实现是 Inverted Dropout: 训练时生成伯努利掩码 mBernoulli(1p)m \sim \text{Bernoulli}(1-p) 并缩放 y=11pmxy = \frac{1}{1-p} m \odot x, 使 E[y]=E[x]\mathbb{E}[y] = \mathbb{E}[x]; 推理时不做任何缩放, 直接使用全量网络。
💡使用场景
全连接层与注意力层的正则化主力 (Transformer 的 attention 输出与 FFN), LLM 预训练/微调中 dropout 通常取 0.1~0.3; 面试常问: 训练/推理公式差异、为什么推理必须关闭、与 BN 的顺序。
解决的核心痛点
相当于对 2n2^{n} 个子网络做隐式集成, 显著缓解过拟合 (原论文: 测试错误率下降约 4~5%)。Inverted 版本把缩放移到训练端, 推理端零额外计算, 是 PyTorch 默认实现 (torch.nn.Dropout 仅在前向为训练模式时生效)。与 BN 并用时注意顺序: 一般先 Dropout 再 BN, 否则 BN 的重新归一化会吸收掉 Dropout 的缩放与扰动, 削弱正则效果。
🎯5 个高频面试考点 (Exam Points)
1
写出 Inverted Dropout 训练公式 y=11pmxy = \frac{1}{1-p} m \odot x (mBernoulli(1p)m \sim \text{Bernoulli}(1-p)) 并解释为什么推理时不缩放能保持期望一致?
2
朴素 Dropout (推理时缩放) 与 Inverted Dropout (训练时缩放) 的数学关系? 为什么工程上都用 Inverted 版本?
3
Dropout 为什么能正则化: 与集成学习、共适应 (co-adaptation) 的关系? 一般在哪些层用?
4
模型推理 (model.eval()) 时忘记关闭 Dropout 会怎样? 训练/推理行为不一致会导致什么问题?
5
Dropout 与 BatchNorm 并用的顺序? 为什么一般先 Dropout 再 BN?
更新于 2026-08-12
🎯
检验攻克程度:针对「Dropout」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点BN vs LN vs GN 对比下一个知识点Label Smoothing

🔗 更多 深度学习 知识点卡片

激活函数演进Adam/AdamWAutograd 动态图BatchNorm 批归一化