Gradient Descent
Gradient Descent (梯度下降) 梯度下降(Gradient Descent)是一种用于优化目标函数的迭代算法,广泛应用于机器学习和深度学习中,用于训练模型以最小化损失函数。推荐先阅读 机器学习基础 文章以对梯度下降的背景有大概的了解。 目标函数 目标函数 (Objective Function):有时也称作准则(criterion)、代价函数(cost function)或损失函数(loss function),是我们希望最小化的函数,通常表示为 $J(\theta)$,其中 $\theta$ 是模型的参数。例如,在线性回归中使用的 均方误差 (Mean Squared Error, MSE) 就是一个常见的目标函数。 一般来说,定义 $x^* = \arg\min_{x} J(x)$ 导数 记现在需要优化的函数为 $y = f(x)$,这个函数的导数 $f'(x)$ 表示函数在点 $x$ 处的变化率,或者说是函数图像在该点的切线斜率。 利用导数的定义,发现导数实际指示了函数在该点的变化趋势,我们可以很容易的判断出函数下降的方向 取一个小的正数 $\epsilon$,如果 $f'(x) > 0$,则 $f(x - \epsilon) < f(x)$,否则 $f(x + \epsilon) < f(x)$,也就是说: $$ f(x -\epsilon\cdot \text{sign}(f'(x))) < f(x) $$因此,导数的负方向是函数下降最快的方向。 梯度 下面,将上面所述的过程扩展到多维空间中,假设现在有一个多变量函数 $f: \mathbb{R}^n \to \mathbb{R}$,其输入为一个 $n$ 维向量 $x = [x_1, x_2, \ldots, x_n]^T$,输出为一个标量 $y = f(x)$。我们希望找到使得 $f(x)$ 最小化的 $x$。 ...