训练数据量中关于batch_size,iteration和epoch的概念

2022-09-02 20:04:52 浏览数 (1)

batch_size

  • 机器学习使用训练数据进行学习,针对训练数据计算损失函数的值,找出使该值尽可能小的参数。但当训练数据量非常大,这种情况下以全部数据为对象计算损失函数是不现实的。因此,我们从全部数据中选出一部分,作为全部数据的“近似”。神经网络的学习也是从训练数据中选出一批数据(称为 mini-batch,小批量),然后对每个mini-batch进行学习。比如,从60000个训练数据中随机选取100个数据,用这100个数据进行学习,这种学习方式成为 mini-batch 学习。 用mini-batch的方法定义batch_size,把数据分成小批量,每小批的大小batch_size=100

iteration

  • 迭代,即训练学习循环一遍(寻找最优参数(权重和偏置))。比如 iteration=30000,循环一遍即执行了30000次迭代。当 batch_size=100,可以说执行完一遍 iteration,即执行了30000次 batch_size

epoch

  • epoch 是一个单位。一个 epoch表示学习中所有训练数据均被使用过一次时的更新次数。比如,对于1000个训练数据,用大小为100个数据的mini-batch(batch_size=100)进行学习时,重复随机梯度下降法100次,所有的训练数据就都被“看过”了。此时,10次就是一个 epoch。(即:遍历一次所有数据,就称为一个 epoch

实例

  • 训练数据量:60000 mini-batch方法:batch_size = 100 迭代次数:iteration = 30000 平均每个epoch的重复次数:60000 / 100 = 600

当迭代进行到600次时,即视为完成了一个epoch 30000 / 600 = 50

  • 从这个实例可以看出,执行完一遍 iteration,完成了50个 epoch

0 人点赞