训练多层感知器时,历元和迭代的区别是什么?
当前回答
要理解它们之间的区别,你必须理解梯度下降算法及其变体。
在我开始回答这个问题之前,我想先了解一下背景。
批处理是完整的数据集。它的大小是可用数据集中训练示例的总数。
小批量大小是学习算法在单次传递(向前和向后)中处理的示例数量。
迷你批是给定迷你批大小的数据集的一小部分。
迭代是算法已经看到的数据批次的数量(或者简单地说,算法已经在数据集上完成的次数)。
epoch是一个学习算法看到完整数据集的次数。现在,这可能不等于迭代的次数,因为数据集也可以小批量处理,本质上,一次传递可能只处理数据集的一部分。在这种情况下,迭代的数量不等于epoch的数量。
在批处理梯度下降的情况下,整个批处理在每个训练通过。因此,梯度下降优化器的收敛比Mini-batch梯度下降更平滑,但需要更多的时间。如果存在最优条件,分批梯度下降法保证能找到最优条件。
随机梯度下降是小批量梯度下降的一种特殊情况,其中小批量大小为1。
其他回答
时代 对整个数据集进行完整的训练,使得每个 例子已经见过一次了。因此,一个epoch表示N/batch 大小训练迭代,其中N是的总数 的例子。 迭代 在训练过程中对模型权重的一次更新。 迭代包括计算参数的梯度 对于单批数据的损失。
奖金:
批处理 在一次迭代中使用的示例集(即一个梯度) 更新)的模型训练。 请参见批大小。
来源:https://developers.google.com/machine-learning/glossary/
根据我的理解,当你需要训练一个NN时,你需要一个包含许多数据项的大型数据集。在训练神经网络时,数据项一个一个地进入神经网络,这称为迭代;当整个数据集通过时,它被称为epoch。
一个epoch包含几个迭代。这就是这个时代。让我们把epoch定义为训练神经网络时在数据集上的迭代次数。
要理解它们之间的区别,你必须理解梯度下降算法及其变体。
在我开始回答这个问题之前,我想先了解一下背景。
批处理是完整的数据集。它的大小是可用数据集中训练示例的总数。
小批量大小是学习算法在单次传递(向前和向后)中处理的示例数量。
迷你批是给定迷你批大小的数据集的一小部分。
迭代是算法已经看到的数据批次的数量(或者简单地说,算法已经在数据集上完成的次数)。
epoch是一个学习算法看到完整数据集的次数。现在,这可能不等于迭代的次数,因为数据集也可以小批量处理,本质上,一次传递可能只处理数据集的一部分。在这种情况下,迭代的数量不等于epoch的数量。
在批处理梯度下降的情况下,整个批处理在每个训练通过。因此,梯度下降优化器的收敛比Mini-batch梯度下降更平滑,但需要更多的时间。如果存在最优条件,分批梯度下降法保证能找到最优条件。
随机梯度下降是小批量梯度下降的一种特殊情况,其中小批量大小为1。
根据谷歌的机器学习术语表,一个纪元被定义为
“对整个数据集进行完整的训练,以便每个示例都被看到一次。因此,一个epoch表示N/batch_size训练迭代,其中N是示例的总数。”
如果你正在训练10个epoch的模型,批大小为6,给定总共12个样本,这意味着:
该模型将能够在2次迭代(12 / 6 = 2)即单个epoch中看到整个数据集。 总的来说,该模型将有2 X 10 = 20个迭代(每个epoch的迭代X无epoch) 每次迭代后,将对损失和模型参数进行重新评估!
推荐文章
- 如何从scikit-learn决策树中提取决策规则?
- 数据挖掘中分类和聚类的区别?
- 主体、使用者和主体之间的意义和区别是什么?
- 什么是分片,为什么它很重要?
- 我在哪里调用Keras的BatchNormalization函数?
- 编程中的术语“上下文”?
- model.eval()在pytorch中做什么?
- 为什么binary_crossentropy和categorical_crossentropy对同一个问题给出不同的性能?
- 覆盖或覆盖
- 火灾vs. Webservice
- 为什么使用softmax而不是标准归一化?
- 为什么两个不同的概念都叫“堆”?
- 一般来说,应该选择哪种机器学习分类器?
- Keras,如何得到每一层的输出?
- 缓冲区是什么意思?