【发布时间】:2019-09-18 03:31:41
【问题描述】:
我刚刚从头开始实现了一个卷积神经网络。这是我第一次这样做。在测试我的反向传播算法时,输出的权重增量值与原始值相比非常大。例如,我所有的权重都被初始化为一个介于 -0.1 和 0.1 之间的随机数,但输出的 delta 值在 75000 左右。这显然是一个太大的变化,它需要非常小的学习率甚至接近功能.像 0.01 这样的学习率似乎是惯例,但我的需要至少为 0.0000001,这让我相信我做错了什么。问题是我不明白三角洲怎么不可能很大。为了获得权重关于成本函数的导数,我将前一层的激活(由于泄漏 reLu 导致大部分为正)与先前的错误(由于泄漏 reLu 的导数全部为 0.1 或 1)进行卷积。显然,所有这些正数的总和在通过层传播时会变得非常大。我在某处跳过了一步吗?这是一个爆炸梯度问题吗?我应该使用渐变裁剪还是批量归一化?
【问题讨论】:
标签: machine-learning deep-learning conv-neural-network gradient-descent backpropagation