我在一个训练周期中使用多少次训练数据? 假设我有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行,直到错误消失为止?
我希望有人可以提供帮助
答案 0 :(得分:6)
每个训练时期应该使用训练集的每个实例。
训练纪元是整个数据集的完整循环。
在循环数据集并计算增量之后,您应该调整网络的权重。然后,您可以在神经网络上执行新的前向传递并执行另一个训练时期,循环遍历训练数据集。
图形表示
可以找到一个非常棒的反向传播图形表示at this link.
有两种方法可以训练您的网络对数据集执行分类。最简单的方法称为单步或在线学习。这是您在大多数文献中都会找到的方法,它也是最快收敛的方法。在训练网络时,您将计算每个图层的增量并调整数据集的每个实例的权重。
因此,如果你有一个60个实例的数据集,这意味着你应该在训练纪元结束之前调整权重60次。
另一种方法称为批量培训或离线学习。这种方法通常会产生具有较低残差的网络。 在训练网络时,您应该为每个数据集实例计算每个层的增量,然后最终平均各个增量并每个时期更正权重一次。
如果你有一个60个实例的数据集,这意味着你应该在训练纪元结束之前调整一次权重。