趋近智
Dropout 在训练时将随机性直接引入网络结构。该方法与修改损失函数的正则化技术(例如权重正则化)形成对比。Dropout 在每次前向传播时修改网络本身。
主要思路直接明了:对于每个训练样本(或小批量),以一定的概率 p 从网络中临时移除单元(及其连接)。每个单元都有独立的 p 概率被舍弃,这意味着其输出在那个特定的前向和反向传播中被设为零。
设想你的网络中有一个包含 N 个单元的层。在训练迭代的前向传播中,我们生成一个随机二元掩码,称之为 m,其大小与该层的输出相同。此掩码中的每个元素 mi 都来自一个伯努利分布:以 1−p 的概率(“保留概率”)为 1,以 p 的概率(“舍弃概率”)为 0。
mi∼Bernoulli(1−p)如果单元对应的掩码值 mi 为 1,则该单元正常运行。如果 mi 为 0,则该单元的输出在此特定的前向传播中被强制设为零。然后,此掩码按元素方式应用于层的激活输出,例如 a。结果 adropout 随后传递到下一层。
adropout=a⊙m(其中 ⊙ 表示元素乘法)重要的一点是,每次向网络呈现训练样本或小批量时,都会生成一个不同的掩码 m。网络这种持续的“稀疏化”有助于避免单元变得过度专业化或过度依赖特定其他单元的存在。
一个包含四个单元的层在两个不同训练步骤中经历 Dropout。带虚线轮廓的灰色单元在该特定步骤中被随机设为零输出(已舍弃)。请注意,被舍弃的单元集合在不同步骤之间会发生变化。
此过程具有显著作用:
在反向传播过程中,梯度只通过未被舍弃的单元(即 mi=1 的单元)进行计算和传播。输出被设为零的单元不参与该特定训练步骤的梯度计算,实际上也被临时从梯度计算路径中移除。
训练中这种持续的单元洗牌和禁用是 Dropout 帮助防止过拟合的主要机制。然而,这也意味着我们需要一种一致的方法在推断或测试时使用完整的网络,这一点我们将在下一节关于激活缩放中进行讨论。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造