梯度下降法(BGD)、随机梯度下降法(SGD)、小批量梯度下降法(MBGD)以及batch size

梯度下降法(BGD)、随机梯度下降法(SGD)、小批量梯度下降法(MBGD)之间的关系及batch size如何选取

文章内容皆为个人理解,如有不足欢迎指正。

我们都知道,神经网络在更新权值的时候需要先求得损失函数,再由损失函数求得各参数的梯度进行更新,这里就涉及一个问题:用多少个训练样本去计算损失函数呢?这个数量就是我标题里的batch size,直观上讲的话,梯度下降法、随机梯度下降法和小批量梯度下降法之间的差异就是因为batch size的不同。

梯度下降法:batch size=所有训练数据数量。也就是说,使用梯度下降法更新权值的时候,每次都会使用所有的训练数据去求得损失函数,当然,更新的时候需要求均值的。

随机梯度下降法:batch size=1。每次仅用一个训练数据更新权值。

小批量梯度下降法:1<batch size<训练集。每次用部分数据更新权值。

优缺点
梯度下降法:由于每次都使用所有训练数据进行更新,按说收敛应该很快的,但是它很容易陷入局部最小值或者鞍点,没法跳出来,以至于达不到收敛;再者即使能收敛,在测试集上的效果也不一定好;最后,需要较大的显存以供大批量数据计算使用。

随机梯度下降法:每次仅一个训练数据,能跳出局部最小值和鞍点;泛化能力强;但是这种做法很耗时间,其中会有很多误调,同时过大的样本差异会使训练比较震荡,导致收敛比较慢。

小批量梯度下降法:克服了SGD的缺点。每次用几个数据进行更新,这几个训练数据并不会完全符合训练集的规律,相当于引入了噪声,可以跳出局部最小值和鞍点;训练比较平稳,收敛比较快;主要问题就是最优的batch size不好找,一般都在2的幂上进行调参。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值