卷积网络:完全连接层中的丢失

时间:2017-03-09 11:46:15

标签: tensorflow neural-network deep-learning conv-neural-network convolution

我在tensorflow中构建了一个小的conv网。我注意到,如果我向完全连接的层添加一个丢失概率,那么我必须使用较低的学习速率,否则我会得到梯度过冲。有没有解释为什么会一直这样?

1 个答案:

答案 0 :(得分:2)

有趣地在文献中观察到相反的情况。辍学的原始文件在这里:http://www.jmlr.org/papers/volume15/srivastava14a.old/source/srivastava14a.pdf。在附录A.2中:作者解释说学习率应该增加10-100倍,而动量也应该增加,因为许多梯度相互抵消。也许你没有使用足够高的批量。

以下部分是我的解释,与上面提供的文献相反,为什么你的观察结果发生了。

通过使用0.5 dropout,只有一半的神经元处于活动状态并导致错误。仍然是错误大小相似。因此,错误将通过网络传播回仅一半的神经元。因此,错误中的每个神经元“部分”都会翻倍。

通过使用相同的学习率,渐变更新加倍。因此,您遇到的问题就像您首先使用较大的学习率一样。通过降低学习速率,更新再次在您之前使用的范围内。