花书+吴恩达深度学习(六)优化方法之 Mini-batch(SGD, MBGD, BGD)

目录

0. 前言

1. Batch gradient descent(BGD)

2. Stochastic gradient descent(SGD)

3. Mini-batch gradient descent(MBGD)


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~

花书+吴恩达深度学习(五)正则化方法(防止过拟合)

花书+吴恩达深度学习(六)优化方法之 Mini-batch(SGD, MBGD, BGD)

花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)

花书+吴恩达深度学习(八)优化方法之 Batch normalization

花书+吴恩达深度学习(九)优化方法之二阶近似方法(牛顿法, CG, BFGS, L-BFGS)

0. 前言

通常,我们定义代价函数:

J=\frac{1}{m}\sum_{i=1}^m\mathfrak{L}(\hat{y^{(i)}},y^{(i)})

其中,使用的是全部样本集 m ,如果修改其数量,就会得到不同的算法。

1. Batch gradient descent(BGD)

BGD 称为批量梯度下降,就是原始的梯度下降,每次迭代使用所有的样本进行更新操作。

BGD 的优点:

  1. 每次更新的梯度估计方向直接指向收敛的最小值点,最终达到收敛点

BGD 的缺点:

  1. 数据量庞大时,每一次迭代都需要耗费很大的时间

2. Stochastic gradient descent(SGD)

SGD 称为随机梯度下降,每次迭代使用的仅仅是随机的一个样本。

SGD 的优点:

  1. 因为只有一个样本,每次更新迭代速度快
  2. 可以作为在线算法,不断使用新的数据更新参数

SGD 的缺点:

  1. 每次梯度估计方向都不确定,可能需要很长的时间接近最小值点,永远不会收敛

3. Mini-batch gradient descent(MBGD)

MBGD 称为小批量梯度下降,每次迭代使用一个以上又不是全部的样本。

MBGD 的优点:

  1. 使用多个样本相比 SGD 提高了梯度估计的精度
  2. 小批量的估计,相当于在学习过程中加入了噪声,会有一些正则化的效果

MBGD 的缺点:

  1. 同 SGD 一样,每次梯度估计的方向不确定,可能需要很长时间接近最小值点,不会收敛

通常在使用 MBGD 之前先将数据集随机打乱,然后再划分 Mini-batch,所以 MBGD 有时也称为 SGD 

Mini-batch 大小的选择通常使用 2 的幂数,可以获得更少的运行时间。

遍历完所有数据,称为一个 epoch ,通常需要遍历几次 epoch 才行。


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~

 

 

 

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