据我了解,对于使用梯度下降的算法,我们必须多次将数据传递给算法,以便找到最佳值。
所以一个时期意味着前向反向传播(以及使用梯度下降更新权重)只进行一次,为了找到我们需要多次运行算法的最小值?
还是在一个时期内多次完成前向-反向传播组合(例如对于传递到输入层的每个数据输入),直到找到该时期的最小值?
据我了解,对于使用梯度下降的算法,我们必须多次将数据传递给算法,以便找到最佳值。
所以一个时期意味着前向反向传播(以及使用梯度下降更新权重)只进行一次,为了找到我们需要多次运行算法的最小值?
还是在一个时期内多次完成前向-反向传播组合(例如对于传递到输入层的每个数据输入),直到找到该时期的最小值?
这取决于梯度下降的类型或您的批量大小:一个时期意味着您的神经网络 (NN) 已对您的训练数据的所有示例应用前向传递,即它已“看到”所有训练数据。现在这样做你至少有两个选择(让是训练数据中的样本数):
您可以在示例的每次前向传递之后运行反向传播并相应地更新您的权重。这通常实现为随机梯度下降 (SGD),批量大小为 1,意味着您运行反向传播每个时代的次数。
或者,您可以首先对所有训练数据运行前向传递,然后运行反向传播并相应地更新您的权重。这称为批量梯度下降,批量大小为并且意味着您每个时期运行一次反向传播。
通常应用这两者的混合,以便,称为小批量梯度下降。按照上面的解释,这意味着你将运行反向传播每个时代的次数。
这篇博文也提供了很好的解释。