训练神经网络中的Epoch和Iteration

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了训练神经网络中的Epoch和Iteration相关的知识,希望对你有一定的参考价值。

参考技术A

神经网络的训练中我们常常能遇到 Epoch Iteration 这两个不同的词。

两个词都表示“轮次”的意思,显然这两个“轮次”的含义并不相同。

在解释这两个词的不同之前,我们先引入三种梯度下降策略:
1.Batch Grandient Descent(BGD,批梯度下降)
2.Stochastic Gradient Descent(SGD,随机梯度下降)
3.Mini-Batch Gradient Descent(MBGD,小批量梯度下降)

BGD :每次迭代的时候用所有的样本来参与参数的更新。这种方法需要同时把所有的样本都加载进内存进行计算,这样无疑会导致内存的负载过大。

SGD :每次迭代使用一个样本来对参数进行更新。这种方法虽然速度快,但单个样本的损失往往不能代表总体样本的损失情况,而且单个样本的损失往往容易受到噪声的影响,所以这种方法往往难以收敛。

MBGD :是对上面两种策略的折中,相当于每次迭代使用 batch_size 个样本来对参数进行更新。若是batch_size选择合适,则每次迭代的损失既能表征总体的损失的情况,也能降低内存的负载压力,提升内存的利用率,也提升网络训练的速度。

BatchSize :一次训练所选取的样本数。

Iteration :使用一个batch_size数量的样本训练一次。 一个Iteration,参数更新一次。

Epoch :所有的样本都训练一次,即(total / batch_size)个Iteration的训练。 一个Epoch,参数更新了(total / batch_size)次

epoch和iteration的区别

epoch和iteration区别在于数量的问题。

iteration:1个iteration等于使用batchsize个样本训练一次;
epoch:1个epoch等于使用训练集中的全部样本训练一次;

比如要做100次iteration才等于做1次epoch训练。

epoch和iteration都是指的深度学习中的。

epoch

英 [ˈi:pɒk]   美 [ˈepək]  

n.时期;纪元;世;新时代

复数: epochs

例句:

1 The birth of Christ was the beginning of a major epoch of world history. 

基督诞生是世界历史上一个重要纪元的开端。

2 Two main glacial epochs affected both areas during the last 100 million years of Precambrian times. 

在前寒武纪的最后1亿年中,两个主要的冰川时期对两个地区都产生了影响。

3 The Renaissance was an epoch of unparalleled cultural achievement. 

iteration

英 [ˌɪtəˈreɪʃn]   美 [ˌɪtəˈreʃən]  

n.反复;重述;重述的事;[计算机]循环

文艺复兴是一个文化上取得空前成就的时代。

例句:

1、 This paper improves the inversion accuracy by means of iteration inversion of the sea-watervelocity and bottom velocity. 

同时迭代反演海水速度和海底速度,提高了反演的精度。

2、And gives the formulae of iteration direction and step length. 

并给出了迭代方向和步长的计算公式。

3、We define an iteration as a phase, a milestone, or a period of time. 

我们将一次迭代定义为一个阶段,一个里程碑,或者一个时间段。

参考技术A 深度学习中经常看到epoch、 iteration和batchsize,下面按自己的理解说说这三个的区别:

(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
(2)iteration:1个iteration等于使用batchsize个样本训练一次;
(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;

举个例子,训练集有1000个样本,batchsize=10,那么:
训练完整个样本集需要:
100次iteration,1次epoch。

关于batchsize可以看看这里。
参考技术B 补充一下:一般采用的是mini-batch GD训练,但是有些框架(比如caffe)中的SGD就是mini-batch GD,batch_size就是这么来的。严格的SGD拿单个样本来决定梯度下降方向,收敛速度太慢,实际中不会用,只存在于理论中。

以上是关于训练神经网络中的Epoch和Iteration的主要内容,如果未能解决你的问题,请参考以下文章

epoch和iteration的区别

pytorch epoch, batch, iteration

神经网络 专业术语解释(Step, Batch Size, Iteration,Epoch)

深度学习基础Epoch, Batch, Iteration这三个概念的区别与联系

epoch,iteration,batch,batch_size

2020-07-10epoch、iteration、batch_size的关系和选择