梯度下降法(Gradient Descent)

  • 不是一个机器学习算法(不能用于解决回归或分类问题)
  • 是一种基于搜索的最优化方法
  • 作用:最小化一个损失函数
  • 梯度上升法:最大化一个效用函数

在机器学习领域,熟练掌握梯度法来求一个目标函数的最优值是非常重要的。

如图,寻找一个theta 使得 损失函数J 最小 。

梯度下降法的学习效率 梯度下降法作用_损失函数

每取一个 theta 值都对应一个 J。

对于导数 dJ / d theta,在直线方程中,导数代表斜率;曲线方程中,导数代表切线斜率;在此图中,导数代表 theta 单位变化时,J相应的变化。

由图右半部分可知,若随着 theta 增大,J 会减小;theta 减小,J 会增大。因此,从某种意义上讲导数可以代表方向,随着 theta 增大, 对应 J 增大的方向就可表示为 -n dJ / d theta,即图中蓝点右移,直到 -n dJ / d theta 为 0 。

梯度下降法的学习效率 梯度下降法作用_损失函数_02


对于多维函数,这个导数就是梯度。

梯度下降法的学习效率 梯度下降法作用_梯度下降法_03


同理,随着 theta 减小,对应 J 减小的方向为 -n dJ / d theta,即图中蓝点左移,直到 -n dJ / d theta 为 0 ,对应的损失函数 J 最小。

其中

  • n 称为学习率(learning rate)
  • n 的取值影响获得最优解的速度
  • n 取值不合适,甚至得不到最优解
  • n 是梯度下降法的一个超参数

    但并不是所有函数都有唯一的极值点,如会遇到下图问题:

    如果从右侧找一点,则会找到局部最优解,但不是我们要的全局最优解。

对于这个问题,我们的解决方案是:

  • 多次运行,随机化初始点
  • 梯度下降法的初始点也是一个超参数

对于线性回归法的损失函数具有唯一的最优解,线性回归的目标是使

梯度下降法的学习效率 梯度下降法作用_最优解_04

尽可能小。