第3步:Dropout 与 BatchNorm

随机"关掉"一半神经元反而更强?深度网络两大训练神器
决策边界对比(双月数据 · 同初始权重 · 实时训练中)
无 Dropout
有 Dropout · p=0.30
Dropout 过程示意(灰点 = 本步被随机丢弃的隐藏神经元)
训练时每处理一个样本就重新随机生成一次掩码 —— 每个样本实际上都在训练一个不同的"子网络"。暂停时掩码静止。
BatchNorm 示意:第 1 隐藏层激活前 z 的分布(橙 = 原始,蓝 = BN 归一化后)

训练配置

操作

已训练 0 · 损失 /
无 Dropout:train / test
有 Dropout:train / test
过拟合差距(train−test):无 /
为什么"随机关掉"神经元反而更强?
Dropout:每个训练步以概率 p 随机丢弃一部分隐藏神经元(上方示意图中的灰点)。 网络每步都在训练一个不同的子网络,最终效果相当于指数级多个子网络投票取平均 —— 一种隐式集成。神经元无法依赖某个固定"搭档",被迫学到更稳健的特征,过拟合因此减轻。 观察右侧"过拟合差距":无 Dropout 的网络 train 准确率往往明显高于 test,Dropout 让差距收窄。

训练 ≠ 推理:本页使用 inverted dropout —— 训练时被保留的激活放大 1/(1−p),推理(预测)时一个神经元也不丢、原样前向, 两个阶段的输出期望因此一致。

BatchNorm:把每一层的输入(激活前的 z)按统计量拉回均值 0、方差 1 的标准形状, 层间分布不再随训练漂移,训练更快更稳。本页做了简化:BN 只作用于前向传播 (反向传播把它当恒等映射),均值/方差用滑动平均估计 —— 直方图中蓝线就是被拉回标准形状的分布。

🔰 先修:ML 第 6 步 · 过拟合与正则化

💡 键盘快捷键:← → 切换章节