我有一个神经网络,我计算输出层的delta如下:
delta_L = Output(i) - L;
这样工作得很好。但是如果我改成:
delta_L = L - Output(i);
那么就不工作了。(尽管Andrew Ng的课程推荐第二种)
为什么?
回答:
我们有一个具有2个隐藏层的3层神经网络,采用标准符号显示如下:
成本函数是训练数据集上的平方损失的总和(或平均值)(用于回归,具有连续值输出)
反向传播表达式如下:
如你所见,delta_L
在你的符号中是 output[i] - L
,假设 L=y
是输出变量的实际值,而 a=output[i]
是神经网络的预测,这个表达式与Andrew Ng课程中的一致,参考这篇文章以了解更多细节。我们也可以展示分类/交叉熵损失的情况是相同的。