在计算后续层之前,向网络的每一层添加噪点,
在训练过程中,暂退法会根据一定概率p丢弃一些单元(将值设为0),达到降低模型复杂度,提高泛化能力的目的.
暂退法通过缩放被保留神经元的输出来使期望不变
这里期望
由于测试阶段没有使用dropout,会通过对输出乘以来使测试阶段的期望输出与训练阶段一致
暂退法的实现
只需在神经网络中添加Dropout层,该函数的唯一参数为概率p
# 以之前的图像分类为例
net = nn.Sequential(
nn.Flatten(),
nn.Linear(784, 256),
nn.ReLU(),
# 在第一个全连接层之后添加一个dropout层
nn.Dropout(p1),
nn.Linear(256, 256),
nn.ReLU(),
# 在第二个全连接层之后添加一个dropout层
nn.Dropout(p2),
nn.Linear(256, 10)
)