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

obs*_*kie 9 artificial-intelligence backpropagation neural-network

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

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)
Run Code Online (Sandbox Code Playgroud)

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

我希望有人可以帮忙

jor*_*nkg 6

培训网络

您应该在每个训练时期使用一次训练集的每个实例.

一个训练时期是通过你的数据集一个完整的周期.

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

图形表示
可以在此链接中找到非常好的反向传播图形表示.


单步培训

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

因此,如果您有60个实例的数据集,这意味着您应该在训练时期结束之前调整权重60次.

批量培训

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

如果您有60个实例的数据集,这意味着您应该在训练时期结束前调整一次权重.