mini-batch的定义和用法

最近重新学习神经网络的一些基础知识,顺便对一些知识点做一下梳理,今天说一说在现在神经网络中常看到的一个词叫mini-batch。简单地说,因为梯度更新的时候有三种方式:
第一种是batch gradient descent(批梯度下降),这种方式模型遍历所有数据后计算损失函数然后更新梯度,这样计算过于复杂,所以引出第二种。
第二种是stochastic gradient descent(随机梯度下降),就是每读取一个数据就计算损失函数更新梯度,这样的结果就是单个数据差异大,导致训练波动大,收敛性不太好,这就引出了第三种。
第三种是mini-batch gradient descent(小批量梯度下降)。其目的就是中和前两种方法的特点和不足。随机选取数据中一定量的数据进行训练,然后计算损失函数更新梯度,这样既不会有更与复杂的计算量,又不会训练过于缓慢。

补充一下,最近阅读斋藤康毅的深度学习入门一书时,他将mini-batch的梯度下降称之为SGD随机梯度下降。他说随机指的是随机选择这个小批量的数据。我觉得他这个更有说服力一些。当然,前面的三种方法理解其中的意思和他们的优缺点就可以。
本文参考了博主CodeCraker的文章,https://blog.csdn.net/weixin_39502247/article/details/80032487

你可能感兴趣的:(神经网络学习,神经网络)