【发布时间】:2018-06-20 09:48:20
【问题描述】:
我正在用 c# 制作一个神经网络系统,而不使用任何库或 Accord.Net。但我坚持如何反向传播我的错误。我必须包括我已经传播到下一层的所有层,还是只有前一层进入方程?
编辑以获取更多信息:
我的网络结构大多是动态的。它使用用户输入创建一个神经网络,其中包含每层的层数和节点数。它具有基于使用的数据集创建的输入和输出层。它可以在层上使用线性、sigmoid、tanh 或 relu 激活函数,并且您可以在每层混合匹配它们。
我确实了解反向传播的工作原理及其用途。但是我看到的每个例子都只在 3 个分层结构上使用它,1 个输入层,1 个隐藏层和 1 个输出层。他们计算输出层误差并更新其权重。然后他们计算包含输出层的隐藏层误差。
我的问题从这里开始。它们没有显示好像只包括隐藏层之前的层(认为你从右到左进行反向传播),或者直到输出层的所有层都包含在误差方程中。
用于可视化
输入层 ---> 隐藏层 1 ---> 隐藏层 2 ---> 输出层
在这个例子中,当我计算隐藏层1的误差和权重更新时,我是只包括隐藏层2,还是隐藏层2+输出层?
【问题讨论】:
标签: c# neural-network deep-learning backpropagation