关于batch_size的理解

batch_size:一次训练所选取的样本数; batch_size的大小影响内存的使用情况,同时也影响模型的优化程度和速度。
batch_size设置合适时的优点:
1.并行化提高了内存的利用率,提高了训练速度
2.使得单个epoch的训练次数变少了,如果要达到相同的精度,需要增加epoch迭代次数
3.使得梯度下降的方向更加准确,batch_size=1,梯度变来变去,网络很难收敛;batch_size越大,其确定的下降方向越准
batch_size的选择决定了梯度下降的方向;如果数据量较小,可以选择全数据集的形式;

batchsize和梯度下降的关系

我们知道,梯度下降需要求得每个参数的梯度,在求每个参数的梯度时,我们是从loss反向传播的,loss的计算和选择多少个样本有关,选择一个样本来计算loss,也就是把batchsize设置成1,这样求得的loss是一个样本的loss图像,和通过n个样本求得的loss图像是不同的,然后我们通过求该loss 下的梯度对参数进行更新,这对应着随机梯度下降;如果batchsize等于4,那我们求得的loss图像就是关于这4个样本,在求每个参数的梯度时,也是通过这4个样本求得,这对应着小批量梯度下降;如果选择全量数据,对应着全批量梯度下降。
1.batchsize=1与随机梯度下降:随机梯度下降就是随机选择一个样本进行前向传播求得loss,然后计算该loss下的参数梯度,参数梯度是通过一个样本计算的。
好处:每次只使用1个样本,能跳出局部最小值和鞍点,泛化能力强
坏处:耗时间,不能并行训练,用时间换空间,过大的样本差异会使得训练震荡,收敛比较慢
2.batchsize>1与小批量梯度下降:
好处:就是其他两个的坏处
3.batchsize=n与全批量梯度下降:
容易陷入局部最小值或鞍点,收敛比较慢(不容易收敛,因为更新的参数要符合所有样本),要求显存大

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石头猿rock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值