Math——梯度和微分的理解

梯度方向是函数局部上升最快的方向


微分的定义与理解

  • 假设在任意方程中存在自变量 \(t\) 和因变量 \(x,y\),他们都是 \(t\) 的函数 \(x(t),y(t)\),则当所有因变量都对同一个自变量 \(t\) 计算变化量时,即可得到微分形式:
    $$
    \begin{align}
    d y &= y(t+\Delta) - y(t) \\
    d x &= x(t+\Delta) - x(t) \\
    d t &= (t+\Delta) - t = \Delta
    \end{align}
    $$
    • 其中 \(\Delta \rightarrow 0\)
  • 此时有:
    • 导数 \(\frac{dy}{dt}\) 表示因变量 \(y\) 关于 \(t\) 的变化率,是 \(t\) 的函数
    • 导数 \(\frac{dx}{dt}\) 表示因变量 \(x\) 关于 \(t\) 的变化率,是 \(t\) 的函数
    • 导数 \(\frac{dy}{dx}\) 可以表示因变量 \(y\) 关于 \(x\) 的变化率:
      $$ \frac{dy}{dx} = \frac{\frac{dy}{dt}}{\frac{dx}{dt}} $$
      • 注意: 从上面的证明可以看出,要求 \(dy\) 和 \(dx\) 都是在同一个自变量(这里是 \(t\),也可以是其他变量,比如 \(x\) )发生微小变化的时候得到的
  • 注意:
    • \(dy\) 表示微分,具体是关于 \(x\) 或 \(t\),亦或是其他变量的增量,要根据上下文来判断
    • \(\frac{dy}{dt}\) 表示 \(y\) 关于 \(t\) 的变化率,在不同的 \(t\) 点,变化率不同,所以 \(\frac{dy}{dt}\) 是关于 \(t\) 的函数, \(\frac{dy}{dt}\vert_{t=t_0}\) 可表示 \(y\) 关于 \(t\),在 \(t=t_0\) 处的变化率

梯度的定义与理解

  • 对函数 \(f(x, y, z)\) 而言
  • 方向导数:各个方向的导数,函数,标量
    • 关于x, y, x的偏导数: \(\frac {\partial f}{\partial x}, \frac {\partial f}{\partial y}, \frac {\partial f}{\partial z}\)
    • 对特定的某一点 \((x_{0}, y_{0}, z_{0})\) 而言,改点的偏导数是将对应的值带入后得到的数值,是一个确定的数值
  • 梯度:各个方向导数组成的向量,每一维为一个方向导数,矢量
    • 梯度: \((\frac {\partial f}{\partial x}, \frac {\partial f}{\partial y}, \frac {\partial f}{\partial z}\)),一个向量
    • 梯度方向表示函数局部上升最快的方向
    • 梯度的模 \(|\nabla f|\) 表示变化率

直观理解

  • 一维函数中,代表参数(自变量)的点在一条直线上运动,所以梯度的方向有正向和负向
  • 二维函数中,代表参数(自变量)的点在一个平面上运动,所以梯度的方向有无数种,但都在二维平面上
  • 三维函数中,代表参数(自变量)的点在一个空间中运动,所以梯度的方向有无数种,但都在三维空间中
  • 无论何时,梯度方向是函数上升最快的方向,指明参数朝着这个方向移动时,函数上升的速度最快
  • 梯度下降法中,求取梯度的意义就在于知道函数上升或者下降最快的方向

关于梯度的模 \(|\nabla f|\)

  • 梯度的方向与参数(自变量)的变化相关,梯度的模 \(|\nabla f|\) 与函数变化相关
  • 梯度的模可以理解为变化率,也就是在梯度对应的方向上移动单位长度后,函数能上升的数值大小为 \(|\nabla f|\) (当然,这是按照当前点周围的极小的曲面拟合出来的平面计算得到的数值,不是真正的函数数值)
  • 梯度下降法中,梯度的方向指明了参数移动的方向,梯度的模暗示着参数移动时函数的增量大小
  • 但为什么梯度下降法中,保留着梯度的模?而不是将梯度向量变成单位向量?梯度的模有什么特殊的意义吗?
    • 一个猜想:在梯度下降法时,如果超参数步长 \(\alpha\) 不变的话,每次迭代时参数(自变量)真正移动的长度是 \(\alpha\times |\nabla f|\),此时随着迭代次数的增加, \(|\nabla f|\) 值会越来越小(可以证明,因为越来越接近最地点,函数变化率越来越小),这会导致 \(\alpha\times |\nabla f|\) 越来越小,从而减少震荡?
    • 梯度的模的意义可用数学证明,移动梯度的模的 \(\alpha\) 倍是最优的,详情参考我的博客ML——最优化方法-无约束参数优化方法中用一阶泰勒展开推导梯度下降法的过程
      • 基本思路,将函数在参数的某个值 \(\theta_{t} + \delta\) 处一阶泰勒展开,然后对 \(\delta\) 加上正则项.最后在直接求导即可得到梯度下降法的更新表达式

附录:其他参考博客