# 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 像给网络穿“沙袋”练习——训练时增加随机阻力,比赛时脱掉沙袋,跑得更快、更稳。