梯度下降:mini-batch和batch的区别

参考博客:https://blog.csdn.net/weixin_39502247/article/details/80032487

深度学习的优化算法,有两种参数更新的方式:
1.Batch gradient descent 批梯度下降。遍历所有的数据集算一次损失,然后算函数对每个参数的梯度,更新梯度。这种方法要将数据集里的所有的样本都算一遍,计算量非常大,计算速度慢。
2.Stochastic gradient descent 随机梯度下降。每看一次数据算一下损失函数,然后求梯度更新参数。速度快,但是收敛性能不是很好。

为了克服这两个方法的缺点,采用的是mini-batch gradient descent 小批量的梯度下降。这种方法把数据分为了若干个批次,按批次来更新参数。这样,一个批次中的数据共同决定了这个梯度的方向,下降起来就不会特别容易跑偏,减少了随机性。另外一方面,计算量小。

这样来说可以按照自己电脑的性能和训练的数据集选择合适的批次,这样既可以得到一个收敛比较快的模型,而且计算量也不算大,应该算是一个非常好的手段。

你可能感兴趣的:(tensorflow,梯度下降,mini-batch,批梯度下降)