导数(Derivative),也叫导函数值。又名微商,是微积分中的重要基础概念。
当函数
limit 即为函数
注意,两者等价:
$$ f'(x_0) =\lim\limits_{\Delta x \rightarrow 0}\frac{f(x_0 + \Delta x) - f(x_0)}{\Delta x} = =\lim\limits_{\Delta x \rightarrow 0}\frac{f(x_0) - f(x_0 - \Delta x)}{\Delta x} $$
推而广之,如果函数全域可导:
高等数学,引入了极限,极限是高等数学的基础,这一点是高等数学与初等数学最大的区别~
求极值,往往设导数为 0 ,即可进行求解。
函数趋近于 0 有两个方向,从左侧趋向于 0 是左导数,从右侧趋向于 0 是右导数。
函数
函数
下面的绝对值函数的左导数和右导数不相同,左导数是 -1 ,右导数是 +1,0 位置不可导
函数如下:
$ f(x) = max(0,x)$
即当
$f(x) = \left {\begin{aligned} & x \ \ &, x > 0 \ &0\ \ &, x \le 0 \end{aligned}\right.$
则 Relu 函数的导函数为:
$\frac{d}{dx}f(x) = \left {\begin{aligned} & 1 \ \ &, x > 0 \ &0\ \ &, x \le 0 \end{aligned}\right.$
函数可导的条件如下:
- 函数在该点的去心邻域内有定义。
- 函数在该点处的左、右导数都存在。
- 左导数=右导数
扩展知识点:
-
不是所有的函数都有导数,一个函数也不一定在所有的点上都有导数。
-
若某函数在某一点导数存在,则称其在这一点可导,否则称为不可导。
- 可导的函数一定连续;不连续的函数一定不可导。
- 对于可导的函数
$f(x)$ ,$f'(x)$ 也是一个函数,称作$f(x)$ 的导函数(简称导数)。 - 寻找已知的函数在某点的导数或其导函数的过程称为求导。
- 求导就是一个求极限的过程,导数的四则运算法则也来源于极限的四则运算法则。
- 反之,已知导函数也可以倒过来求原来的函数,即不定积分。
- 微积分基本定理说明了求原函数与积分是等价的。
- 求导和积分是一对互逆的操作,它们都是微积分学中最为基础的概念。
函数
何意义是该函数曲线在这一点上的切线斜率)。
导数可以表示运动物体的瞬时速度和加速度 ,就直线运动而言,位移关于时间的一阶导数是瞬时速度,二阶导数
是加速度。
导数与物理、几何、代数关系密切:在几何中可求切线;在代数中可求瞬时变化率;在物理中可求速度、加速度。
自由落体的位移随时间的变化公式如下:
一阶导数:
v 表示速度随时间变化公式
二阶导数:
原函数 | 导函数 |
---|---|
|
|
|
|
|
|
|
|
|
|
…… | …… |
导数的公式都可以根据基本的极限公式进行推导:
像这样基本的极限公式还有更多……
三角函数的导数不要管,我们很少会用到它,而且三角函数是周期性函数,而我们的机器学习中很多时候要求是单调的函数,单调增也好,单调减也好,最好不要周期性函数。
导数加减:
导数乘法:
导数除法:
$\begin{aligned}(\frac{f(x)}{g(x)})' &=(f(x)g^{-1}(x))' \\&=f'(x)g^{-1}(x) + f(x)g^{-1}(x)'\\&=\frac{f'(x)g(x)}{g^2(x)} -f(x)\frac{g'(x)}{g^2(x)}\\&=\frac{f'(x)g(x) - f(x)g'(x)}{g^2(x)}\end{aligned}$
一元复合函数
其求导有链式法则:
画出函数关系图:
这个规则推广到多元复合函数也是适用的。
其导函数为:
$\begin{aligned} \sigma'(x) &= \frac{\partial}{\partial x}\frac{1}{1 + e^{-x}} \\&= \frac{e^{-x}}{(1 + e^{-x})^2}\\& = \frac{1}{(1 + e^{-x})^2}\cdot e^{-x}\\&=\frac{1}{1 + e^{-x}} \cdot (1 - \frac{1}{1 + e^{-x}})\\&=\sigma(x)\cdot (1 - \sigma(x))\end{aligned}$
Tanh 函数可以看作是放大并平移的 Sigmoid 函数,但因为是零中心化的 (zero-centered) ,通常收敛速度快于 Sigmoid 函数,下图是二者的对比:
其函数形式为:
$\begin{aligned}tanh(x) &= \frac{e^x - e^{-x}}{e^x + e^{-x}} \\&= \frac{1 - e^{-2x}}{1 + e^{-2x}} \\&= \frac{2 - (1 + e^{-2x})}{1 + e^{-2x}} \\&= \frac{2}{1 + e^{-2x}} -1 \\&= 2\sigma(2x) - 1\end{aligned}$
其导函数为:
$\begin{aligned}tanh'(x) &= \frac{(e^x + e^{-x})^2 -(e^x - e^{-x})^2}{(e^x + e^{-x})^2} \\&= 1-tanh^2(x)\end{aligned}$
Softmax 函数将多个标量映射为一个概率分布,其形式为:
首先求标量形式的导数,即第
其中
$\frac{\partial e^{z_i}}{\partial z_j} = \left {\begin{aligned} & e^{z_i}\ \ , \ \ & if \ \ i = j \ &0\ \ ,\ \ &if \ \ i \not= j \end{aligned}\right.$
那么当
$\begin{aligned}\frac{\partial y_i}{\partial z_j} &= \frac{e^{z_i}\sum\limits_{j=1}^Ce^{z_j} - e^{z_i}e^{z_j}}{(\sum\limits_{j=1}^Ce^{z_j})^2} \\&= \frac{e^{z_i}}{\sum\limits_{j=1}^Ce^{z_j}} - \frac{e^{z_i}}{\sum\limits_{j=1}^Ce^{z_j}}\frac{e^{z_j}}{\sum\limits_{j=1}^Ce^{z_j}} \\&= y_i - y_iy_j\end{aligned}$
当
两者合并:
其中$\pmb{1}{i=j} = \left{\begin{aligned} & 1, \quad if \ \ i = j \&0,\quad if \ \ i \not= j \end{aligned}\right.$
前面学的是一阶导数,对导数再次求导就是高阶导数,二阶和二阶以上的导数统称为高阶导数。
形式如下:
举个栗子:
高阶导数形式:
函数的导数大于 0,函数是单调增的。函数的导数小于 0,函数是单调减的。
上图函数的导函数如下:
-
$x < 1$ 时,$f'(x) < 0$ ,函数单调递减 -
$x > 1$ 时,$f'(x) > 0$ ,函数单调递增
导数为我们寻找极值提供依据,对于可导函数而言,因为在极值位置必然有函数的导数等于 0。
极值处函数的导数等于 0,这是必要条件,但不是充分条件,因为极值处的导数必然等于 0,但是导数等于 0 处不代表一定是极值。比如
其导数为:
函数的二阶导数是和函数的凹凸性是有关系的,凹凸性怎么定义的?
先来做简单的介绍,这里先记住凸函数是向下凸的,反正就是凹的,是否是凸函数可以通过二阶导数,如果二阶
导数是大于 0 就是凸函数。$f''(x) > 0 $
给定函数
举例说明:
若函数$f(x)$ 在包含
0!= 1 可以看做是对于如下规律的完整:
-
5! = 6!/6
-
4! = 5!/5
-
3! = 4!/4
-
2! = 3!/3
- 1! = 2!/2
- 0! = 1!/1 = 1
上述就是泰勒公式,是一个用函数在某点的信息描述其附近取值的公式。如果函数满足一定的条件,泰勒公式可以用函数在某一点的各阶导数值做系数构建一个多项式来近似表达这个函数。
方程变形:
$\begin{aligned}f(x_0 + (x - x_0)) &= \frac{f(x_0)}{0!} + \frac{f'(x_0)}{1!}(x - x_0) + \frac{f''(x_0)}{2!}(x-x_0)^2 + \cdot \cdot\cdot + \frac{f^{(n+1)}(x_0)}{(n+1)!}(x-x_0)^{n+1}\\&=\frac{f(x_0)}{0!} + \frac{f'(x_0)}{1!}\Delta x + \frac{f''(x_0)}{2!}\Delta x^2 + \cdot \cdot\cdot + \frac{f^{(n+1)}(x_0)}{(n+1)!}\Delta x^{n+1}\end{aligned}$
更加通俗的表示:
泰勒展开在高等数学里是非常有用的,它可以用来研究函数某些性质完成很多任务。在机器学习里面,它用来求函
数的极值用的,很多时候函数
么做的呢?是做一个近似,保留泰勒展开一阶项。而牛顿法是保留泰勒展开二阶项,忽略二阶以上的项,用泰勒二
阶展开来进行函数
一阶泰勒公式:
二阶泰勒公式: