训练神经网络中的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的主要内容,如果未能解决你的问题,请参考以下文章
pytorch epoch, batch, iteration
神经网络 专业术语解释(Step, Batch Size, Iteration,Epoch)
深度学习基础Epoch, Batch, Iteration这三个概念的区别与联系