我一直在尝试了解反向传播在神经网络中的工作原理,但尚未找到一个从非技术角度出发的好解释。
反向传播是如何工作的?它是如何从提供的训练数据集中学习的?我将不得不编写代码,但在编写之前,我需要对它有更深入的理解。
回答:
反向传播的逻辑与前馈非常相似。不同之处在于数据流的方向。在前馈步骤中,你有输入和由此观察到的输出。你可以将值向前传播以训练前面的神经元。
在反向传播步骤中,你无法知道每个神经元中发生的错误,只能知道输出层中的错误。计算输出节点的错误很简单——你可以将神经元的输出与训练集中该实例的实际输出之间的差异进行比较。隐藏层中的神经元必须从中修正它们的错误。因此,你必须将错误值传回给它们。通过这些值,隐藏层的神经元可以使用前一层的错误的加权和来更新它们的权重和其他参数。
前馈和反向传播步骤的逐步演示可以在这里找到这里。