[AI 笔记] SGD
Stochastic Gradient Descent
随机梯度下降。
前面通过SVM、Softmax等算法计算了损失,训练损失是对所有训练样本的损失的累加平均。如下图所示:
在计算完损失之后,再求它对权重W的梯度,从而利用梯度下降算法来更新权值,达到训练的目的。
但是当数据集特别大的时候,这种算法的计算量无疑相当大,因为每次更新权重,都要计算所有训练样本的损失,及其梯度。
SGD 就是为了解决这一问题产生的。
SGD 每一次迭代,随机选取一个data_batch,包含少量的样本,然后在这一data_batch上计算损失及梯度,用来更新权重。
这样的话,权重就能够得到快速的更新,从而加快模型训练速度。
其抽象的代码如下图所示: