李沐深度学习 · 第44-46集 三合集知识卡
第44-46集:丢弃法 Dropout
训练时随机"丢人" 🎲
44 · 12:00
理论
45 · 12:17
代码实现
46 · 24:53
QA 答疑
46 / 191
进度 24.1%
🎲 第44集:丢弃法理论
只在训练时丢,推理时全开
h' = h · mask, mask ~ 以概率 p 置 0,存活值 ÷ (1−p) (期望 E[h'] = h 不变)
阶段
行为
原因
训练 🔨
每层随机丢 p 比例神经元
注入噪声,防过度依赖单一神经元
推理 🚀
不丢弃,全部神经元参与
输出要稳定、可预测
💡 本质
模型不应"把鸡蛋放一个篮子"——每个特征都可能消失,权重自然摊开
🧩 集成视角
每个 batch 相当于采样子网络训练 ≈ 模型集成(bagging)的廉价近似
🎯 定位
与权重衰退并列的正则化手段,作用于层之间而非损失函数
💻 第45集:代码实现
一行 mask 的魔法
从零实现(inverted dropout):
mask = (torch.rand(X.shape) > p).float() / (1 - p)
return mask * X 框架版一行:
nn.Dropout(p) # 训练态自动生效,eval() 自动关闭
🏗️ 网络用法
MLP 两个隐藏层后各接 Dropout:p=0.2(第一层)、p=0.5(第二层)
📊 实验效果
训练误差升高(变难了)但验证精度更稳 → 正则化生效
❓ 第46集:QA 精选
drop 率与实战细节
Q:p 怎么选?
隐藏层 0.2~0.5 常见;输入层一般不用;验证集上扫
Q:p=1 会怎样?
全灭,什么都学不到;p=0 等价于没有 dropout
Q:为什么 ÷(1−p)?
保证激活值期望不变(inverted dropout),推理时无需再改
Q:能和权重衰退叠加?
能,两种正则化互补;先衰退后 dropout 是常见组合
Generated with
Tabbit.