反向传播:何时更新权重?

时间:2015-04-06 19:57:50

标签: machine-learning neural-network backpropagation

你能帮我一个神经网络吗?

如果我有一个任意数据集:

+---+---------+---------+--------------+--------------+--------------+--------------+
| i | Input 1 | Input 2 | Exp.Output 1 | Exp.Output 2 | Act.output 1 | Act.output 2 |
+---+---------+---------+--------------+--------------+--------------+--------------+
| 1 |   0.1   |   0.2   |      1       |      2       |      2       |       4      |
| 2 |   0.3   |   0.8   |      3       |      5       |      8       |      10      |
+---+---------+---------+--------------+--------------+--------------+--------------+

假设我有x个隐藏层,每个层有不同数量的神经元和不同类型的激活函数。

运行反向传播(尤其是iRprop +)时,何时更新权重?在计算数据集中的每一行后,我是否更新它们?

我已经读过批量学习通常不如在线"在线"训练。这意味着最好在每一行之后更新权重,对吗?

我是否理解正确:一个时代就是你在输入数据集中的每一行循环?如果是这样,那意味着在一个纪元中,权重将被更新两次?

然后,总网络错误(见下文)在哪里发挥作用?

[image,来自here。]


TL;博士: 请帮助我了解backprop的工作原理

1 个答案:

答案 0 :(得分:0)

通常,您会在数据集中的每个示例之后更新权重(我假设每行的含义)。因此,对于每个示例,您将看到神经网络认为输出应该是什么(将每个神经元的输出存储在过程中)然后反向传播错误。因此,从最终输出开始,将ANN的输出与实际输出(数据集应该是什么)进行比较,并根据学习率更新权重。

学习率应该是一个很小的常数,因为你正在为每个例子校正权重。并且一个纪元是通过数据集中每个示例的一次迭代。