深度学习笔记系列(一):导数,梯度与方向导数

  • 2019 年 12 月 1 日
  • 笔记

最近看论文的时候会感觉自己有很多基础的部分不是很扎实,所以准备系统地整理一下这些知识,并且记录下来。

这一部分的笔记之后会包括高等数学,线性代数,概率论,机器学习,信息论深度学习的相关知识以及其应用,之后也会慢慢的更新。

第一篇讲的是导数,梯度和方向导数。

导数

单变量导数的一阶导数

对于单变量来说,其导数的计算方法如下:

导数代表的意义是函数在x处的变化率,当导数为0时x可能为函数的鞍点或者极值点。

单变量函数的二阶导数

二阶导数代表的意义是函数在x点处导数的变化率。

二阶导数的计算方式如下:

二阶导数为0,说明该点的导数变化率为0。

偏导数

当一个函数有多个变量,而你只想计算函数与某个变量的变化关系时,就需要计算偏导数。

偏导数的计算方式如下:

当函数在某点

的所有偏导数都为0时,则该点为函数的极值点或者鞍点。

梯度

在机器学习的学习中,梯度这一词想必大家都不陌生,多元函数的所有偏导数构成的向量即为梯度。

梯度的本意是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大,为该梯度的模。

方向导数

从上面的内容大家可以看到偏导数只能描绘x,y方向上函数的变化率,但是在实际的使用过程中,我们想知道函数在各个方向上的变化率,于是就有了方向导数的概念。

方向导数是一个标量,方向导数定义了点 x 处沿向量 v 方向变化时,对应的函数的瞬时变化率。其中v为:

将v变为单位向量v'后,通过计算:

就可以得到函数在这个方向上的方向导数。

所有的文章整理后会发布在 https://github.com/linhaow/DLnotes