批量梯度下降(BGD)、小批量梯度下降(mini-BGD)、随机梯度下降(SGD)优缺点比较

1. 批量梯度下降(Batch Gradient Descent,BGD)
优点:
1)一次迭代是对所有样本进行计算,此时利用矩阵进行操作,实现了并行。
2)由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,BGD一定能够得到全局最优。

缺点:
1)当样本数目 m 很大时,每迭代一步都需要对所有样本计算,训练过程会很慢。(有些样本被重复计算,浪费资源)

2. 随机梯度下降(Stochastic Gradient Descent,SGD)
优点:
1)由于不是在全部训练数据上的损失函数,而是在每轮迭代中,随机优化某一条训练数据上的损失函数,这样每一轮参数的更新速度大大加快。

缺点:
1)准确度下降。由于即使在目标函数为强凸函数的情况下,SGD仍旧无法做到线性收敛。
2)可能会收敛到局部最优,由于单个样本并不能代表全体样本的趋势.
3)不易于并行实现。

3. 小批量梯度下降(Mini-Batch Gradient Descent, MBGD)

优点:融合了BGD和SGD优点
1)通过矩阵运算,每次在一个batch上优化神经网络参数并不会比单个数据慢太多。
2)每次使用一个batch可以大大减小收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。
3)可实现并行化。

基本最常用的就是mini-batch了 ,根据电脑性能选择合适的batch_size可以大大提高效率。

你可能感兴趣的:(深度学习)