2017-04-22 33 views
2

我是新来的神经网络,我试图建立一个超过1隐藏层的超简单神经网络。神经网络:计算隐藏层中的错误

当在神经网络的训练阶段调整权重时,权重的调整程度部分取决于这个神经元对下一层神经元的贡献程度。因此,我们需要知道下一层的错误。

由于我们的训练数据已经为我们提供了预期的输出,所以我们只需要使用输出层(简单地说,目标输出),计算这个只有一个隐藏层是微不足道的。当存在多个隐藏层时,计算误差变得不重要。也就是说,如果我们有10个隐藏层并且我们在第5层,那么我们怎么知道第6层的错误是什么?

感谢

+0

您是否指的是第6层权重关于损失函数的错误派生? –

+0

然后,它应该很容易通过使用反向传播 –

+0

派生我相信如此,我对此也是相当新的。一个图层中的神经元的误差被计算为近似(目标出)^ 2。我想知道如何计算第6层中的某个神经元的目标。 –

回答

1

假设我们的神经网络输出值和实际地面实况由损失函数,例如,均方误差(回归的情况下)相关:

在哪里:

是层的权重,而是应用于同一层的所有神经元响应的激活函数。

为了从输出层传播模型权重的误差,我们可以在误差损失函数和依赖于模型参数(权重或偏差)的因子之间应用链规则。举例来说,我们发现,涉及的损失函数和输出层的权值误差导数:  ,因为它遵循:

正如你可以推断出,我们可以应用相同的程序来计算误差导数,通过每个激活直到网络的较低层。例如,让我们backpropagate错误直到层

这个过程也可以适用于偏压,直至输入层前的层。

我希望这个反向传播总结能够给你一些有关神经网络的实际实现的实际见解,在这种情况下,一个前馈神经网络。如果您想了解有关反向传播的更多详细信息,请参阅斯坦福大学向后传播的UFLDL教程:http://ufldl.stanford.edu/wiki/index.php/Backpropagation_Algorithm

另外,如果您想了解更多适合计算机视觉应用的卷积神经网络,我推荐CS231n课程笔记(其中还有一个关于反向传播的课程),它们可以在:http://cs231n.github.io/