神经网络常见参数解释:epoch、batch、batch size、step、iteration

epoch,batch,size,step,iteration · 浏览次数 : 0

小编点评

**Epoch** * 将训练数据集中的所有样本都过一遍的训练过程。 * 一个epoch中,训练算法会按照设定的顺序将所有样本输入模型进行前向传播、计算损失、反向传播和参数更新。 * 一个epoch通常包含多个step。 **Batch** * 一般翻译为“批次”,表示一次性输入模型的一组样本。 * 在神经网络的训练过程中,训练数据往往是很多的,比如几万条甚至几十万条,如果我们一次性将这上万条的数据全部放入模型,对计算机性能、神经网络模型学习能力等的要求太高了;那么就可以将训练数据划分为多个batch,并随后分批将每个batch的样本一起输入到模型中进行前向传播、损失计算、反向传播和参数更新。 **Step** * 表示在一个epoch中模型进行一次参数更新的操作。 * 通俗地说,在神经网络训练过程中,每次完成对一个batch数据的训练,就是完成了一个step。 **Iteration** * 在训练过程中经过一个step的操作。 * 一个iteration包括了一个step中前向传播、损失计算、反向传播和参数更新的流程。 * 在某些情况下,step和iteration可能会有细微的区别——有时候iteration是指完成一次前向传播和反向传播的过程,而step是指通过优化算法对模型参数进行一次更新的操作。但是绝大多数情况下,我们认为二者是一样的即可。

正文

  本文介绍在机器学习、深度学习的神经网络模型中,epochbatchbatch sizestepiteration等名词的具体含义。

  epoch:表示将训练数据集中的所有样本都过一遍(且仅过一遍)的训练过程。在一个epoch中,训练算法会按照设定的顺序将所有样本输入模型进行前向传播、计算损失、反向传播和参数更新。一个epoch通常包含多个step

  batch:一般翻译为“批次”,表示一次性输入模型一组样本。在神经网络的训练过程中,训练数据往往是很多的,比如几万条甚至几十万条——如果我们一次性将这上万条的数据全部放入模型,对计算机性能、神经网络模型学习能力等的要求太高了;那么就可以将训练数据划分为多个batch,并随后分批将每个batch的样本一起输入到模型中进行前向传播、损失计算、反向传播和参数更新。但要注意,一般batch这个词用的不多,多数情况大家都是只关注batch size的。

  batch size:一般翻译为“批次大小”,表示训练过程中一次输入模型的一组样本的具体样本数量。前面提到了,我们在神经网络训练过程中,往往需要将训练数据划分为多个batch;而具体每一个batch有多少个样本,那么就是batch size指定的了。

  step:一般翻译为“步骤”,表示在一个epoch中模型进行一次参数更新的操作。通俗地说,在神经网络训练过程中,每次完成对一个batch数据的训练,就是完成了一个step。很多情况下,stepiteration表示的是同样的含义。

  iteration:一般翻译为“迭代”,多数情况下就表示在训练过程中经过一个step的操作。一个iteration包括了一个step中前向传播、损失计算、反向传播和参数更新的流程。当然,在某些情况下,stepiteration可能会有细微的区别——有时候iteration是指完成一次前向传播和反向传播的过程,而step是指通过优化算法对模型参数进行一次更新的操作。但是绝大多数情况下,我们就认为二者是一样的即可。

  以上是对这些名词的解释,我们将他们带入实际的例子就更好理解了。

  假设我们现在有一个训练数据集(这个数据集不包括测试集),其中数据的样本数量为1500。那么,我们将这1500条数据全部训练1次,就是一个epoch。其中,由于数据量较大(其实1500个样本在神经网络研究中肯定不算大,但是我们这里只是一个例子,大家理解即可),因此我们希望将其分为多个batch,分批加以训练;我们决定每1批训练100条数据,那么为了将这些数据全部训练完,就需要训练15批——在这里,batch size就是100,而batch就是15。而前面我们提到,每次完成对一个batch数据的训练,就是完成了一个step,那么stepiteration就也都是15

  以上是我们对这一数据集加以1次训练(1epoch)的情况,而一般情况下我们肯定是需要训练多次的,也就是多个epoch。我们假设我们需要训练3epoch,相当于需要将这1500个样本训练3次。那么,stepiteration都会随着epoch的改变而发生改变——二者都变为45,因为15 * 3。但是,batch依然是15,因为其是在每一个epoch的视角内来看待的,和epoch的具体大小没有关系。

  至此,大功告成。

与神经网络常见参数解释:epoch、batch、batch size、step、iteration相似的内容:

神经网络常见参数解释:epoch、batch、batch size、step、iteration

本文介绍在机器学习、深度学习的神经网络模型中,epoch、batch、batch size、step与iteration等名词的具体含义~

神经网络中神经元的权重更新

前段时间写过一篇介绍神经网络的入门文章:神经网络极简入门。那篇文章介绍了神经网络中的基本概念和原理,并附加了一个示例演示如何实现一个简单的神经网络。 不过,在那篇文章中并没有详细介绍神经网络在训练时,是如何一步步找到每个神经元的最优权重的。本篇介绍神经网络训练时,常用的一种权重更新的方式--梯度下降

神经网络图像数据训练集成应用 | 可视化图像处理 | 可视化训练器

〇、写在前面 本应用基于开源UI框架PyDracula进行开发,除去最基本的UI框架外,所有功能的前后端实现都由我个人开发完成,但也有部分UI(如开关控件和进度条)是参考其他大佬的分享。 这个应用是我的本科毕业设计,但因为个人能力不足,姑且只能使用Python+PySide6开发。 开发这个应用的启

机器学习笔记(3): 神经网络初步

神经网络应该由若干神经元组成。 前面的每一个神经元都会给到一个参数,将传递的所有参数看作一个向量 \(\vec x\),那么此神经元的净输入为: \[z = x \omega + b \]其中 \(\omega\) 称为权重向量。 这里认为 \(x\) 是行向量,而 \(\omega\) 是列向量。

神经网络极简入门

神经网络是深度学习的基础,正是深度学习的兴起,让停滞不前的人工智能再一次的取得飞速的发展。 其实神经网络的理论由来已久,灵感来自仿生智能计算,只是以前限于硬件的计算能力,没有突出的表现,直至谷歌的AlphaGO的出现,才让大家再次看到神经网络相较于传统机器学习的优异表现。 本文主要介绍神经网络中的重

图神经网络综述:模型与应用

图神经网络综述:模型与应用 引言 图是一种数据结构,它对一组对象(节点)及其关系(边)进行建模。近年来,由于图结构的强大表现力,用机器学习方法分析图的研究越来越受到重视。图神经网络(GNN)是一类基于深度学习的处理图域信息的方法。由于其较好的性能和可解释性,GNN 最近已成为一种广泛应用的图分析方法

卷积神经网络-AlexNet

AlexNet 一些前置知识 top-1 和top-5错误率 top-1错误率指的是在最后的n哥预测结果中,只有预测概率最大对应的类别是正确答案才算预测正确。 top-5错误率指的是在最后的n个预测结果中,只要预测概率最大的前五个中含有正确答案就算预测正确。 max-pooling层 最大池化又叫做

MATLAB神经网络工具箱使用介绍

本文介绍MATLAB软件中神经网络拟合(Neural Net Fitting)工具箱的具体使用方法。 在MATLAB人工神经网络ANN代码这篇文章中,我们介绍了MATLAB软件中神经网络(ANN)的纯代码实现;而在MATLAB软件中,其实基于神经网络拟合工具箱,就可以点点鼠标实现神经网络的回归。本文

基于神经网络的呼吸音分类算法

简介 在过去的几十年里,许多机器学习(ML)方法被引入来分析呼吸周期的声音,包括爆裂声、咳嗽声和喘息声[1-6]。然而,几乎所有传统的ML模型都完全依赖于手工制作的功能。此外,需要高度复杂的预处理步骤来利用设计的特征[4-6]。因此,仅仅基于ML的模型可能对肺部声音中的外部/内部噪声不具有鲁棒性,并

基于神经网络的柯氏音血压计

具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI 前言 虽然血压(BP)的测量现在广泛地由自动无创血压(NIBP)监测设备进行,因为它们不需要熟练的临床医生,也不存在并发症的风险,但其准确性仍存疑。本研究开发了一种新的基于端到端深度学习的算法,该算法直接