An overview of gradient descent optimization algorithms
梯度下降算法就是沿着目标函数梯度的相反方向更新模型参数。
梯度下降的变体
这里介绍了三种梯度下降算法,主要区别在于计算梯度使用的数据量大小不同。
批量梯度下降(BGD)
批量梯度下降是根据全部数据集计算梯度。
for i in range(nb_epochs):
params_grad = evaluate_gradient(loss_function, data, params)
params = params - learning_rate * params_grad
从代码中可以看出,首先通过全部数据计算梯度向量,然后根据梯度向量更新参数。这里学习率是固定的。
随机梯度下降(SGD)
SGD是通过单个训练样本更新参数。