好的,我们来通过一个具体的例子,一步步说明如何使用梯度来寻找函数 F(x,y) 的最优解。在这个例子中,我们的目标是寻找函数的最小值,这个过程被称为梯度下降法 (Gradient Descent)


问题设定

假设我们有一个二元函数 F(x,y)=x2+2y2。

我们的目标是找到一组 (x,y) 的值,使得 F(x,y) 的值最小。

对于这个简单的函数,我们其实可以凭直觉看出来,当 x=0 且 y=0 时,F(0,0)=0 是最小值。但我们的目的是演示梯度寻优的过程,所以我们假装不知道答案。

第一步:理解梯度 (Gradient)

梯度是一个向量,它指向函数在某一点上增长最快的方向。对于一个二元函数 F(x,y),它的梯度写作 ∇F(x,y)。

梯度的计算方法是,分别计算函数对每个变量的偏导数:

所以,函数 F(x,y) 的梯度是 ∇F(x,y)=(2x,4y)。

第二步:梯度下降的核心思想

梯度指向的是函数值上升最快的方向。那么,梯度的反方向,也就是 −∇F(x,y),就是函数值下降最快的方向。

梯度下降法的思想就是:

  1. 从一个随机的初始点 (x0,y0) 开始。
  2. 计算该点的梯度值。
  3. 沿着梯度相反的方向移动一小步,到达一个新的点 (x1,y1)。
  4. 重复第 2 和第 3 步,直到函数值变化很小,或者达到预设的迭代次数,此时的点就近似为函数的最小值点。

这个“一小步”的大小,我们称之为学习率 (Learning Rate),通常用希腊字母 α (alpha) 表示。