神经网络之Mini-Batch梯度下降

传统的梯度下降算法,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种梯度下降法叫做这称为Batch gradient descent(BDG)。我们知道 Batch 梯度下降的做法是,在对训练集执行梯度下降算法时,必须处理整个训练集,然后才能进行下一步梯度下降。当训练数据量非常多时,每更新一次参数都要把数据集里的所有样本都看一遍,虽然收敛性能好,但是一次迭代需要等待多长时间,速度慢,会极大的降低训练速度。

随机梯度下降,stochastic gradient descent(SDG),每看一个数据就算一下损失函数,然后求梯度更新参数。这个方法速度比较快,但是永远不会收敛,可能在最优点附近晃来晃去,无法收敛。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。

因此,为了克服两种方法的缺点,现在一般采用的是一种折中方法,mini-batch gradient decent。这种方法把数据分为若干个batch,按batch来更新参数,这样,一个batch中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,计算量也不是很大。
在这里插入图片描述
蓝色:为 batch 梯度下降,即 mini batch size = m,
紫色:为 stochastic 梯度下降,即 mini batch size = 1,
绿色:为 mini batch 梯度下降,即 1 < mini batch size < m。

mini-batch梯度下降

如果选择介于1和最大训练数据量之间的一个batch_si

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wendy_ya

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

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

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

打赏作者

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

抵扣说明:

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

余额充值