深度学习基础概念-Batch、Iteration、Epoch理解

1、概念理解

Batch、Iteration、Epoch是在模型训练阶段的概念。

在模型训练时,我们选择优化算法,如梯度下降法(全批量梯度下降法BGD、小批量梯度下降法mini-Batch、随机梯度下降法SGD),对模型参数进行调整训练。

那么,这里梯度下降法使用的数据量即为batch_size,整个样本N需要的batchs数为:N/batch_size。

而使用梯度下降法完成一次参数更新,称为一次迭代,即 iteration。

整个样本训练完成需要的迭代次数iterations = batchs = N /batch_siez ,也等于 1次Epoch。

即一次Epoch意味着整个样本集训练完成。

2、关系理解

batch_size:在训练集中选择一组样本用来更新权值。1个batch包含的样本的数目,通常设为2的n次幂,常用的包括64,128,256。 网络较小时选用256,较大时选用64。

Number of batchs = N /batch_size, 一次batch完成一次参数迭代。

一次Epoch完成一次整体样本的迭代。不同的训练样本、不同的训练模型对应不同的Epoch,没有统一适用的范围标准。

深度学习基础概念-Batch、Iteration、Epoch理解_第1张图片

3、例子说明

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

每个 Epoch 要训练的图片数量:50000
训练集具有的 Batch 个数:50000 / 256 = 195 + 1 = 196
每个 Epoch 需要完成的 Batch 个数:196
每个 Epoch 具有的 Iteration 个数:196
每个 Epoch 中发生模型权重更新的次数:196
训练 10 代后,模型权重更新的次数:196 * 10 = 1960
不同代的训练,其实用的是同一个训练集的数据。第 1 代和第 10 代虽然用的都是训练集的五万张图片,但是对模型的权重更新值却是完全不同的。因为不同代的模型处于代价函数空间上的不同位置,模型的训练代越靠后,越接近谷底,其代价越小。

 

你可能感兴趣的:(神经网络和深度学习,概念理解)