我正在研究如何在深度神经网络上实现 dropout,并发现了一些反直觉的东西。在前向阶段 dropout 掩码激活具有 1s 和 0s 的随机张量,以强制网络学习权重的平均值。这有助于网络更好地泛化。但是在梯度下降的更新阶段,激活没有被屏蔽。这对我来说似乎违反直觉。如果我用 dropout 屏蔽连接激活,为什么我不应该屏蔽梯度下降阶段?
了解 dropout 和梯度下降
数据挖掘
神经网络
深度学习
梯度下降
2021-10-11 09:32:35
1个回答
在此处描述的 dropout 中,权重没有被屏蔽。取而代之的是,神经元激活被屏蔽,每个例子都被用于训练(即,每次前向运行和梯度反向传播的屏蔽是随机的,从不重复)。
激活在前向传播过程中被屏蔽,梯度计算在该示例的反向传播过程中使用相同的屏蔽。这可以作为层描述中的修改器来实现,也可以作为单独的 dropout 层来实现。
在权重更新阶段,通常应用于小批量(每个示例应用不同的掩码),不再使用丢失掩码。用于更新的梯度值已经受到反向传播期间应用的掩码的影响。
我发现了一个有用的参考资料,用于学习 dropout 的工作原理,也许可以自己实现,是 Matlab/Octave 的Deep Learn Toolbox。
其它你可能感兴趣的问题