训练多层感知器时,历元和迭代的区别是什么?
当前回答
通常,你会把你的测试集分成小批,让网络从中学习,并让训练在你的层数中一步一步地进行,一直应用梯度下降。所有这些小步骤都可以称为迭代。
一个epoch对应于整个训练集通过整个网络一次。限制这种情况是很有用的,例如对抗过拟合。
其他回答
许多神经网络训练算法都涉及到将整个数据集多次呈现给神经网络。通常,整个数据集的单一表示被称为“epoch”。相比之下,一些算法一次只向神经网络提供一个案例的数据。
“迭代”是一个更一般的术语,但既然你和“epoch”一起问了这个词,我假设你的来源是指一个单一案例对神经网络的呈现。
在神经网络术语中:
一个epoch =所有训练示例的一个向前传递和一个向后传递 批大小=一次向前/向后传递中训练示例的数量。批处理大小越大,所需的内存空间就越大。 迭代次数=通过次数,每次通过使用[批大小]示例的数量。需要明确的是,一次传球=一次向前传球+一次向后传球(我们不把向前传球和向后传球算作两次不同的传球)。
例如:如果你有1000个训练样本,你的批处理大小是500,那么将需要2次迭代来完成1个epoch。
供参考:权衡批大小和迭代次数来训练神经网络
术语“批处理”是模棱两可的:有些人用它来表示整个训练集,有些人用它来指代一次向前/向后传递中的训练示例的数量(就像我在这个回答中所做的那样)。为了避免这种歧义,并明确batch对应于一次正向/向后传递中训练示例的数量,可以使用术语mini-batch。
通常,你会把你的测试集分成小批,让网络从中学习,并让训练在你的层数中一步一步地进行,一直应用梯度下降。所有这些小步骤都可以称为迭代。
一个epoch对应于整个训练集通过整个网络一次。限制这种情况是很有用的,例如对抗过拟合。
要理解它们之间的区别,你必须理解梯度下降算法及其变体。
在我开始回答这个问题之前,我想先了解一下背景。
批处理是完整的数据集。它的大小是可用数据集中训练示例的总数。
小批量大小是学习算法在单次传递(向前和向后)中处理的示例数量。
迷你批是给定迷你批大小的数据集的一小部分。
迭代是算法已经看到的数据批次的数量(或者简单地说,算法已经在数据集上完成的次数)。
epoch是一个学习算法看到完整数据集的次数。现在,这可能不等于迭代的次数,因为数据集也可以小批量处理,本质上,一次传递可能只处理数据集的一部分。在这种情况下,迭代的数量不等于epoch的数量。
在批处理梯度下降的情况下,整个批处理在每个训练通过。因此,梯度下降优化器的收敛比Mini-batch梯度下降更平滑,但需要更多的时间。如果存在最优条件,分批梯度下降法保证能找到最优条件。
随机梯度下降是小批量梯度下降的一种特殊情况,其中小批量大小为1。
时代 对整个数据集进行完整的训练,使得每个 例子已经见过一次了。因此,一个epoch表示N/batch 大小训练迭代,其中N是的总数 的例子。 迭代 在训练过程中对模型权重的一次更新。 迭代包括计算参数的梯度 对于单批数据的损失。
奖金:
批处理 在一次迭代中使用的示例集(即一个梯度) 更新)的模型训练。 请参见批大小。
来源:https://developers.google.com/machine-learning/glossary/
推荐文章
- 如何从scikit-learn决策树中提取决策规则?
- 数据挖掘中分类和聚类的区别?
- 主体、使用者和主体之间的意义和区别是什么?
- 什么是分片,为什么它很重要?
- 我在哪里调用Keras的BatchNormalization函数?
- 编程中的术语“上下文”?
- model.eval()在pytorch中做什么?
- 为什么binary_crossentropy和categorical_crossentropy对同一个问题给出不同的性能?
- 覆盖或覆盖
- 火灾vs. Webservice
- 为什么使用softmax而不是标准归一化?
- 为什么两个不同的概念都叫“堆”?
- 一般来说,应该选择哪种机器学习分类器?
- Keras,如何得到每一层的输出?
- 缓冲区是什么意思?