梯度下降(随机梯度下降、批量梯度下降、小批量梯度下降)

梯度下降(Gradient Descent, GD)

问题:一个损失函数 L ( ω , b ) L(\omega, b) L(ω,b) ,为找到合适的参数 ω , b \omega, b ω,b 使得损失函数值达到最小

方法:梯度下降

1. 随机梯度下降(Stochastic Gradient Descent, SGD)

随机梯度下降是每次迭代使用一个样本来对参数进行更新。使得训练速度加快。

因此可知,对于凸优化问题,每一次更新不能保证是朝着全局最优点前进,但是总体的方法仍然是朝着全局最优的方向前进。

相对于批量梯度下降,这种方法单次更新时间更快、存储要求小,且非常适合于增量式更新(假设新的样本源源不断的加入)

对于非凸最优化问题,这种方法通常能够更快的收敛到一个局部最优解。

2. 批量梯度下降(Batch Gradient Descent, BGD)

每次参数更新时,根据所有样本来计算梯度,即所有样本都参与了loss值的计算。

对于凸优化问题这种方法可以找到全局最优解。
因此,理论上而言这种情况下,每一步都是朝着全局最优点靠近。
对于样本量不大的情况,这种方式的收敛速度会很快
但是对于样本量大的情况,由于每一次样本更新所有样本都参与计算,单次更新的时间更长、需要的存储空间也更大,所以这种方法适用度下降

对于非凸优化问题,BGD也无法保证能够在全局最优点收敛,且在大样本的情况下,收敛到局部最优的时间非常的长。

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

在每次需要计算更新的时候随机抽取一小批样本, 这种变体叫做小批量随机梯度下降

由于SGD单次只采用一个样本来参数进行更新,因此可能需要通过大量的更新到达局部最优点。因此作为BGD和SGD的中间方案,提出了小批量梯度下降方法(MBGD)。

MBGD方法将所有样本分为多个min-batch(每个mini batch的样本数量大小为 n ),每一次采用 n 个样本进行参数更新。

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