AI算法工程师 | 04人工智能基础-高等数学知识强化(二)一元函数微分学

本文深入探讨了一元函数微分学,包括导数的概念、几何与物理意义,求导公式,以及在神经网络中的应用。介绍了导数如何指示函数单调性和极值,以及在凹凸性上的角色。同时,讨论了泰勒展开在近似复杂函数和求极值问题中的作用。此外,还特别强调了导数在激活函数如sigmoid和tanh中的重要性,以及它们的导数形式。
摘要由CSDN通过智能技术生成

数学知识 之 一元函数微分学

一、导数的概念

导数是微积分中最核心的概念。尤其是对于机器学习和深度学习来说,更多的会使用到微积分中的微分,导数更是微积分尤其是微分中的支柱了。
导数定义
导数的定义

y = f ( x ) y = f(x) y=f(x) 定义在区间 I I I 上,让自变量在 x = x 0 x = x_0 x=x0 处增加一个增量 △ x \bigtriangleup x x (可正可负),其中 x 0 ∈ I x_{0} \in I x0I x 0 + △ x ∈ I x_{0}+\bigtriangleup x\in I x0+xI,则可得函数的增量 △ y = f ( x 0 + △ x ) \bigtriangleup y=f(x_0+\bigtriangleup x) y=f(x0+x)。若函数增量 △ y \bigtriangleup y y 与自变量增量 △ x \bigtriangleup x x 的比值在 △ x → 0 \bigtriangleup x \to 0 x0 时的极限存在,即 lim ⁡ △ x → 0 △ y △ x \lim_{\bigtriangleup x \to 0} \frac{\bigtriangleup y}{\bigtriangleup x} limx0xy 存在,则称函数 y = f ( x ) y=f(x) y=f(x) 在点 x 0 x_0 x0可导,并称这个极限为 y = f ( x ) y = f(x) y=f(x) 在点 x 0 x_0 x0 处的导数,记作 f ′ ( x 0 ) f{}'\left ( x_0 \right ) f(x0),即:
f ′ ( x 0 ) = lim ⁡ △ x → 0 △ y △ x = lim ⁡ △ x → 0 f ( x 0 + △ x ) − f ( x 0 ) △ x f{}'\left ( x_0 \right )=\lim_{\bigtriangleup x \to 0} \frac{\bigtriangleup y}{\bigtriangleup x}=\lim_{\bigtriangleup x \to 0} \frac{f(x_{0}+\bigtriangleup x)-f(x_0)}{\bigtriangleup x} f(x0)=x0limxy=x0limxf(x0+x)f(x0)

小贴士:极限 limit 认为是高等数学和初等数学的分界线

左导数和右导数

△ x → 0 \bigtriangleup x \to 0 x0 (趋近于 0)有两个方向,从左边趋向于 0 是左导数,反之是右导数

可导函数

函数 f ( x ) f(x) f(x) 在点 x 0 x_0 x0 处可导的充分必要条件是其左导数与右导数均存在且相等

示例:绝对值函数、Relu 函数在 x 0 = 0 x_0=0 x0 处均不可导
示例

二、导数的几何意义与物理意义

几何意义:切线的斜率

物理意义:可以有很多,比如 瞬时速度
几何意义和物理意义

三、求导公式

根据 ① 基本函数、② 四则运算、③ 复合函数,这三种公式组合就可以求出任何公式的导数值

基本函数

函数公式
幂函数 ( x a ) ′ = a x a − 1 {(x^{a})}'=ax^{a-1} (xa)=axa1
指数函数 ( e x ) ′ = e x {(e^{x})}'=e^{x} (ex)=ex
以 a 为底的指数函数 ( a x ) ′ = a x l n a {(a^{x})}'=a^{x}lna (ax)=axlna ,注: l n a = l o g e a lna=log_{e}a lna=logea
对数函数 ( l n x ) ′ = 1 x {(lnx)}'=\frac{1}{x} (lnx)=x1
以任意为底的对数函数 ( l o g a x ) ′ = ( l n x l n a ) ′ = 1 l n a ⋅ 1 x {(log_{a}x)}'={(\frac{lnx}{lna})}'=\frac{1}{lna}\cdot \frac{1}{x} (logax)=(lnalnx)=lna1x1

说明:

  • 某函数求导得到的结果称为导函数,用来求导的该函数称为原函数
  • 导数的公式都可以根据下面的式子推导出来:
    lim ⁡ n → + ∞ ( 1 + 1 n ) n = e , lim ⁡ x → 0 s i n x x = 1 \lim_{n \to +\infty }(1 + \frac{1}{n})^{n}=e , \lim_{x \to 0} \frac{sinx}{x}=1 n+lim(1+n1)n=ex0limxsinx=1
  • 无需了解三角函数的导数。因为机器学习中很多时候要求是单调的函数,最好不要周期性函数,而三角函数是周期性函数且很少被用到。

四则运算法则

导数运算公式
加减法 ( f ( x ) + g ( x ) ) ′ = f ′ ( x ) + g ′ ( x ) {(f(x)+g(x))}'=f{}'\left ( x\right )+g{}'\left ( x\right ) (f(x)+g(x))=f(x)+g(x)
乘法 ( f ( x ) g ( x ) ) ′ = f ′ ( x ) g ( x ) + f ( x ) g ′ ( x ) {(f(x)g(x))}'=f{}'\left ( x\right )g(x)+f(x)g{}'\left ( x\right ) (f(x)g(x))=f(x)g(x)+f(x)g(x)
除法 [ f ( x ) g ( x ) ] ′ = f ′ ( x ) g ( x ) − f ( x ) g ′ ( x ) g 2 ( x ) {\left [ \frac{f(x)}{g(x)} \right ]}'=\frac{f{}'\left ( x\right )g(x)-f(x)g{}'\left ( x\right )}{g^{2}(x)} [g(x)f(x)]=g2(x)f(x)g(x)f(x)g(x)

复合函数法则(链式求导)
( f ( g ( x ) ) ′ = f ′ ( g ) ⋅ g ′ ( x ) {(f(g(x))}'=f{}'\left ( g\right )\cdot g{}'\left ( x\right ) (f(g(x))=f(g)g(x)

复合函数的求导 —— 相当于剥洋葱,一层层将其剥开

示例:

  • f ( x ) = l o g ( 1 + x 2 + e 2 x ) f(x)=log(1+x^{2}+e^{2x}) f(x)=log(1+x2+e2x) 求导:
    f ′ ( x ) = l o g ( 1 + x 2 + e 2 x ) ′ = 1 1 + x 2 + e 2 x × ( 1 + x 2 + e 2 x ) ′ = 0 + 2 x + ( e 2 x ) ′ 1 + x 2 + e 2 x = 0 + 2 x + e 2 x ⋅ ( 2 x ) ′ 1 + x 2 + e 2 x = 2 ( x + e 2 x ) 1 + x 2 + e 2 x {f}'(x)={log(1+x^{2}+e^{2x})}'=\frac{1}{1+x^{2}+e^{2x}}\times {(1+x^{2}+e^{2x})}' =\frac{0+2x+{(e^{2x})}'}{1+x^{2}+e^{2x}} =\frac{0+2x+e^{2x}\cdot {(2x)}'}{1+x^{2}+e^{2x}} =\frac{2(x+e^{2x})}{1+x^{2}+e^{2x}} f(x)=log(1+x2+e2x)=1+x2+e2x1×(1+x2+e2x)=1+x2+e2x0+2x+(e2x)=1+x2+e2x0+2x+e2x(2x)=1+x2+e2x2(x+e2x)
    以上求导中,用到的公式或法则:① ( f ( g ( x ) ) ′ = f ′ ( g ) ⋅ g ′ ( x ) {(f(g(x))}'=f{}'\left ( g\right )\cdot g{}'\left ( x\right ) (f(g(x))=f(g)g(x); ② ( e x ) ′ = e x {(e^{x})}'=e^{x} (ex)=ex; ③ ( l o g x ) ′ = 1 x {(logx)}'=\frac{1}{x} (logx)=x1; ④ ( a + b + c ) ′ = a ′ + b ′ + c ′ {(a+b+c)}'=a'+b'+c' (a+b+c)=a+b+c

四、导数的用途

用途一:求极值,往往设导数为 0,这里函数的导函数形式肯定得求
用途
用途二:神经网络里面激活函数会用到,其实还是求导数为 0 的情况,只不过是复合函数形式

  • 比如:在 Back propagation 反向传播中,需要用到激活函数(如sigmoid函数、tanh函数)的导函数形式,即需要求导
  • sigmoid函数 σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1:常被用作神经网络的激活函数,将变量映射到0~1之间
    s i g m o i d : σ ′ ( x ) = ( 1 1 + e − x ) ′ = − 1 ( 1 + e − x ) 2 ⋅ ( 1 + e − x ) ′ = − e − x ( 1 + e − x ) 2 ⋅ ( − x ) ′ = e − x ( 1 + e − x ) 2 = 1 + e − x − 1 ( 1 + e − x ) ( 1 + e − x ) = 1 1 + e − x − 1 ( 1 + e − x ) ( 1 + e − x ) = ( 1 − 1 1 + e − x ) ( 1 1 + e − x ) = [ 1 − σ ( x ) ] ⋅ σ ( x ) sigmoid :\sigma'(x)={(\frac{1}{1+e^{-x}})}'=-\frac{1}{(1+e^{-x})^{2}}\cdot{(1+e^{-x})}' =-\frac{e^{-x}}{(1+e^{-x})^{2}}\cdot{(-x)}' =\frac{e^{-x}}{(1+e^{-x})^{2}} =\frac{1+e^{-x}-1}{(1+e^{-x})(1+e^{-x})} =\frac{1}{1+e^{-x}}-\frac{1}{(1+e^{-x})(1+e^{-x})} =(1-\frac{1}{1+e^{-x}})(\frac{1}{1+e^{-x}}) =[1-\sigma(x)]\cdot \sigma(x) sigmoidσ(x)=(1+ex1)=(1+ex)21(1+ex)=(1+ex)2ex(x)=(1+ex)2ex=(1+ex)(1+ex)1+ex1=1+ex1(1+ex)(1+ex)1=(11+ex1)(1+ex1)=[1σ(x)]σ(x)
  • tanh函数 f ( x ) = e x − e − x e x + e − x f(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} f(x)=ex+exexex:在 RNN 循环神经网络中用的较多,叫双曲正切函数
    t a n h : f ′ ( x ) = ( e x − e − x e x + e − x ) ′ = [ ( e x − e − x ) ( 1 e x + e − x ) ] ′ = ( e x − e − x ) ′ ⋅ ( 1 e x + e − x ) + ( e x − e − x ) ⋅ ( 1 e x + e − x ) ′ = ( e x + e − x e x + e − x ) + ( e x − e − x ) ⋅ [ − 1 ( e x + e − x ) 2 ] ⋅ ( e x + e − x ) ′ = 1 + [ − ( e x − e − x ) ( e x + e − x ) 2 ] ⋅ ( e x − e − x ) = 1 + [ − ( e x − e − x ) 2 ( e x + e − x ) 2 ] = 1 − ( e x − e − x e x + e − x ) 2 = 1 − [ f ( x ) ] 2 tanh :f'(x)={(\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}})}'= \left [ (e^{x}-e^{-x})(\frac{1}{e^{x}+e^{-x}}) \right ]' =(e^{x}-e^{-x})'\cdot(\frac{1}{e^{x}+e^{-x}})+(e^{x}-e^{-x})\cdot(\frac{1}{e^{x}+e^{-x}})' =(\frac{e^{x}+e^{-x}}{e^{x}+e^{-x}})+(e^{x}-e^{-x})\cdot \left [-\frac{1}{(e^{x}+e^{-x})^{2}}\right ]\cdot({e^{x}+e^{-x}})' =1+\left [-\frac{(e^{x}-e^{-x})}{(e^{x}+e^{-x})^{2}}\right ]\cdot({e^{x}-e^{-x}}) =1+\left [-\frac{(e^{x}-e^{-x})^{2}}{(e^{x}+e^{-x})^{2}}\right ] =1-(\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}})^{2} =1-[f(x)]^{2} tanhf(x)=(ex+exexex)=[(exex)(ex+ex1)]=(exex)(ex+ex1)+(exex)(ex+ex1)=(ex+exex+ex)+(exex)[(ex+ex)21](ex+ex)=1+[(ex+ex)2(exex)](exex)=1+[(ex+ex)2(exex)2]=1(ex+exexex)2=1[f(x)]2

五、高阶导数

前面学的是一阶导数,对导数再次求导就是高阶导数,二阶和二阶以上的导数统称为高阶导数。

示例:

  • 二阶导数 f ′ ′ ( x ) f''(x) f(x),相当于对一阶导数 f ′ ( x ) f'(x) f(x) 进行再次的求导 ( f ′ ( x ) ) ′ (f'(x))' (f(x))
  • 如:求 6 x 3 6x^{3} 6x3 的二阶导数,可先求一阶导 ( 6 x 3 ) ′ = 18 x 2 (6x^{3})'=18x^{2} (6x3)=18x2,之后在一阶导的基础上再次求导可得 ( 6 x 3 ) ′ ′ = ( 18 x 2 ) ′ = 36 x (6x^{3})''=(18x^{2})'=36x (6x3)=(18x2)=36x
  • n 阶导数可写成 f n ( x ) f^{n}(x) fn(x)

六、一元函数微分学的几何应用

导数与函数单调性的关系

可以通过函数的一阶导数来判断函数的单调性:

  • f ′ ( x ) > 0 ↑ f'(x)>0 ↑ f(x)>0:函数的导数大于 0,函数是单调增的。
  • f ′ ( x ) < 0 ↓ f'(x)<0 ↓ f(x)<0:函数的导数小于 0,函数是单调减的。

示例:
导数与函数单调性的关系

极值定理

对于可导函数,在极值位置必然有函数的导数等于0 ,即 f ′ ( x ) = 0 f'(x)=0 f(x)=0 ,因此导数为人们寻找极值提供了依据。

注意:极值处函数的导数等于 0,这是必要条件,但不是充分条件,因为极值处的导数必然等于 0,但是导数等于 0 处不代表一定是极值。

示例:
极值定理

一阶可导点是极值点的必要条件
f ( x ) f(x) f(x) x = x 0 x=x_0 x=x0 处可导,且在点 x 0 x_0 x0 处取得极值,则必有 f ′ ( x 0 ) = 0 f'(x_0)=0 f(x0)=0

导数与函数凹凸性的关系

函数的二阶导数是和函数的凹凸性是有关系的

函数凹凸性
在这里插入图片描述
判别凹凸性

设函数 f ( x ) f(x) f(x) I I I 上二阶可导,
① 若在 I I I f ′ ′ ( x ) > 0 f''(x)>0 f(x)>0,则 f ( x ) f(x) f(x) I I I 上的图形是凹的(或凹弧)
② 若在 I I I f ′ ′ ( x ) < 0 f''(x)<0 f(x)<0,则 f ( x ) f(x) f(x) I I I 上的图形是凸的(或凸弧)

驻点

驻点是函数增减性的交替点,一侧增一侧减或一侧减一侧增
驻点处: f ′ ( x ) = 0 f'(x)=0 f(x)=0

拐点

拐点是连续曲线的凹弧与凸弧的分界线,一侧凹一侧凸或一侧凸一侧凹
二阶可导点是拐点的必要条件:设 f ′ ′ ( x ) f''(x) f(x) 存在,且点 ( x 0 , f ( x 0 ) ) (x_0,f(x_0)) (x0,f(x0)) 为曲线上的拐点,则 f ′ ′ ( x ) = 0 f''(x)=0 f(x)=0

小贴士
对于函数的凹凸性,存在着不同的可能相反的说法,具体可见:函数的凹凸性 - 百度百科

七、一元函数泰勒展开

泰勒展开是通过多项式函数来近似一个可导函数 f ( x ) f(x) f(x),在 x = x 0 x=x_0 x=x0 处进行泰勒展开,如果函数 f ( x ) f(x) f(x) 是 n 阶可导的。常数项 + 一阶项 + 二阶项… 一直加到 n 的阶乘分之一乘以 n 阶导数。
f ( x ) = f ( x 0 ) 0 ! + f ′ ( x 0 ) 1 ! ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + . . . + f ( n ) ( x 0 ) n ! ( x − x 0 ) n + R n ( x ) f(x)=\frac{f(x_0)}{0!}+\frac{f'(x_0)}{1!}(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^{2}+... +\frac{f^{(n)}(x_0)}{n!}(x-x_0)^{n}+R_{n}(x) f(x)=0!f(x0)+1!f(x0)(xx0)+2!f(x0)(xx0)2+...+n!f(n)(x0)(xx0)n+Rn(x)

泰勒展开在机器学习中,主要用于求函数的极值,很多时候函数 f ( x ) f(x) f(x) 可能会非常复杂,因此会用泰勒展开做一个近似。如:

  • 梯度下降法:是做一个近似,只保留泰勒展开一阶项;
  • 牛顿法:是保留泰勒展开二阶项,忽略二阶以上的项,用二次函数来进行函数 f ( x ) f(x) f(x)

小贴士 之 博客插入数学公式的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值