[机器学习必知必会]梯度下降法

前言

梯度下降法(gradient descent)是求解无约束最优化问题的一种最常用的方法,它是一种迭代算法,每一步需要求解目标函数的梯度向量。

问题抽象

[机器学习必知必会]梯度下降法[机器学习必知必会]梯度下降法上具有一阶连续偏导数的函数,要求解的无约束问题是:[机器学习必知必会]梯度下降法, 其中[机器学习必知必会]梯度下降法表示目标函数[机器学习必知必会]梯度下降法的极小值点

关键概念

  • 迭代:选取适当初始值[机器学习必知必会]梯度下降法,不断迭代更新[机器学习必知必会]梯度下降法的 值,直至收敛
  • 梯度下降:负梯度方向是使函数值下降最快的方向,我们在迭代的每一步都以负梯度方向更新[机器学习必知必会]梯度下降法的值
  • 收敛:给定一个精度[机器学习必知必会]梯度下降法,在迭代的每一轮根据梯度函数[机器学习必知必会]梯度下降法计算梯度[机器学习必知必会]梯度下降法[机器学习必知必会]梯度下降法时认为收敛
  • 学习率:也叫做步长,表示在每一步迭代中沿着负梯度方向前进的距离

直观理解

以下图为例,开始时我们处于黑色圆点的初始值(记为[机器学习必知必会]梯度下降法),我们需要尽快找到函数的最小值点,最快的方法就是沿着坡度最陡的方向往下走

[机器学习必知必会]梯度下降法
图源:https://www.nxpic.org/article/id-330329

算法细节

由于[机器学习必知必会]梯度下降法具有一阶连续导函数,若第[机器学习必知必会]梯度下降法次迭代值为[机器学习必知必会]梯度下降法,则可将[机器学习必知必会]梯度下降法[机器学习必知必会]梯度下降法附近进行一阶泰勒展开:
[机器学习必知必会]梯度下降法
其中[机器学习必知必会]梯度下降法[机器学习必知必会]梯度下降法的梯度。
接着我们求出第[机器学习必知必会]梯度下降法次的迭代值[机器学习必知必会]梯度下降法:
[机器学习必知必会]梯度下降法
其中[机器学习必知必会]梯度下降法是搜索方向,取负梯度方向[机器学习必知必会]梯度下降法[机器学习必知必会]梯度下降法是步长,需满足:
[机器学习必知必会]梯度下降法

算法实现

  • 输入:目标函数[机器学习必知必会]梯度下降法,梯度函数[机器学习必知必会]梯度下降法,计算精度[机器学习必知必会]梯度下降法
  • 输出:[机器学习必知必会]梯度下降法 的极小值点[机器学习必知必会]梯度下降法
  • 步骤:
    • 1)取初始值 [机器学习必知必会]梯度下降法,置[机器学习必知必会]梯度下降法为0
    • 2)计算[机器学习必知必会]梯度下降法
    • 3)计算梯度[机器学习必知必会]梯度下降法,当[机器学习必知必会]梯度下降法时停止迭代,令 [机器学习必知必会]梯度下降法;否则,令[机器学习必知必会]梯度下降法,求[机器学习必知必会]梯度下降法,使[机器学习必知必会]梯度下降法
    • 4)令[机器学习必知必会]梯度下降法,计算[机器学习必知必会]梯度下降法,当[机器学习必知必会]梯度下降法[机器学习必知必会]梯度下降法时停止迭代,令[机器学习必知必会]梯度下降法
    • 5)否则,令[机器学习必知必会]梯度下降法,回到3)

算法调优

  • 学习率:学习率太小时收敛过慢,但太大时又会偏离最优解
  • 初始值:当损失函数是凸函数时,梯度下降法得到的解是全局最优解;当损失函数是非凸函数时,得到的解可能是局部最优解,需要随机选取初始值并在多个局部最优解之间比较
  • 归一化:如果不归一化,会收敛得比较慢,典型的情况就是出现“之”字型的收敛路径

注意事项

  • 当目标函数是凸函数时,梯度下降法是全局的最优解,一般情况下梯度下降法的解不一定是全局最优解
  • 梯度下降法的收敛速度未必是最快的

Reference

图源:https://www.nxpic.org/article/id-330329
《统计学习方法》