梯度下降算法就是沿着目标函数梯度的相反方向更新模型参数。
这里介绍了三种梯度下降算法,主要区别在于计算梯度使用的数据量大小不同。
批量梯度下降是根据全部数据集计算梯度。

- for i in range(nb_epochs):
- params_grad = evaluate_gradient(loss_function, data, params)
- params = params - learning_rate * params_grad
从代码中可以看出,首先通过全部数据计算梯度向量,然后根据梯度向量更新参数。这里学习率是固定的。
SGD是通过单个训练样本更新参数。

SGD对于每个样本都行进行更新,更新频繁,因此