训练多层感知器时,历元和迭代的区别是什么?


当前回答

我认为迭代相当于批SGD中的单批正向+反向。Epoch将遍历整个数据集一次(正如其他人提到的那样)。

其他回答

Epoch和iteration描述的是不同的东西。


时代

epoch描述了算法看到整个数据集的次数。因此,每当算法看到数据集中的所有样本时,就完成了一个epoch。

迭代

迭代描述了一批数据通过算法的次数。在神经网络的例子中,这意味着向前传递和向后传递。因此,每当你通过神经网络传递一批数据时,你就完成了一次迭代。


例子

举个例子可能会更清楚。

假设您有一个包含10个示例(或样本)的数据集。批处理大小为2,并指定算法运行3个epoch。

因此,在每个epoch中,您有5个批次(10/2 = 5)。每个批次都通过算法,因此每个epoch有5个迭代。 因为您已经指定了3个epoch,所以总共有15个迭代(5*3 = 15)用于训练。

一个epoch包含几个迭代。这就是这个时代。让我们把epoch定义为训练神经网络时在数据集上的迭代次数。

要理解它们之间的区别,你必须理解梯度下降算法及其变体。

在我开始回答这个问题之前,我想先了解一下背景。

批处理是完整的数据集。它的大小是可用数据集中训练示例的总数。

小批量大小是学习算法在单次传递(向前和向后)中处理的示例数量。

迷你批是给定迷你批大小的数据集的一小部分。

迭代是算法已经看到的数据批次的数量(或者简单地说,算法已经在数据集上完成的次数)。

epoch是一个学习算法看到完整数据集的次数。现在,这可能不等于迭代的次数,因为数据集也可以小批量处理,本质上,一次传递可能只处理数据集的一部分。在这种情况下,迭代的数量不等于epoch的数量。

在批处理梯度下降的情况下,整个批处理在每个训练通过。因此,梯度下降优化器的收敛比Mini-batch梯度下降更平滑,但需要更多的时间。如果存在最优条件,分批梯度下降法保证能找到最优条件。

随机梯度下降是小批量梯度下降的一种特殊情况,其中小批量大小为1。

许多神经网络训练算法都涉及到将整个数据集多次呈现给神经网络。通常,整个数据集的单一表示被称为“epoch”。相比之下,一些算法一次只向神经网络提供一个案例的数据。

“迭代”是一个更一般的术语,但既然你和“epoch”一起问了这个词,我假设你的来源是指一个单一案例对神经网络的呈现。

根据我的理解,当你需要训练一个NN时,你需要一个包含许多数据项的大型数据集。在训练神经网络时,数据项一个一个地进入神经网络,这称为迭代;当整个数据集通过时,它被称为epoch。