什么是Stochastic gradient descent
随机梯度下降(Stochastic gradient descent)是一种为机器学习算法寻找最优参数配置的方法。
它是一种迭代的方法,对机器学习网络参数进行小的调整,以减少网络的错误。
误差函数(Error Function)很少像典型的抛物线那样简单。 大多数情况下,它们有很多波峰和波谷。随机梯度下降的目标是找到全局的最小值。
怎么运行
随机梯度下降通过在每个训练点之后调整网络的参数来试图找到全局最小值。该方法不是减少整个数据集的误差或找到梯度(Batch gradient descent),而是通过近似随机选择的批次(可能是单个训练样本)的梯度来降低误差。在实践中,随机选择是指随机打乱数据集。
如果网络得到一个错误的训练样本,它也会更新配置,以便在未来让它正确。但是,配置更新可能会以使其他问题出错为代价,从而增加网络的整体错误。因此,并非每次训练迭代都可以通过随机梯度下降算法改进网络。
另一方面,随机梯度下降可以调整网络参数,使模型从局部最小值移向全局最小值。回顾上图的凹函数,在处理了一个训练样本后,算法可能会选择向右移动,以摆脱我们所处的局部最小值。即使这样做会增加网络的误差,它允许它在山上移动。这将允许进一步的训练导致梯度下降向全局最小值移动。
随机梯度下降的一个好处是它比真正的梯度下降需要更少的计算,因此计算速度更快;同时通常也仍会收敛到最小值(尽管不一定是全局的)。