您当前的位置: 首页 >  网络

惊鸿一博

暂无认证

  • 1浏览

    0关注

    535博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

深度学习笔记_基本概念_神经网络中的epoch、batch_size和iteration

惊鸿一博 发布时间:2021-09-16 16:45:48 ,浏览量:1

目录

一、epoch、batch_size和iteration名词解释,关系描述

二、问题思考

三、总结

一、epoch、batch_size和iteration名词解释,关系描述
  • epoch:所有的样本空间跑完一遍就是一个epoch;
  • batch_size:指的是批量大小,也就是一次训练的样本数量。我们训练的时候一般不会一次性将样本全部输入模型,而是分批次的进行训练,每一批里的样本数量就是batch_size;
  • iteration:1个iteration就是一个batch_size训练结束。

  他们之间是存在数学关系的,举个例子,假如一共有2000个样本,我设置batch_size为100,那么将所有样本训练完成1次的话,iteration就是2000/100=20个,这样就很清晰了。

二、问题思考

  通常情况下,batch_size和epoch作为超参,需要自己设定。但要明确,只有在数据很庞大的时候(在机器学习和神经网络中,数据一般情况下都会很大),我们才需要使用epoch,batch size,iteration这些术语,在这种情况下,一次性将数据输入计算机是不可能的。因此,为了解决这个问题,我们需要把数据分成小块,一块一块的传递给计算机,在每一步的末端更新神经网络的权重,拟合给定的数据。那么问题就来了:

  • batch_size设置多少比较合适呢?

   设置batch_size是会影响到我们模型的优化速度和程度的,它是在寻找一种内存效率和内存容量之间的平衡,是很重要的。那么batch_size设置为多少比较合适呢,准确的说,没有一个标准答案,需要根据自己的数据量大小来定。

     适当的增加batch_size有以下的优势:

           1.通过并行化提高内存利用率。

      2.单次epoch的迭代次数减少,提高运行速度。

      3.适当的增加Batch_Size,梯度下降方向准确度增加,训练震动的幅度减小。

      但也要清楚地认识到:相对于正常数据集,如果batch_size过小,训练数据就会非常难收(每一次的参数是不一样的哦),以使得我们的参数最优化,从而损失函数最小。随着epoch数量增加,神经网络中的权重的更新次数也在增加,曲线也从欠拟合变得过拟合,所以合适的epoch次数也是一个重要的参数。

三、总结
  1. epoch、batch_size、iteration都是模型的超参数,不存在最好的,只有最合适的;
  2. 他们存在数学关系,指定了epoch和batch_size就能知道iteration是多少了;
  3. 他们都与我们模型训练的最终结果密切相关,参数的最优化、训练的速度、模型的过拟合、欠拟合都或多或少有关系,所以搞清楚这几个基础概念很有必要。

关注
打赏
1663399408
查看更多评论
立即登录/注册

微信扫码登录

0.0408s