你能帮我一个神经网络吗?
如果我有一个任意数据集:
+---+---------+---------+--------------+--------------+--------------+--------------+
| 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 +)时,何时更新权重?在计算数据集中的每一行后,我是否更新它们?
我已经读过批量学习通常不如在线"在线"训练。这意味着最好在每一行之后更新权重,对吗?
我是否理解正确:一个时代就是你在输入数据集中的每一行循环?如果是这样,那意味着在一个纪元中,权重将被更新两次?
然后,总网络错误(见下文)在哪里发挥作用?
TL;博士: 请帮助我了解backprop的工作原理
答案 0 :(得分:0)
通常,您会在数据集中的每个示例之后更新权重(我假设每行的含义)。因此,对于每个示例,您将看到神经网络认为输出应该是什么(将每个神经元的输出存储在过程中)然后反向传播错误。因此,从最终输出开始,将ANN的输出与实际输出(数据集应该是什么)进行比较,并根据学习率更新权重。
学习率应该是一个很小的常数,因为你正在为每个例子校正权重。并且一个纪元是通过数据集中每个示例的一次迭代。