在这里我用线性模型来解释批量梯度下降法 线性模型为:
线性模型的损失函数为: 下面可视化的图像为: 我们的目的是求解损失函数的值尽可能的小,也是求解一组权重W是得损失函数的值尽可能的下,过程是我们不断的去更新权重使得损失函数J的值减小,权重的更新式子为: a代表学习率,为了能更新权重,我们需要计算权重为损失函数的贡献值是多少,也就是要求出损失函数J的偏导数,J的偏导数为: ,故此,对所有数据的梯度为各个数据点的梯度总和: 权重的更新为: 由上面可知,每当我们更新一次梯度都会用到全部的数据,所以如果我们的训练数据一旦变大,那么它的计算时间非常的费时 下图为BGD的梯度下降收敛图: 由图可知批梯度下降法的收敛迭代次数很少。
由于批梯度下降每跟新一个参数的时候,要用到所有的样本数,所以训练速度会随着样本数量的增加而变得非常缓慢。随机梯度下降正是为了解决这个办法而提出的。它是利用每个样本的损失函数对θ求偏导得到对应的梯度,来更新θ: 随机梯度下降法是通过每个样本来迭代更新一次权重,批量梯度下降法,迭代一次需要用到用到所有的训练样本。但是随机梯度下降法的一个问题是噪音比BGD要多,使得SGD并不是每次迭代都能向着整体岁优化的方向。 随机梯度下降法的收敛图: 从图中可以看出,要达到最优解的迭代次数要很多,不是每一次迭代都是最优的方向,但是大体上是朝着最优的方向进行。
MBGD小批量梯度下降法,它的算法训练过程快,而且还保证最终参数训练的准确率。 梯度: 权重更新: MBGD小批量梯度下降的收敛图: