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

目录

1、名词解释

2、换算关系

3、举例说明

1、名词解释

    Step(步):训练模型的步数(遍历学习一次训练集数据所需要的Batch数量),跟iteration一样。

    Batch Size(批尺寸):计算梯度所需的样本数量,太小会导致效率低下,无法收敛。太大会导致内存撑不住,Batch Size增大到一定程度以后,其下降方向变化很小了,所以Batch Size是一个很重要的参数。

    Epoch(回合):代表样本集内所有的数据经过了一次训练。

    Iteration(迭代):理解迭代,只需要知道乘法表或者一个计算器就可以了。迭代是batch需要完成一个epoch的次数。记住:在一个epoch中,batch数和迭代数是相等的。比如说一个有2000个训练样本的数据集。将2000个样本分成大小为500的batch,那么完成一个epoch需要4个iteration/step。

2、换算关系

Number of Batches = \frac{Training Set Size}{BatchSize}

iteation = \frac{exampleNums*epoch}{batchsize}

    实际上,梯度下降的几种方式的根本区别就在于上面公式中的Batch Size不同。

神经网络 专业术语解释(Step、Batch Size、Iteration、Epoch)_第1张图片

 *注:上表中Mini-Batch的Batch个数为N/B+1是针对未整除的情况。整除则是N/B。

3、举例说明

    CIFAR10数据集有50000张训练图片,10000张测试图片,现在选择Batch Size = 256对模型进行训练。

  (1)每个Epoch要训练的图片数量:50000

  (2)训练集具有的Batch个数:50000/256 = 195+1 = 196

  (3)每个Epoch需要完成的Batch个数:196

  (4)每个Epoch具有的Iteration个数:196

  (5)每个Epoch中发生模型权重更新的次数:196

  (6)训练10代后,模型权重更新的次数:196*10 = 1960

    不同代的训练,其实用的是同一个训练集的数据。第1代和第10代虽然用的都是训练集的五万张图片,但是对模型的权重更新值确是完全不同。因为不同代的模型处于代价函数空间上的不同位置,模型的训练代越靠后,越接近谷底,其代价越小。

你可能感兴趣的:(AI,神经网络,batch,深度学习)