神经网络:计算隐藏层中的错误

时间:2017-04-22 01:03:56

标签: machine-learning neural-network computer-vision

我是神经网络的新手,我正在尝试建立一个超过1个隐藏层的超简单神经网络。

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

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

由于

1 个答案:

答案 0 :(得分:4)

假设我们的NN输出值和实际基础事实与损失函数相关,例如均方误差(回归情况):

其中:

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

要从输出层传播模型权重的误差,我们只需在误差损失函数和依赖于模型参数(权重或偏差)的因子之间应用链规则。例如,让我们找到与损失函数和输出层权重相关的误差导数:,如下所示:

正如您所推断的,我们可以应用相同的过程来计算误差导数,通过每次激活直到网络的较低层。例如,让我们将错误反向传播到层

此过程也可以应用于偏向,直到输入图层之前的图层。

我希望这个反向传播摘要能够为您提供有关神经网络实际实现的实用见解,在这种情况下,是前馈神经网络。如果您想了解有关反向传播的更多详细信息,请您参考斯坦福大学关于反向传播的UFLDL教程:http://ufldl.stanford.edu/wiki/index.php/Backpropagation_Algorithm

此外,如果您想了解更多关于更适合计算机视觉应用的卷积神经网络,我推荐CS231n课程笔记(其中还有关于反向传播的课程),可在以下网址获得:{{3} }