我一直在自学神经网络的误差函数。http://neuralnetworksanddeeplearning.com/chap3.html 解释说,使用交叉熵函数可以避免减速(即如果预测输出与目标输出相差较大,网络学习速度会更快)。作者指出,与输出层相连的权重会忽略导致减速的sigmoid导数函数。
但是,对于更靠后的权重呢?通过推导(我得到的推导结果与使用二次误差函数时相同),我发现这些权重中出现了sigmoid导数项。这不是会导致减速吗?(也许我的推导有误?)
回答:
是的,除了最后一层外,所有使用sigmoid函数的层都会经历学习速度减慢。我认为你的推导是正确的,实际上Quadratic Error
、Sigmoid + BinaryCrossEntropyLoss
和Softmax + SoftmaxCrossEntropyLoss
共享相同的反向传播公式y_i - y
的形式。查看这三种损失函数的代码:L2Loss、BinaryLoss、SoftmaxLoss