微积分基础
1、什么是导数
1.1、导数定义
导数(Derivative

当函数
$$ f’(x_0) = \lim\limits_{\Delta x \rightarrow 0}\frac{\Delta y}{\Delta x}=\lim\limits_{\Delta x \rightarrow 0}\frac{f(x_0 + \Delta x) - f(x_0)}{\Delta x} $$
注意,两者等价:
$$ 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} $$
推而广之,如果函数全域可导:
$f’(x) =\lim\limits_{\Delta x \rightarrow 0}\frac{f(x + \Delta x) - f(x)}{\Delta x} =\lim\limits_{\Delta x \rightarrow 0}\frac{f(x) - f(x - \Delta x)}{\Delta x}$
高等数学,引入了极限,极限是高等数学的基础,这一点是高等数学与初等数学最大的区别
1.2、导数作用
求极值,往往设导数为
2、左右导数与可导函数
函数趋近于
2.1、左导数定义
函数
$\lim\limits_{\Delta x \rightarrow 0}\frac{f(x_0) - f(x_0 - \Delta x)}{\Delta x}$ 的左极限存在,那么就称函数
2.2、右导数定义
函数
$\lim\limits_{\Delta x \rightarrow 0}\frac{f(x_0 + \Delta x) - f(x_0)}{\Delta x}$ 的右极限存在,那么就称函数
2.3、左右导数示例
下面的绝对值函数的左导数和右导数不相同,左导数是

2.4、神经网络激活函数Relu 导数

函数如下:
$ f(x) = max(0,x)$
即当
$f(x) = \left {\begin{aligned} & x \ \ &, x > 0 \ &0\ \ &, x \le 0 \end{aligned}\right.$
则
$\frac{d}{dx}f(x) = \left {\begin{aligned} & 1 \ \ &, x > 0 \ &0\ \ &, x \le 0 \end{aligned}\right.$
2.5、可导函数
函数可导的条件如下:
- 函数在该点的去心邻域内有定义。
- 函数在该点处的左、右导数都存在。
- 左导数=右导数
$\sigma(x) = \frac{1}{1 + e^{-x}}$

扩展知识点:
-
不是所有的函数都有导数,一个函数也不一定在所有的点上都有导数。
-
若某函数在某一点导数存在,则称其在这一点可导,否则称为不可导。
- 可导的函数一定连续;不连续的函数一定不可导。
- 对于可导的函数
$f(x)$ , $f’(x)$ 也是一个函数,称作$f(x)$ 的导函数(简称导数) 。 - 寻找已知的函数在某点的导数或其导函数的过程称为求导。
- 求导就是一个求极限的过程,导数的四则运算法则也来源于极限的四则运算法则。
- 反之,已知导函数也可以倒过来求原来的函数,即不定积分。
- 微积分基本定理说明了求原函数与积分是等价的。
- 求导和积分是一对互逆的操作,它们都是微积分学中最为基础的概念。
3、导数的几何与物理含义
3.1、导数的数学(几何)意义
函数
何意义是该函数曲线在这一点上的切线斜率

3.2、导数的物理意义
导数可以表示运动物体的瞬时速度和加速度 ,就直线运动而言,位移关于时间的一阶导数是瞬时速度,二阶导数
是加速度。
导数与物理、几何、代数关系密切:在几何中可求切线;在代数中可求瞬时变化率;在物理中可求速度、加速度。
3.3、自由落体示例
自由落体的位移随时间的变化公式如下:
$f(t) = \frac{1}{2}9.8\times t^2$
一阶导数:
$v = f’(t) = 9.8 \times t$
二阶导数:
$G = f’’(t) = 9.8$
4、函数求导公式
原函数 | 导函数 |
---|---|
$y = C$ , |
$y’ = 0$ |
$y = x^n$ , |
$y’ = nx^{n-1}$ |
$y = lnx$ | $y’ = \frac{1}{x}$ |
$y = log_ax$ ,$a>0$ 且 |
$y’ = \frac{1}{xlna}$ |
$y = e^x$ | $y’ = e^x$ |
$y = a^x$ | $y’ = a^xlna$ |
$y = \sqrt[n] {x} = x^{\frac{1}{n}}$ | $y’ = \frac{1}{n}x^{\frac{1}{n} - 1} = \frac{1}{n}x^{\frac{1-n}{n}}$ |
$y = \frac{1}{x^n}=x^{-n}$ | $y’ = -n\times x^{-n-1} = \frac{-n}{x^{n+1}}$ |
$y = sin(x)$ | $y’ = cos(x)$ |
…… | …… |
导数的公式都可以根据基本的极限公式进行推导:
$\lim\limits_{n \rightarrow +\infty}(1 +\frac{1}{n})^n = e$
$\lim\limits_{x \rightarrow 0}\frac{sin(x)}{x} = 1$
像这样基本的极限公式还有更多……
三角函数的导数不要管,我们很少会用到它,而且三角函数是周期性函数,而我们的机器学习中很多时候要求是单调的函数,单调增也好,单调减也好,最好不要周期性函数。
5、导数四则运算
导数加减:
$(f(x) \pm g(x))’ = f’(x) \pm g’(x)$
导数乘法:
$(f(x) g(x))’ = f’(x)g(x) + f(x)g’(x)$
导数除法:
$\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}$
6、复合函数求导法则
一元复合函数
其求导有链式法则:
$\frac{dy}{dx} = \frac{dy}{du}\frac{du}{dx}$
画出函数关系图: $y \rightarrow u \rightarrow x$ ,可见从
这个规则推广到多元复合函数也是适用的。
$(f(g(x)))’ = f’(g)g’(x)$
7、神经网络激活函数求导
7.1、Sigmoid 激活函数
$\sigma(x) = \frac{1}{1 + e^{-x}}$

其导函数为:
$\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}$
7.2、Tanh 激活函数

其函数形式为:
$\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}$
7.3、Softmax 激活函数
$y_i = softmax(z_i) = \frac{e^{z_i}}{\sum\limits_{j=1}^{C}e^{z_j}}$
$y_i$ 表示第
$z = W^Tx$ ,表示线性方程,

首先求标量形式的导数,即第
$\frac{\partial y_i}{\partial z_j} = \frac{\partial \frac{e^{z_i}}{\sum\limits_{j=1}^{C}e^{z_j}}}{\partial z_j}$
其中
$\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}$
当
$\frac{\partial y_i}{\partial z_j} = \frac{0 - e^{z_i}e^{z_j}}{(\sum\limits_{j=1}^Ce^{z_j})^2} = -y_iy_j$
两者合并:
$\frac{\partial y_i}{\partial z_j} = \pmb{1}{i=j}y_i - y_iy_j$
其中
8、高阶导数
前面学的是一阶导数,对导数再次求导就是高阶导数,二阶和二阶以上的导数统称为高阶导数。
形式如下:
$f’’(x)$
$(f’(x))’$
举个栗子:
$(2x^{10})’ = 20x^9$
$(2x^{10})’’ = (20x^9)’ = 180x^8$
高阶导数形式:
$f^{(n)}(x)$
9、导数与函数单调性
$f’(x) > 0 \quad \uparrow$ $f’(x) < 0 \quad \downarrow$
函数的导数大于

上图函数的导函数如下:
$f’(x) = 2x - 2$
- $x < 1$ 时,$f’(x) < 0$ ,函数单调递减
$x > 1$ 时,$f’(x) > 0$ ,函数单调递增
10、极值定理
导数为我们寻找极值提供依据,对于可导函数而言,因为在极值位置必然有函数的导数等于
$f’(x) = 0$
极值处函数的导数等于

其导数为:
$f’(x)=2x^2$ ,令导数为
11、导数与函数凹凸性
11.1、凹凸性概念与判断
函数的二阶导数是和函数的凹凸性是有关系的,凹凸性怎么定义的?
先来做简单的介绍,这里先记住凸函数是向下凸的, 反正就是凹的,是否是凸函数可以通过二阶导数,如果二阶
导数是大于

给定函数
11.2、知识点拓展
$f’(x) = 0$ ,称之为驻点,驻点是函数增减性的交替点,一侧增一侧减。
$f’’(x) = 0$ ,称之为拐点,拐点是函数凹凸性的交替点,一侧凸一侧凹。
举例说明:

$f(x) = sin(x)$
$f’(x) = cos(x)$, 令导数为
$f’’(x) = -sin(x)$ ,令导数为
12、一元函数泰勒展开
若函数
$f(x) \approx \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}$
0!
-
5! = 6!/6
-
4! = 5!/5
-
3! = 4!/4
-
2! = 3!/3
- 1! = 2!/2
- 0! = 1!/1 = 1
上述就是泰勒公式,是一个用函数在某点的信息描述其附近取值的公式。如果函数满足一定的条件,泰勒公式可以用函数在某一点的各阶导数值做系数构建一个多项式来近似表达这个函数。
方程变形:
$f(x) = f(x_0 + (x - x_0))$ 其中
$\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}$
更加通俗的表示:
$f(x + \Delta x) = \frac{f(x)}{0!} + \frac{f’(x)}{1!}\Delta x + \frac{f’’(x)}{2!}\Delta x^2 + \cdot \cdot\cdot + \frac{f^{(n+1)}(x)}{(n+1)!}\Delta x^{n+1}$
泰勒展开在高等数学里是非常有用的,它可以用来研究函数某些性质完成很多任务。在机器学习里面,它用来求函
数的极值用的,很多时候函数
么做的呢?是做一个近似,保留泰勒展开一阶项。而牛顿法是保留泰勒展开二阶项,忽略二阶以上的项,用泰勒二
阶展开来进行函数
一阶泰勒公式:
$f(x + \Delta x) \approx \frac{f(x)}{0!} + \frac{f’(x)}{1!}\Delta x $
二阶泰勒公式:
$f(x + \Delta x) \approx \frac{f(x)}{0!} + \frac{f’(x)}{1!}\Delta x + \frac{f’’(x)}{2!}\Delta x^2$ $$