对batchsize的浅显理解

下午的时候突然想到这个经常见的东西:batchsize

那就把思路捋一遍叭

用很笨的方法理解:(借鉴这个推文

游戏:贴鼻子

Train

假设甲是贴鼻子的人

A,B,C,D,E,F,G,H人(batchsize=8)是提出移动建议的人(左移2cm,右移3cm这样子),这时候甲 会根据8个人的建议进行移动(可能他会取平均,中位数,众数等优化算法),而且甲学习东西也是有快慢的,学的太快了反而可能会不好(因为最后的人可能提不了建议就已经贴到鼻子了,这是学习率)并且他把他前进的记录记下来方便他后续做决定(反向传播)

然后呢,换一批人I,J,K,L,M,N,O,P继续重复以上,甲继续移动

最后所有人都完成提建议,也就是一轮结束(epoch)

也可以进行多次的轮数(如200 epoches)

最后看他能不能找到贴鼻子(train acc)

Test

这次换全新的一批人a,b,c,d(batchsize=4)进行提建议,并且由于甲已经经过训练所以他很轻车熟路。

然后换一批人e,f,g,h继续提建议

最后所有人都提完建议,就是一轮结束(epoch)

也可以进行多次的轮数(如200 epoches)

最后看他能不能找到贴鼻子(test acc)

到此才能评价 甲 在找鼻子的过程中的能力是否强

最后正经聊一聊batchsize

        比如我已经12000个点,想进行一个线性回归预测,这时候batchsize如何工作呢?

        设定batchsize=4吧,首先网络根据这4个点生成一条直线。然后呢再传进来4个点,直线的斜率会根据之前的结果和这4个点进行一个偏移。直到12000个点全都分4个4个地完成了后,就是1个epoch。

        batchsize和learn是配合着来的,batchsize太小的话,learn太大反而会进行剧烈的梯度下降进而整个训练变得不好了。而且batchsize会影响epoch的时间。

        batchsize太小,震荡严重不利于收敛,batchsize太大,容易陷入局部极小值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值