随机梯度下降
在深度学习里,目标函数通常是训练数据集中有关各个样本的损失函数的平均。设是有关索引为的训练数据样本的损失函数,是训练数据样本数,是模型的参数向量,那么目标函数定义为
目标函数在处的梯度计算为
如果使用梯度下降,每次自变量迭代的计算开销为,随着线性增长。因此,当训练数据样本数很大时,梯度下降每次迭代的计算开销很高。现在可以通过随机梯度下降来解决这个问题。
随机梯度下降(stochastic gradient descent,SGD)减少了每次迭代的计算开销。在随机梯度下降的每次迭代中,我们随机均匀采样的一个样本索引,并计算梯度来迭代:
这里同样是学习率。可以看到每次迭代的计算开销从梯度下降的降到了常数。值得强调的是,随机梯度是对梯度的无偏估计:
好处就是将 variance(方差) 降低一下,
这意味着,平均来说,随机梯度是对梯度的一个良好的估计。
下面我们通过在梯度中添加均值为0的随机噪声来模拟随机梯度下降,以此来比较它与梯度下降的区别。