导数、偏导数、方向导数、梯度、梯度下降

前言
 机器学习中的大部分问题都是优化问题,而绝大部分优化问题都可以使用梯度下降法处理,那么搞懂什么是梯度,什么是梯度下降法就非常重要!这是基础中的基础,也是必须掌握的概念! 
 提到梯度,就必须从导数(derivative)、偏导数(partial derivative)和方向导数(directional derivative)讲起,弄清楚这些概念,才能够正确理解为什么在优化问题中使用梯度下降法来优化目标函数,并熟练掌握梯度下降法(Gradient Descent)。

 本文主要记录我在学习机器学习过程中对梯度概念复习的笔记,主要参考《高等数学》《简明微积分》以及维基百科上的资料为主,文章小节安排如下: 
 1)导数 
 2)导数和偏导数 
 3)导数与方向导数 
 4)导数与梯度 
 5)梯度下降法 

导数
 一张图读懂导数与微分: 
  

导数、偏导数、方向导数、梯度、梯度下降


 这是高数中的一张经典图,如果忘记了导数微分的概念,基本看着这张图就能全部想起来。 
 导数定义如下: 
  

导数、偏导数、方向导数、梯度、梯度下降

 反映的是函数y=f(x)在某一点处沿x轴正方向的变化率。再强调一遍,是函数f(x)在x轴上某一点处沿着x轴正方向的变化率/变化趋势。直观地看,也就是在x轴上某一点处,如果f’(x)>0,说明f(x)的函数值在x点沿x轴正方向是趋于增加的;如果f’(x)<0,说明f(x)的函数值在x点沿x轴正方向是趋于减少的。

 这里补充上图中的Δy、dy等符号的意义及关系如下: 
 Δx:x的变化量; 
 dx:x的变化量Δx趋于0时,则记作微元dx; 
 Δy:Δy=f(x0+Δx)-f(x0),是函数的增量; 
 dy:dy=f’(x0)dx,是切线的增量; 
 当Δx→0时,dy与Δy都是无穷小,dy是Δy的主部,即Δy=dy+o(Δx). 
 

导数和偏导数
 偏导数的定义如下: 
  

导数、偏导数、方向导数、梯度、梯度下降

 可以看到,导数与偏导数本质是一致的,都是当自变量的变化量趋于0时,函数值的变化量与自变量变化量比值的极限。直观地说,偏导数也就是函数在某一点上沿坐标轴正方向的的变化率。 
 区别在于: 
 导数,指的是一元函数中,函数y=f(x)在某一点处沿x轴正方向的变化率; 
 偏导数,指的是多元函数中,函数y=f(x1,x2,…,xn)在某一点处沿某一坐标轴(x1,x2,…,xn)正方向的变化率。 
 

导数与方向导数
 方向导数的定义如下: 
  

导数、偏导数、方向导数、梯度、梯度下降

 在前面导 数和偏导数的定义中,均是沿坐标轴正方向讨论函数的变化率。那么当我们讨论函数沿任意方向的变化率时,也就引出了方向导数的定义,即:某一点在某一趋近方向上的导数值。 
 通俗的解释是: 
 我们不仅要知道函数在坐标轴正方向上的变化率(即偏导数),而且还要设法求得函数在其他特定方向上的变化率。而方向导数就是函数在其他特定方向上的变化率。 
 

导数与梯度
 梯度的定义如下: 
  

导数、偏导数、方向导数、梯度、梯度下降

 梯度的提出只为回答一个问题: 
 函数在变量空间的某一点处,沿着哪一个方向有最大的变化率? 
 梯度定义如下: 
 函数在某一点的梯度是这样一个向量,它的方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值。 
 这里注意三点: 
 1)梯度是一个向量,即有方向有大小; 
 2)梯度的方向是最大方向导数的方向; 
 3)梯度的值是最大方向导数的值。 
 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwfpz.html