想象一下,和朋友们正在玩一个游戏,需要将一个纸球扔进篮子里。会如何接近这个问题?在这里,有球和篮子在特定的距离,如果用30%的力量扔球,相信它应该最终落在篮子里。但是用这个力量球没有达到目标,在篮子前就掉了下来。
继续上述例子,让理解梯度下降背后的直觉。对于给定的问题陈述,解决方案从随机初始化开始。这些初始参数随后用于生成预测,即输出。一旦有了预测值,可以计算误差或成本,即预测值与实际目标的距离。接下来,相应地更新参数,并再次用更新后的参数进行预测。这个过程将迭代进行,直到以最小的成本/误差达到最优解。
梯度下降是一种优化算法,它通过迭代工作来找到具有最小成本或误差值的模型参数。在每次迭代中,尝试在给定的迭代次数中减少成本函数。如果通过梯度下降的正式定义,梯度下降是一种一阶迭代优化算法,用于寻找可微分函数的局部最小值。
随机初始化和生成预测。在这里,使用线性回归模型。首先,使用基线模型总是一个好主意。在基线模型中,使用B(线的斜率)为0的值,b(截距)是所有自变量的平均值。现在可以使用这个基线模型来获得预测值y hat。
计算成本/误差。一旦有了预测,就可以使用它来计算误差。在这里,误差度量是均方误差(MSE)。均方误差是估计值与实际值之间的平均平方差。计算出的基线模型的误差值可以引导到达成本-B曲线的任何地方,如下所示。现在任务是更新B,使其引导误差走向曲线的底部(即全局最小值)。
更新参数。现在问题是参数(在这种情况下是B)将如何更新。为了更新参数,将使用偏导数。偏导数给出了线的斜率,即成本函数的梯度,也是成本相对于B的变化。
查看下面的图像,在每种情况下偏导数都会给出切线的斜率。在第一种情况下,斜率(即梯度的方向)将是负的,而在另一种情况下,斜率将是正的。一旦有了偏导数,就可以像下面图像所示那样更新B的值。整个过程看起来像下面的图像。这被称为反向传播。
整个过程中另一个重要的方面是学习率(α)。学习率是一个超参数,它决定了模型学习的进程和速度。这也可以说是步长。学习率应该是一个最优值。如果学习率太高,所采取的步骤将会很大,可以错过最小值。结果,模型将无法收敛。