深度学习之梯度下降法和batch_size对训练的影响

梯度下降法的本质是通过求W和b来寻找损失函数的最小值,具体过程是对损失函数求偏导获得其梯度,以单个训练样本为初始点进行梯度下降,直到得到梯度为0,即导数为0的极小值点。但是由于极小值点并不一定是最小值,因此需要使用多个训练样本求出对应的极小值点,选出损失函数最小值对应的W和b值。

若选择梯度下降法一次训练的样本大小为batch_size,则batch_size个样本对应的损失值的均值才是梯度下降法的损失值。求损失值最小对应的W和b值,由于会话未结束,因此其保存在W和b的变量中。下一次使用batch_size个样本,利用求得的W和b继续求损失值,并更新W和b,直到对于每个样本使用最新的W和b都是最小值(理想情况)。

大的batch size在显存能允许的情况下收敛速度比较快,但有时会陷入局部最小的情况;小的batch size引入的随机性会更大些,有时候能有更好的效果,但是收敛速度会慢一些。而且batch_size的值越小,模型泛化能力越好;batch_size的值越大,模型泛化能力越差。

至于batch_size的大小如何选择,一般情况下,batch_size应该设置成2^n。网上有人说是方便内存/显存分配,GPU在这2^n的条件下,速度会更快。

因此,batch不能太大,也不能太小,常设置为32、64。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值