梯度下降算法有哪些?有什么区别?【背景、原理、公式、代码】

一、梯度下降算法背景

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。

其实,梯度下降算法理解起来很简单,我们在训练模型时,随机初始化的参数肯定不是最优的,这样的参数会导致预测结果和真实结果存在一定的偏差,我们根据预测与真实之间的差异构造Loss Function,我们的任务就是找到Loss Function的最低点对应的参数(损失函数是Loss随参数变化而变化的图像),下图展示了2D和3D情形下损失函数的示意图。
梯度下降算法有哪些?有什么区别?【背景、原理、公式、代码】_第1张图片

二、梯度下降算法

1. 梯度下降 / 批量梯度下降(BGD)

(ps:我的理解是GD和BGD是一种算法,都是选取所有样本做Loss,或者说梯度下降是所有梯度下降算法的统称,如果我理解的有误,希望大噶多多指正~)
梯度下降算法的原理如下,L是Loss Fucntion,N是样本的数目,ε是学习率,我们可以发现梯度下降算法中,每进行一次下降操作,就需要拿全部的样

你可能感兴趣的:(梯度下降,算法,深度学习)