# Summary
Dropout 就是在神经网络训练时,随机“关掉”一部分神经元(让它们临时罢工),迫使剩下的神经元自己也学会解决问题;推理时再全部打开。这样能减少“大家只抱同一个大腿”(过拟合)的风险。
# Cues
# Notes
## 为什么要这么做?
|问题|没用 Dropout 会怎样|Dropout 的作用|
|---|---|---|
|**过拟合**网络把训练集记得太死,下次看到新数据就懵|部分神经元形成“固定搭档”,只擅长处理训练样本|每次训练都随机拆散搭档,人人都得独立思考,学到更通用的特征|
|**模型太依赖单一路径**某些节点权重异常大,导致脆弱|一条路堵了就全崩|强制网络走多条路,提升鲁棒性|
|**训练速度快但泛化差**|早早陷入局部最优|类似集成学习中的“多模型平均”,效果更稳|
---
## 它是怎么实现的?
1. **训练阶段**
- 设定一个保留率 p(常见 0.8-0.9)。
- 对每个小批次,按 1−p1-p 的概率把某些神经元输出设为 0。
- 权重照常更新;下一批次再随机一次,罢工名单不同。
2. **推理阶段**
- 不再关掉神经元,全部启用。
- 为保持数值一致,把训练时学到的权重统一乘以 p (或训练时就提前放大)。这样输出尺度不变。
---
## 通俗类比
- **多人小组作业**
> 老师随机把几个人请假,让剩下的人完成任务。久而久之,每个人都掌握了全部技能,小组整体能力更平均、更可靠。
- **篮球训练**
> 教练偶尔让主力球员坐板凳,逼替补也能扛得住比赛;等正式比赛全员上场,整体实力显著提升。
- **备份电路**
> 关键线路随机断开,工程师必须保证备用线路也能工作。这样系统中任何一条线坏了,都还有其它线路顶上。
---
## 关键要点
1. **只在训练时随机,推理时不开启**。
2. **不是丢掉神经元,而是临时屏蔽输出**;权重仍被更新。
3. **保留率别太低**:p < 0.5 会损伤模型表达能力。
4. **与 BatchNorm、LayerNorm 可同时使用**;现代大型模型有时改用 DropPath / Stochastic Depth(随机整层跳过)实现类似效果。
---
> **一句总结**
> Dropout 像给网络穿“沙袋”练习——训练时增加随机阻力,比赛时脱掉沙袋,跑得更快、更稳。