我有一个相当简单的神经网络 - 输入层,隐藏层,输出层。它是一个完全连接的(FC)神经网络。我使用了相当标准的梯度反向传播。我想知道是否添加了一个丢失层来制作网络输入层 - >辍学层 - >隐藏层 - >输出层,如果我需要将删除层考虑到我的反向传播算法中。
我可以通过两种不同的方式看到它:
1)它是随机的,所以不要碰它 2)如果我不碰它,我的最终结果将与我没有删除图层完全相同。
那么在训练NN时处理丢失层的正确方法是什么?我是否只是调整被删除的神经元?
答案 0 :(得分:2)
我在这里找到答案:https://wiseodd.github.io/techblog/2016/06/25/dropout/
"辍学支持 在backprop期间,我们需要做的只是考虑Dropout。被杀死的神经元对网络没有任何贡献,因此我们不会通过它们传递渐变。
dh1 * = u1 有关完整示例,请参阅:https://github.com/wiseodd/hipsternet/blob/master/hipsternet/neuralnet.py。"
换句话说,死神经元没有贡献,所以当我们回传播时,我们不会调整它们。