在神经网络反向传播算法中循环训练数据

时间:2014-03-24 16:31:50

标签: artificial-intelligence neural-network backpropagation

我在一个训练周期中使用多少次训练数据? 假设我有60个训练数据。我通过第1排进行前传,并使用向后传球的结果调整重量。使用如下的S形函数:

Forward pass 
Si = sum of (Wi * Uj)
Ui = f(Si) = 1 / 1 + e^ - Si

Backward pass 
Output Cell = (expected -Ui)(f'(Si)), where 
f'(Si) = Ui(1-Ui)

然后我是否通过第2行并执行与第1行相同的过程,还是绕过第1行,直到错误消失为止?

我希望有人可以提供帮助

1 个答案:

答案 0 :(得分:6)

培训网络

每个训练时期应该使用训练集的每个实例。

  

训练纪元是整个数据集的完整循环。

在循环数据集并计算增量之后,您应该调整网络的权重。然后,您可以在神经网络上执行新的前向传递并执行另一个训练时期,循环遍历训练数据集。

图形表示
可以找到一个非常棒的反向传播图形表示at this link.


单步训练

有两种方法可以训练您的网络对数据集执行分类。最简单的方法称为单步或在线学习。这是您在大多数文献中都会找到的方法,它也是最快收敛的方法。在训练网络时,您将计算每个图层的增量并调整数据集的每个实例的权重。

因此,如果你有一个60个实例的数据集,这意味着你应该在训练纪元结束之前调整权重60次。

批量培训

另一种方法称为批量培训或离线学习。这种方法通常会产生具有较低残差的网络。 在训练网络时,您应该为每个数据集实例计算每个层的增量,然后最终平均各个增量并每个时期更正权重一次

如果你有一个60个实例的数据集,这意味着你应该在训练纪元结束之前调整一次权重。