【算法工程师的数学基础】系列将会从线性代数、微积分、数值优化、概率论、信息论五个方面进行介绍,感兴趣的欢迎关注【搜索与推荐Wiki】公众号,获得最新文章。

《算法工程师的数学基础》已更新:


导数(derivative)是微积分学中重要的基础概念。本篇主要介绍导数相关的知识,包括:概念介绍、导数法则、常见函数的导数、基本求导函数法则与导数公式。

概念介绍

对于定义域和值域都是实数域的函数$f: R \rightarrow R$,若$f(x)$在点$x_0$的某个邻域$\Delta x$内,极限:

存在,则称函数$f(x)$在点$x_0$处可导,$f(x_0)$称为其导数,或导函数。

若函数$f(x)$在其定义域包含的某区间内每一个点都可导,那么也可以说函数$f(x)$在这个区间内可导。连续函数不一定可导,可导函数一定连续。例如函数$|x|$为连续函数,但在点$x=0$处不可导。

对于一个多变量函数$f: R^d \rightarrow R$,它的偏导数(partial derivative)是关于其中一个变量$x_i$的导数,而保持其他变量固定,可以记为$f_{x_i}’(x),\bigtriangledown _{x_i} f(x),\frac{\partial f(x)}{ \partial x_i} $或$\frac{\partial }{ \partial_{x_i}}f(x)$。

对于一个$d$维向量$x \in R^d$,函数$f(x)=f(x_1, x_2,…,x_d) \in R$,则$f(x)$关于$x$的偏导数为:

若函数$f(x) \in R^k$的值也为一个向量,则$f(x)$关于$x$的偏导数为:

称为Jacobian矩阵。

导数法则

一个复杂函数的导数的计算可以通过一下法则来简化。

加减法则

$y = f(x), z=g(x)$ 则:

乘法法则

(1) 若 $x \in R^p, y= f(x) \in R^q, z = g(x) \in R^q$ ,则:

(2) 若 $x \in R^p, y= f(x) \in R^s, z = g(x) \in R^t, A \in R^{s *t}$ 和 $x$无关,则:

(3)若 $x \in R^p, y= f(x) \in R, z = g(x) \in R^p$ ,则:

链式法则

链式法则(chain rule)是求复合函数导数的一个法则,是在微积分中计算导数的一种常见方法。

(1) 若 $x \in R^p, y= g(x) \in R^s, z = f(y) \in R^t$ ,则:

(2)若 $X \in R^{pq}$为矩阵, $Y= g(x) \in R^{st}, z = f(Y) \in R$ ,则:

(3)若 $X \in R^{p*q}$为矩阵, $y= g(x) \in R^s, z = f(Y) \in R$ ,则

(4)若 $x \in R, u= u(x) \in R^p, g = g(u) \in R^q$ ,则:

(4)的文字部分,$u = u(x)$中左边的$u$表示向量, $g=g(u)$左边的$g$表示向量,$g(u)$表示函数,$u$表示向量

常见函数的导数

这里介绍常用的几个函数。

标量函数及其导数

指示函数 指示函数$I(x=c)$为:

指示函数$I(x=c)$除了在$c$处外,其导数为0。

多项式函数 如果$f(x)=x^r$(幂函数),其中$r$是非零实数,那么导数:

当$r=0$时,常函数的导数是0.

指数函数 底数为$e$的指数函数$f(x)= exp(x) =e^x$的导数是他本身。

对数函数 底数为$e$的对数函数 $log(x)$ 的导数则是$x^{-1}$

向量函数及其导数

上面公式中涉及的字母都是向量

按位计算的向量函数及其导数

假设一个函数$f(x)$的输入是标量$x$。对于一组$K$个标量$x_1, x_2,…,x_K$,我们可以通过$f(x)$得到另外一组$K$个标量$z_1, z_2,…,z_K$

为了简单起见,我们定义$x = [x_1, …, x_K]^T$, $z =[z_1, …, z_K]$

其中,$f(x)$是按位运算的,即$[f(x)]_i = f(x_i)$

当 $x$为标量时,$f(x)$的导数记为$f’(x)$。当输入为$K$维向量$x=[x_1, …,x_K]^T$时,其导数为一个对角矩阵。

logistic函数

Logistic函数是一种常用的S形函数,是比利时数学家Pierrs Francois Verhulst 在1844-1845年研究种群数量的增长模型时提出命名的,最初作为一种生态学模型。

Logistic的函数定义为:

这里$exp(.)$函数表示自然对数函数,$x_0$是中心点,$L$是最大值,$k$是曲线的倾斜度。下图给出了几种不同参数的logistic函数曲线,当$x \rightarrow -\infty$时,$logistic(x) \rightarrow 0$,当$x \rightarrow +\infty$时,$logistic(x) \rightarrow L$

几种不同参数的logistic函数曲线

当参数为$(k=1,x_0=0, L=1)$时,logistic函数称为标准logistic函数,记为$\sigma (x)$

标准logistic函数在机器学习中使用得非常广泛,经常用来将一个实数空间的数映射到(0,1)区间。

标准logistic函数的导数为(推导过程可以参考《推荐系统开发实战》一书的第八章):

当输入为$K$维向量$x=[x_1, …, x_K]^T$时,其导数为:

softmax函数

softmax函数是将多个标量映射为一个概率分布。

对于$K$个标量$x_1, …, x_K$,softmax函数定义为:

这样我们可以将$K$个变量$x_1, x_2, …, x_K$转变为一个分布$z_1, …, z_K$,满足:

当softmax函数的输入为$K$维向量$x$时,

其中,$1^T_K=[1,…,1]_{K*1}$是$K$维的全1的向量。

其导数为:

基本求导函数法则与导数公式

基本初等函数求导公式

函数的和、差、商、积的求导法则

其实上文中已经简单介绍了函数的求导法则,这里再用一种更加简要的方式说明一下:
设$u=u(x), v= v(x)$,且都可导,则:

反函数求导法则

如果函数$x=f(y)$在区间$I_y$内单调、可导且$f’(y)\neq0$,那么它的反函数$y=f^{−1}(x)$在区间$I_x={x∣x=f(y),y \in I_y}$内也可导,且

结论可以简单表达为:反函数的导数等于直接函数导数的倒数

复合函数求导法则

设$y=f(u)$,而$u=\varphi (x)$且$f(u), \varphi(x)$都可导,则复合函数 $y=f[\varphi(x)]$的导数为:

双曲函数和反双曲函数的导数

双曲函数和反双曲函数都是初等函数,可以用上边介绍的初等函数求导方式推导出来。

(1)双曲正弦函数和反双曲正弦函数

他们的导数为:

(2)双曲余弦函数和反双曲余弦函数

他们的导数为:

(3)双曲正切函数和反双曲正切函数

他们的导数为:

还有几种不常用的双曲函数和反双曲函数如下(这里不再介绍其导数,感兴趣的可以自行根据上述介绍进行推导):

  • 双曲余切函数和反双曲余切函数
  • 双曲正割函数和双曲正割函数
  • 双曲余割函数和双曲余割函数

更多关于双曲函数和反双曲函数可以参考Wiki:


【技术服务】,详情点击查看: https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg


扫一扫 关注微信公众号!号主 专注于搜索和推荐系统,尝试使用算法去更好的服务于用户,包括但不局限于机器学习,深度学习,强化学习,自然语言理解,知识图谱,还不定时分享技术,资料,思考等文章!