集成学习-高等数学基础-基于python(DataWhale第二期)

1.函数

【转载自B站:萌弟AI数学基础基于Python】

1.1 函数的定义

定义:设数集 D ⊂ R ,  则称映射  f : D → R  为定义在  D  上的函数,通常简记为  D \subset {\mathbf{R}}, \text { 则称映射 } f: D \rightarrow \mathbf{R} \text { 为定义在 } D \text { 上的函数,通常简记为 } DR, 则称映射 f:DR 为定义在 D 上的函数,通常简记为 
y = f ( x ) , x ∈ D y=f(x), x \in D y=f(x),xD
函数定义中,对每个 x ∈ D x \in D xD,按对应法则 f f f,总有唯一确定的值 y y y 与之对应, 这个值称为函数 f f f x x x 处的函数值,记作 f ( x ) , f(x), f(x), y = f ( x ) . y=f(x) . y=f(x). 因变量 y y y 与自变量 x x x 之间的这种依赖关系,通常称为函数关系. 函数值 f ( x ) f(x) f(x) 的全体所构成的集合称为函数 f f f 的值域,记作 R f R_{f} Rf f ( D ) , f(D), f(D),
R f = f ( D ) = { y ∣ y = f ( x ) , x ∈ D } R_{f}=f(D)=\{y \mid y=f(x), x \in D\} Rf=f(D)={yy=f(x),xD}

说白了,函数就是实数集到实数集的一个映射,如:
y = ∣ x ∣ = { x , x ⩾ 0 − x , x < 0 y=|x|=\left\{\begin{array}{ll} x, & x \geqslant 0 \\ -x, & x<0 \end{array}\right. y=x={x,x,x0x<0
的定义域 D = ( − ∞ , + ∞ ) , D=(-\infty,+\infty), D=(,+), 值域 R f = [ 0 , + ∞ ) , R_{f}=[0,+\infty), Rf=[0,+), 它的图形如下图所示.这函数称为绝对值函数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KISxeonB-1626186414712)(./image/高等数学/1.png)]

1.2 反函数

设函数 f : D → f ( D ) f: D \rightarrow f(D) f:Df(D) 是单射,则它存在逆映射 f − 1 : f ( D ) → D , f^{-1}: f(D) \rightarrow D, f1:f(D)D, 称此映射 f − 1 f^{-1} f1 为函数 f f f 的反函数。按此定义,对每个 y ∈ f ( D ) , y \in f(D), yf(D), 有唯一的 x ∈ D , x \in D, xD, 使得 f ( x ) = y , f(x)=y, f(x)=y, 于是有 f − 1 ( y ) = x f^{-1}(y)=x f1(y)=x
这就是说,反函数 f − 1 f^{-1} f1 的对应法则是完全由函数 f f f 的对应法则所确定的. 例如,函数 y = x 3 , x ∈ R y=x^{3}, x \in \mathbf{R} y=x3,xR 是单射, 所以它的反函数存在,其反函数为
x = y 1 3 , y ∈ R x=y^{\frac{1}{3}}, y \in \mathbf{R} x=y31,yR
由于习惯上自变量用 x x x 表示,因变量用 y y y 表示,于是 y = x 3 , x ∈ R y=x^{3}, x \in \mathbf{R} y=x3,xR 的反函数通常写作 y = x 1 3 , x ∈ R y=x^{\frac{1}{3}}, x \in \mathbf{R} y=x31,xR。一般的, y = f ( x ) , x ∈ D y=f(x), x \in D y=f(x),xD 的反函数记成 y = f − 1 ( x ) , x ∈ f ( D ) y=f^{-1}(x), x \in f(D) y=f1(x),xf(D).

在这里插入图片描述

1.3 复合函数

设函数 y = f ( u ) y=f(u) y=f(u) 的定义城为 D f , D_{f}, Df, 函数 u = g ( x ) u=g(x) u=g(x) 的定义域为 D x , D_{x}, Dx, 且其值域 R g ⊂ D t , R_{g} \subset D_{t}, RgDt, 则由下式确定的函数
y = f [ g ( x ) ] , x ∈ D x y=f[g(x)], \quad x \in D_{x} y=f[g(x)],xDx
称为由函数 u = g ( x ) u=g(x) u=g(x) 与函数 y = f ( u ) y=f(u) y=f(u) 构成的复合函数,它的定义域为 D x D_{x} Dx ,变量 u u u 称为中间变量。

例子:物体运动的动能为 E = m v 2 / 2 , E=m v^{2} / 2, E=mv2/2, 而自由落体的速度为 v = g t , v=g t, v=gt, 所以自由落体的动能是时间 t t t 的复合函数 :
E = 1 2 m g 2 t 2 E=\frac{1}{2} m g^{2} t^{2} E=21mg2t2

2.导数

2.1 引例

引例1:已知位移求瞬时速度
物体作变速直线运动,已知物体的位置与时间的关系是 s = f ( t ) , s=f(t), s=f(t), 求物体在 t = t 0 t=t_{0} t=t0 时的瞬时速度为 v ( t 0 ) v(t_0) v(t0)
当时间由 t 0 t_{0} t0 变化到 t 0 + Δ t t_{0}+\Delta t t0+Δt 时,
物体的位移 Δ s = f ( t 0 + Δ t ) − f ( t 0 ) \Delta \boldsymbol{s}=\boldsymbol{f}\left(\boldsymbol{t}_{0}+\Delta t\right)-\boldsymbol{f}\left(t_{0}\right) Δs=f(t0+Δt)f(t0)
所以物体在这段时间的平均速度 v ˉ = Δ s Δ t \bar{v}=\frac{\Delta s}{\Delta t} vˉ=ΔtΔs.
怎样把平均速度与瞬时速度联系起来?
因为在短时间内速度变化不大,所以可用物体在 t 0 t_{0} t0 附近的平均速度近似 t 0 t_{0} t0 时刻的瞬时速度.
v ( t 0 ) ≈ Δ s Δ t ( Δ t \boldsymbol{v}\left(\boldsymbol{t}_{0}\right) \approx \frac{\Delta \boldsymbol{s}}{\Delta \boldsymbol{t}} \quad(\Delta t v(t0)ΔtΔs(Δt越小误差越小 ) ) )
为了得到瞬时速度的精确概念,把瞬时速度理解成当时间段无限缩小时平均速度的极限。
v ( t 0 ) = lim ⁡ Δ t → 0 Δ s Δ t = lim ⁡ Δ t → 0 f ( t 0 + Δ t ) − f ( t 0 ) Δ t \boldsymbol{v}\left(\boldsymbol{t}_{0}\right)=\lim _{\Delta t \rightarrow 0} \frac{\Delta \boldsymbol{s}}{\Delta t}=\lim _{\Delta t \rightarrow 0} \frac{\boldsymbol{f}\left(\boldsymbol{t}_{0}+\Delta t\right)-\boldsymbol{f}\left(\boldsymbol{t}_{0}\right)}{\Delta \boldsymbol{t}} v(t0)=limΔt0ΔtΔs=limΔt0Δtf(t0+Δt)f(t0)
所以瞬时速度是位移对时间的瞬时变化率。
引例2:曲线的切线
求曲线 y = f ( x ) \boldsymbol{y}=\boldsymbol{f}(\boldsymbol{x}) y=f(x) 在点 M ( x 0 , f ( x 0 ) ) \boldsymbol{M}\left(\boldsymbol{x}_{0}, \boldsymbol{f}\left(\boldsymbol{x}_{0}\right)\right) M(x0,f(x0)) 处的切线方程:
在曲线上点 M M M 附近取一点 N N N, 作直线 M N M N MN (割线).
当点N沿着曲线趋向于 M M M 时,如果割线 M N M N MN有一个极限位置,就把此极限位置理解为曲线在点M处的切线。

在这里插入图片描述

相应的,切线的斜率等于割线斜率的极限。割线 M N M N MN 的斜率为 Δ y Δ x = f ( x 0 + Δ x ) − f ( x 0 ) Δ x \frac{\Delta y}{\Delta x}=\frac{f\left(x_{0}+\Delta x\right)-f\left(x_{0}\right)}{\Delta x} ΔxΔy=Δxf(x0+Δx)f(x0)
切线的斜率为
k = lim ⁡ Δ x → 0 Δ y Δ x = lim ⁡ Δ x → 0 f ( x 0 + Δ x ) − f ( x 0 ) Δ x \begin{aligned} k &=\lim _{\Delta x \rightarrow 0} \frac{\Delta y}{\Delta x} \\ &=\lim _{\Delta x \rightarrow 0} \frac{f\left(x_{0}+\Delta x\right)-f\left(x_{0}\right)}{\Delta x} \end{aligned} k=Δx0limΔxΔy=Δx0limΔxf(x0+Δx)f(x0)

2.2 导数的定义

定义:设函数 y = f ( x ) y=f(x) y=f(x) 在点 x 0 x_{0} x0 的某个邻域内有定义,当自变量 x x x x 0 x_{0} x0 处取得增量
Δ x \Delta x Δx ;如果 Δ y \Delta y Δy Δ x \Delta x Δx 之比当 Δ x → 0 \Delta x \rightarrow 0 Δx0 时的 极限存在, 则称函数 y = y= y= f ( x ) f(x) 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^{\prime}\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^{\prime}\left(x_{0}\right)=\lim _{\Delta, x \rightarrow 0} \frac{\Delta y}{\Delta x}=\lim _{\Delta x \rightarrow 0} \frac{f\left(x_{0}+\Delta x\right)-f\left(x_{0}\right)}{\Delta x} f(x0)=Δ,x0limΔxΔy=Δx0limΔxf(x0+Δx)f(x0)
也可记作 y ′ ∣ x = x 0 \left.y^{\prime}\right|_{x=x_{0}} yx=x0, d y   d x ∣ x = x 0 \left.\frac{\mathrm{d} y}{\mathrm{~d} x}\right|_{x=x_{0}}  dxdyx=x0在这里插入图片描述

**简单的说,导数就是因变量的增量与自变量的增量之比的极限。**尝试使用函数导数的定义推导 y = x 2 y = x^2 y=x2的导数?

2.3 函数的求导法则

(1) 函数的和差积商的求导法则:
[ u ( x ) ± v ( x ) ] ′ = u ′ ( x ) ± v ′ ( x ) [ u ( x ) v ( x ) ] ′ = u ′ ( x ) v ( x ) + u ( x ) v ′ ( x ) [ u ( x ) v ( x ) ] ′ = u ′ ( x ) v ( x ) − u ( x ) v ′ ( x ) v 2 ( x ) ( v ( x ) ≠ 0 ) [u(x) \pm v(x)]^{\prime}=u^{\prime}(x) \pm v^{\prime}(x)\\ [u(x) v(x)]^{\prime}=u^{\prime}(x) v(x)+u(x) v^{\prime}(x) \\ \left[\frac{u(x)}{v(x)}\right]^{\prime}=\frac{u^{\prime}(x) v(x)-u(x) v^{\prime}(x)}{v^{2}(x)}(v(x) \neq 0) [u(x)±v(x)]=u(x)±v(x)[u(x)v(x)]=u(x)v(x)+u(x)v(x)[v(x)u(x)]=v2(x)u(x)v(x)u(x)v(x)(v(x)=0)

例子:
y = 2 x 3 − 5 x 2 + 3 x − 7 y=2 x^{3}-5 x^{2}+3 x-7 y=2x35x2+3x7的导数?
解:
y ′ = ( 2 x 3 − 5 x 2 + 3 x − 7 ) ′ = ( 2 x 3 ) ′ − ( 5 x 2 ) ′ + ( 3 x ) ′ − ( 7 ) ′ = 2 ⋅ 3 x 2 − 5 ⋅ 2 x + 3 − 0 = 6 x 2 − 10 x + 3 \begin{aligned} y^{\prime} &=\left(2 x^{3}-5 x^{2}+3 x-7\right)^{\prime} \\ &=\left(2 x^{3}\right)^{\prime}-\left(5 x^{2}\right)^{\prime}+(3 x)^{\prime}-(7)^{\prime} \\ &=2 \cdot 3 x^{2}-5 \cdot 2 x+3-0=6 x^{2}-10 x+3 \end{aligned} y=(2x35x2+3x7)=(2x3)(5x2)+(3x)(7)=23x252x+30=6x210x+3

(2)复合函数的求导法则:
如果 u = g ( x ) u=g(x) u=g(x) 在点 x x x 可导, 而 y = f ( u ) y=f(u) y=f(u) 在点 u = g ( x ) u=g(x) u=g(x) 可导, 则:
d y   d x = f ′ ( u ) ⋅ g ′ ( x )  或  d y   d x = d y   d u ⋅ d u   d x \frac{\mathrm{d} y}{\mathrm{~d} x}=f^{\prime}(u) \cdot g^{\prime}(x) \quad \text { 或 } \quad \frac{\mathrm{d} y}{\mathrm{~d} x}=\frac{\mathrm{d} y}{\mathrm{~d} u} \cdot \frac{\mathrm{d} u}{\mathrm{~d} x}  dxdy=f(u)g(x)   dxdy= dudy dxdu

例子:
y = e x 3 , y=e^{x^{3}}, y=ex3, d y d x \frac{d y}{d x} dxdy.
y = e x 3 y=\mathrm{e}^{x^{3}} y=ex3 可看作由 y = e ′ ′ , u = x 3 y=\mathrm{e}^{\prime \prime}, u=x^{3} y=e,u=x3 复合而成, 因此
d y   d x = d y   d u ⋅ d u   d x = e u ⋅ 3 x 2 = 3 x 2 e x 3 \frac{\mathrm{d} y}{\mathrm{~d} x}=\frac{\mathrm{d} y}{\mathrm{~d} u} \cdot \frac{\mathrm{d} u}{\mathrm{~d} x}=\mathrm{e}^{u} \cdot 3 x^{2}=3 x^{2} \mathrm{e}^{x^{3}}  dxdy= dudy dxdu=eu3x2=3x2ex3

(3)常用的初等函数导数:
( 1 ) ( C ) ′ = 0 ,        ( 2 ) ( x ′ ′ ) ′ = μ x ′ ′ − 1 , ( 3 ) ( sin ⁡ x ) ′ = cos ⁡ x ,        ( 4 ) ( cos ⁡ x ) ′ = − sin ⁡ x , ( 5 ) ( tan ⁡ x ) ′ = sec ⁡ 2 x ,        ( 6 ) ( cot ⁡ x ) ′ = − csc ⁡ 2 x , ( 7 ) ( sec ⁡ x ) ′ = sec ⁡ x tan ⁡ x ,        ( 8 ) ( csc ⁡ x ) ′ = − csc ⁡ x cot ⁡ x , ( 9 ) ( a x ) ′ = a x ln ⁡ a ,        ( 10 ) ( e x ) ′ = e x , ( 11 ) ( log ⁡ a x ) ′ = 1 x ln ⁡ a ,        ( 12 ) ( ln ⁡ x ) ′ = 1 x , ( 13 ) ( arcsin ⁡ x ) ′ = 1 1 − x 2 ,        ( 14 ) ( arccos ⁡ x ) ′ = − 1 1 − x 2 , ( 15 ) ( arctan ⁡ x ) ′ = 1 1 + x 2 ,        ( 16 ) ( arccot ⁡ x ) ′ = − 1 1 + x 2 (1) (C)^{\prime}=0,\;\;\; (2) \left(x^{\prime \prime}\right)^{\prime}=\mu x^{\prime \prime-1},\\ (3) (\sin x)^{\prime}=\cos x,\;\;\; (4) (\cos x)^{\prime}=-\sin x,\\ (5) (\tan x)^{\prime}=\sec ^{2} x,\;\;\; (6) (\cot x)^{\prime}=-\csc ^{2} x,\\ (7) (\sec x)^{\prime}=\sec x \tan x,\;\;\; (8) (\csc x)^{\prime}=-\csc x \cot x,\\ (9) \left(a^{x}\right)^{\prime}=a^{x} \ln a,\;\;\; (10)\left(\mathrm{e}^{x}\right)^{\prime}=\mathrm{e}^{x},\\ (11)\left(\log _{a} x\right)^{\prime}=\frac{1}{x \ln a},\;\;\; (12) (\ln x)^{\prime}=\frac{1}{x},\\ (13) (\arcsin x)^{\prime}=\frac{1}{\sqrt{1-x^{2}}},\;\;\; (14) (\arccos x)^{\prime}=-\frac{1}{\sqrt{1-x^{2}}},\\ (15) (\arctan x)^{\prime}=\frac{1}{1+x^{2}},\;\;\; (16) (\operatorname{arccot} x)^{\prime}=-\frac{1}{1+x^{2}}\\ (1)(C)=0,(2)(x)=μx1,(3)(sinx)=cosx,(4)(cosx)=sinx,(5)(tanx)=sec2x,(6)(cotx)=csc2x,(7)(secx)=secxtanx,(8)(cscx)=cscxcotx,(9)(ax)=axlna,(10)(ex)=ex,(11)(logax)=xlna1,(12)(lnx)=x1,(13)(arcsinx)=1x2 1,(14)(arccosx)=1x2 1,(15)(arctanx)=1+x21,(16)(arccotx)=1+x21

2.4 高阶导数

若函数 y = f ( x ) y=f(x) y=f(x) 的导数 y ′ = f ′ ( x ) y^{\prime}=f^{\prime}(x) y=f(x) 可导,则称 f ′ ( x ) f^{\prime}(x) f(x) 的导数为 f ( x ) f(x) f(x) 的二阶导数,记作 y ′ ′ y^{\prime \prime} y d 2 y d x 2 , \frac{d^{2} y}{d x^{2}}, dx2d2y,
y ′ ′ = ( y ′ ) ′  或  d 2 y d x 2 = d d x ( d y d x ) y^{\prime \prime}=\left(y^{\prime}\right)^{\prime} \text { 或 } \frac{d^{2} y}{d x^{2}}=\frac{d}{d x}\left(\frac{d y}{d x}\right) y=(y)  dx2d2y=dxd(dxdy)
类似地,二阶导数的导数称为三阶导数,依次类推。二阶和二阶以上的导数统称为高阶导数。
例子:
求函数 ln ⁡ ( 1 + x ) \ln (1+x) ln(1+x) 的 2 阶导数:
解:
y = ln ⁡ ( 1 + x ) , y ′ = 1 1 + x y=\ln (1+x), y^{\prime}=\frac{1}{1+x} y=ln(1+x),y=1+x1 y ′ ′ = − 1 ( 1 + x ) 2 , y^{\prime \prime}=-\frac{1}{(1+x)^{2}}, y=(1+x)21,

3.多元函数

3.1 多元函数的相关概念

(1)n维空间:
n n n 为取定的一个正整数,我们用 R n \mathbf{R}^{n} Rn 表示 n n n 元有序实数组 ( x 1 , x 2 , ⋯   , \left(x_{1}, x_{2}, \cdots,\right. (x1,x2,,
x n ) \left.x_{n}\right) xn) 的全体所构成的集合, 即
R n = R × R × ⋯ × R = { ( x 1 , x 2 , ⋯   , x n ) ∣ x i ∈ R , i = 1 , 2 , ⋯   , n } \mathbf{R}^{n}=\mathbf{R} \times \mathbf{R} \times \cdots \times \mathbf{R}=\left\{\left(x_{1}, x_{2}, \cdots, x_{n}\right) \mid x_{i} \in \mathbf{R}, i=1,2, \cdots, n\right\} Rn=R×R××R={(x1,x2,,xn)xiR,i=1,2,,n}
R n \mathbf{R}^{n} Rn 中的元素 ( x 1 , x 2 , ⋯   , x n ) \left(x_{1}, x_{2}, \cdots, x_{n}\right) (x1,x2,,xn) 有时也用单个字母 x \boldsymbol{x} x 来表示, 即 x = ( x 1 , x 2 , ⋯   , \boldsymbol{x}=\left(x_{1}, x_{2}, \cdots,\right. x=(x1,x2,,
x n ) . \left.x_{n}\right) . xn). 当所有的 x i ( i = 1 , 2 , ⋯   , n ) x_{i}(i=1,2, \cdots, n) xi(i=1,2,,n) 都为零时,称这样的元素为 R n \mathbf{R}^{n} Rn 中的零元,记为
0或 O. 在解析几何中,通过直角坐标系, R 2 \mathbf{R}^{2} R2 (或 R 3 \mathbf{R}^{3} R3 )中的元素分别与平面(或空间)中的点或向量建立一一对应。
为了在集合 R n \mathbf{R}^{n} Rn 中的元素之间建立联系,在 R n \mathbf{R}^{n} Rn 中定义线代运算如下:

x = ( x 1 , x 2 , ⋯   , x n ) , y = ( y 1 , y 2 , ⋯   , y n ) x=\left(x_{1}, x_{2}, \cdots, x_{n}\right), y=\left(y_{1}, y_{2}, \cdots, y_{n}\right) x=(x1,x2,,xn),y=(y1,y2,,yn) R n \mathbf{R}^{n} Rn 中任意两个元素 , λ ∈ R , \lambda \in \mathbf{R} ,λR规定:
x + y = ( x 1 + y 1 , x 2 + y 2 , ⋯   , x n + y n ) , λ x = ( λ x 1 , λ x 2 , ⋯   , λ x n ) \begin{array}{l} x+y=\left(x_{1}+y_{1}, x_{2}+y_{2}, \cdots, x_{n}+y_{n}\right), \\ \lambda x=\left(\lambda x_{1}, \lambda x_{2}, \cdots, \lambda x_{n}\right) \end{array} x+y=(x1+y1,x2+y2,,xn+yn),λx=(λx1,λx2,,λxn)
这样定义了线性运算的集合 R n \mathbf{R}^{n} Rn 称为 n n n 维空间.
R n \mathbf{R}^{n} Rn 中点 x = ( x 1 , x 2 , ⋯   , x n ) \boldsymbol{x}=\left(x_{1}, x_{2}, \cdots, x_{n}\right) x=(x1,x2,,xn) 和点 y = ( y 1 , y 2 , ⋯   , y n ) \boldsymbol{y}=\left(y_{1}, y_{2}, \cdots, y_{n}\right) y=(y1,y2,,yn) 间的距离, 记作 ρ ( x , y ) , \rho(x, y), ρ(x,y), 规定
ρ ( x , y ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + ⋯ + ( x n − y n ) 2 \rho(x, y)=\sqrt{\left(x_{1}-y_{1}\right)^{2}+\left(x_{2}-y_{2}\right)^{2}+\cdots+\left(x_{n}-y_{n}\right)^{2}} ρ(x,y)=(x1y1)2+(x2y2)2++(xnyn)2
(2)二元函数:
D D D R 2 \mathbf{R}^{2} R2 的一个非空子集,称映射 f : D → R f: D \rightarrow \mathbf{R} f:DR 为定义在 D D D 上的二元函数,通常记为
z = f ( x , y ) , ( x , y ) ∈ D z=f(x, y),(x, y) \in D z=f(x,y),(x,y)D

z = f ( P ) , P ∈ D z=f(P), P \in D z=f(P),PD

在这里插入图片描述

3.2 多元函数的偏导数

定义:
设二元函数 = f ( x , y ) =f(x, y) =f(x,y) 在点 ( x 0 , y 0 ) \left(x_{0}, y_{0}\right) (x0,y0) 的某一邻域内有定义,当固定在 y 0 y_{0} y0 而x在 x 0 x_{0} x0 处有增量 Δ x \Delta x Δx时, 相应的函数有增量 Δ x z = f ( x 0 + Δ x , y 0 ) − f ( x 0 , y 0 ) . \Delta_{x} z=f\left(x_{0}+\Delta x, y_{0}\right)-f\left(x_{0}, y_{0}\right) . Δxz=f(x0+Δx,y0)f(x0,y0).
如果 lim ⁡ Δ x → 0 Δ x z Δ x \lim _{\Delta x \rightarrow 0} \frac{\Delta_{x} z}{\Delta x} limΔx0ΔxΔxz 存在,就称此极限为函数 z = f ( x , y ) z=f(x, y) z=f(x,y)
在点( x 0 , y 0 ) \left.x_{0}, y_{0}\right) x0,y0) 处对x的偏导数.
记作 ∂ z ∂ x ∣ ( x 0 , y 0 ) , ∂ f ∂ x ∣ ( x 0 , y 0 ) , z x ∣ ( x 0 , y 0 ) , f x ( x 0 , y 0 ) . \frac{\partial z}{\partial x}\left|\left(x_{0}, y_{0}\right), \frac{\partial f}{\partial x}\right|\left(x_{0}, y_{0}\right)^{, z_{x} \mid\left(x_{0}, y_{0}\right)}, f_{x}\left(x_{0}, y_{0}\right) . xz(x0,y0),xf(x0,y0),zx(x0,y0),fx(x0,y0).
∂ z ∂ x ∣ ( x 0 , y 0 ) = lim ⁡ Δ x → 0 Δ x z Δ x = lim ⁡ Δ x → 0 f ( x 0 + Δ x , y 0 ) − f ( x 0 , y 0 ) Δ x \left.\frac{\partial z}{\partial x}\right|_{\left(x_{0}, y_{0}\right)}=\lim _{\Delta x \rightarrow 0} \frac{\Delta_{x} z}{\Delta x}=\lim _{\Delta x \rightarrow 0} \frac{f\left(x_{0}+\Delta x, y_{0}\right)-f\left(x_{0}, y_{0}\right)}{\Delta x} xz(x0,y0)=limΔx0ΔxΔxz=limΔx0Δxf(x0+Δx,y0)f(x0,y0)
例子:
z = x 2 + 3 x y + y 2 z=x^{2}+3 x y+y^{2} z=x2+3xy+y2 在点 (1,2) 处的偏导数.
解:
y y y 看做常数,得
∂ z ∂ x = 2 x + 3 y \frac{\partial z}{\partial x}=2 x+3 y xz=2x+3y
x x x 看做常数,得
∂ z ∂ y = 3 x + 2 y \frac{\partial z}{\partial y}=3 x+2 y yz=3x+2y
将(1,2)代人上面的结果,就得
∂ z ∂ x ∣ x = 1 y = 2 = 2 ⋅ 1 + 3 ⋅ 2 = 8 ∂ z ∂ y ∣ x = 1 y = 2 = 3 ⋅ 1 + 2 ⋅ 2 = 7 \begin{array}{l} \left.\frac{\partial z}{\partial x}\right|_{x=1 \atop y=2}=2 \cdot 1+3 \cdot 2=8 \\ \left.\frac{\partial z}{\partial y}\right|_{x=1 \atop y=2}=3 \cdot 1+2 \cdot 2=7 \end{array} xzy=2x=1=21+32=8yzy=2x=1=31+22=7

在这里插入图片描述

3.3 梯度向量

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
定义:设二元函数 z = f ( x , y ) z=f(x, y) z=f(x,y) 在平面区域D上具有一阶连续偏导数,则对于每一个点P(x, y)都可定出一个向量 { ∂ f ∂ x , ∂ f ∂ y } = f x ( x , y ) i ˉ + f y ( x , y ) j ˉ , \left\{\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}\right\}=f_{x}(x, y) \bar{i}+f_{y}(x, y) \bar{j}, {xf,yf}=fx(x,y)iˉ+fy(x,y)jˉ, 该函数就称为函数 z = f ( x , y ) z=f(x, y) z=f(x,y) 在点P ( x , y ) (\mathrm{x}, \mathrm{y}) (x,y) 的梯度,记作gradf ( x , y ) (\mathrm{x}, \mathrm{y}) (x,y)
∇ f ( x , y ) \nabla f(x, y) f(x,y),即有:
gradf ⁡ ( x , y ) = ∇ f ( x , y ) = { ∂ f ∂ x , ∂ f ∂ y } = f x ( x , y ) i ˉ + f y ( x , y ) j ˉ \operatorname{gradf}(\mathrm{x}, \mathrm{y})=\nabla f(x, y)=\left\{\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}\right\}=f_{x}(x, y) \bar{i}+f_{y}(x, y) \bar{j} gradf(x,y)=f(x,y)={xf,yf}=fx(x,y)iˉ+fy(x,y)jˉ
其中 ∇ = ∂ ∂ x i ˉ + ∂ ∂ y j ˉ \nabla=\frac{\partial}{\partial x} \bar{i}+\frac{\partial}{\partial y} \bar{j} =xiˉ+yjˉ 称为(二维的)向量微分算子或Nabla算子, ∇ f = ∂ f ∂ x i ˉ + ∂ f ∂ y j ˉ \nabla f=\frac{\partial f}{\partial x} \bar{i}+\frac{\partial f}{\partial y} \bar{j} f=xfiˉ+yfjˉ
例子:请你计算 f ( x , y ) = x 2 + y 2 f(x,y) = x^2 + y^2 f(x,y)=x2+y2的梯度向量。
在这里插入图片描述

3.4 雅克比矩阵(Jacobian矩阵)

假设 F : R n → R m F: \mathbb{R}_{n} \rightarrow \mathbb{R}_{m} F:RnRm 是一个从n维欧氏空间映射到到m维欧氏空间的函数。
这个函数由m个实函数组成:
y 1 ( x 1 , ⋯   , x n ) , ⋯   , y m ( x 1 , ⋯   , x n ) y_{1}\left(x_{1}, \cdots, x_{n}\right), \cdots, y_{m}\left(x_{1}, \cdots, x_{n}\right) y1(x1,,xn),,ym(x1,,xn) 。这些函数的偏导数(如果存在)可以组成一个m行n列的矩阵,这个矩阵就是所谓的雅可 比矩阵:
[ ∂ y 1 ∂ x 1 ⋯ ∂ y 1 ∂ x n ⋮ ⋱ ⋮ ∂ y m ∂ x 1 ⋯ ∂ y m ∂ x n ] \left[\begin{array}{ccc} \frac{\partial y_{1}}{\partial x_{1}} & \cdots & \frac{\partial y_{1}}{\partial x_{n}} \\ \vdots & \ddots & \vdots \\ \frac{\partial y_{m}}{\partial x_{1}} & \cdots & \frac{\partial y_{m}}{\partial x_{n}} \end{array}\right] x1y1x1ymxny1xnym
可见,梯度向量是雅克比矩阵的特例!
例子:求 F = ( f 1 ( x , y ) , f ( x , y ) ) T F=(f_1(x,y),f_(x,y))^T F=(f1(x,y),f(x,y))T的雅克比矩阵,其中 f 1 ( x , y ) = 2 x 2 + y 2 , f 2 ( x , y ) = x 2 + 3 y 2 f_1(x,y) = 2x^2 + y^2,f_2(x,y) = x^2 + 3y^2 f1(x,y)=2x2+y2,f2(x,y)=x2+3y2
在这里插入图片描述
在这里插入图片描述

3.5 海森矩阵(Hessian 矩阵)

黑塞矩阵(Hessian Matrix),又译作海森矩阵、海瑟矩阵、海塞矩阵等,是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。
在数学中,海森矩阵(Hessian matrix 或 Hessian)是一个自变量为向量的实值函数的二阶偏导数组成的方块矩阵,假設有一实数函数
f ( x 1 , x 2 , … , x n ) f\left(x_{1}, x_{2}, \ldots, x_{n}\right) f(x1,x2,,xn)
如果 f f f 所有的二阶偏导数都存在,那么 f f f 的海森矩阵的第 i j i j ij 项,即:
H ( f ) i j ( x ) = D i D j f ( x ) H(f)_{i j}(x)=D_{i} D_{j} f(x) H(f)ij(x)=DiDjf(x)
其中 x = ( x 1 , x 2 , … , x n ) , x=\left(x_{1}, x_{2}, \ldots, x_{n}\right), x=(x1,x2,,xn),
H ( f ) = [ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 ⋯ ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 ⋯ ∂ 2 f ∂ x 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ∂ x n ∂ x 1 ∂ 2 f ∂ x n ∂ x 2 ⋯ ∂ 2 f ∂ x n 2 ] H(f)=\left[\begin{array}{cccc} \frac{\partial^{2} f}{\partial x_{1}^{2}} & \frac{\partial^{2} f}{\partial x_{1} \partial x_{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{1} \partial x_{n}} \\ \frac{\partial^{2} f}{\partial x_{2} \partial x_{1}} & \frac{\partial^{2} f}{\partial x_{2}^{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{2} \partial x_{n}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^{2} f}{\partial x_{n} \partial x_{1}} & \frac{\partial^{2} f}{\partial x_{n} \partial x_{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{n}^{2}} \end{array}\right] H(f)=x122fx2x12fxnx12fx1x22fx222fxnx22fx1xn2fx2xn2fxn22f
实际上,Hessian矩阵是梯度向量g(x)对自变量x的Jacobian矩阵。
例子:求 f ( x , y ) = 2 x 2 + y 2 f(x,y)=2x^2+y^2 f(x,y)=2x2+y2的海森矩阵。
在这里插入图片描述

4.函数的极值问题

4.1 函数的极值与最值的概念

极值:设函数 f ( x ) f(x) f(x) 在点 x 0 x_{0} x0 的某邻域 U ( x 0 ) U\left(x_{0}\right) U(x0) 内有定义,如果对于去心邻域U ( x 0 ) \left(x_{0}\right) (x0) 内的任一 x x x, 有 A
f ( x ) < f ( x 0 )  或  f ( x ) > f ( x 0 ) f(x)<f\left(x_{0}\right) \text { 或 } f(x)>f\left(x_{0}\right) f(x)<f(x0)  f(x)>f(x0)
那么就称 f ( x 0 ) f\left(x_{0}\right) f(x0) 是函数的一个极大值或极小值。函数的极大值和极小值统称为函数的极值, 使函数取得极值的点被称作极值点。

在这里插入图片描述

最值是函数在其定义域内取得最大值(或最小值)的点的函数值。极值是局部性的概念,而最值是全局性的概念。

4.2 最优性条件

一元函数框架下:

1.判定极值的一阶充分条件:
设函数 f ( x ) f(x) f(x) x 0 x_{0} x0 处连续,且在 x 0 x_{0} x0 的某去心邻域 U ( x 0 , δ ) U\left(x_{0}, \delta\right) U(x0,δ) 内可导
(1) 若 x ∈ ( x 0 − δ , x 0 ) x \in\left(x_{0}-\delta, x_{0}\right) x(x0δ,x0) 时, f ′ ( x ) > 0 , f^{\prime}(x)>0, f(x)>0, x ∈ ( x 0 , x 0 + δ ) x \in\left(x_{0}, x_{0}+\delta\right) x(x0,x0+δ) 时, f ′ ( x ) < 0 , f^{\prime}(x)<0, f(x)<0, f ( x ) f(x) f(x) x 0 x_{0} x0 处取得极大值;
(2) 若 x ∈ ( x 0 − δ , x 0 ) x \in\left(x_{0}-\delta, x_{0}\right) x(x0δ,x0) 时, f ′ ( x ) < 0 f^{\prime}(x)<0 f(x)<0,而 x ∈ ( x 0 , x 0 + δ ) x \in\left(x_{0}, x_{0}+\delta\right) x(x0,x0+δ) 时, f ′ ( x ) > 0 f^{\prime}(x)>0 f(x)>0,则 f ( x ) f(x) f(x) x 0 x_{0} x0 处取得极小值
(3) 若 x ∈ U ˙ ( x 0 , δ ) x \in \dot{U}\left(x_{0}, \delta\right) xU˙(x0,δ) 时, f ′ ( x ) f^{\prime}(x) f(x) 的符号保持不变,则 f ( x ) f(x) f(x) x 0 x_{0} x0 处没有极值

在这里插入图片描述

2.判定极值的二阶充分条件:
设函数 f ( x ) f(x) f(x) x 0 x_{0} x0 处具有二阶导数且 f ′ ( x 0 ) = 0 , f ′ ′ ( x 0 ) ≠ 0 f^{\prime}\left(x_{0}\right)=0, \quad f^{\prime \prime}\left(x_{0}\right) \neq 0 f(x0)=0,f(x0)=0 那么:
(1) 当 f ′ ′ ( x 0 ) < 0 f^{\prime \prime}\left(x_{0}\right)<0 f(x0)<0 时,函数 f ( x ) f(x) f(x) x 0 x_{0} x0 处取得极大值;
(2) 当 f ′ ′ ( x 0 ) > 0 f^{\prime \prime}\left(x_{0}\right)>0 f(x0)>0 时,函数 f ( x ) f(x) f(x) x 0 x_{0} x0 处取得极小值.

多元函数框架下

定理:(二元函数取得极值的充分条件)如果函数 z = f ( x , y ) z=f(x, y) z=f(x,y) 在点 ( x 0 , y 0 ) \left(x_{0}, y_{0}\right) (x0,y0) 的某邻域内具有连续的二阶偏导数, ( x 0 , y 0 ) \left(x_{0}, y_{0}\right) (x0,y0) 是它的驻点,令:
A = f x x ( x 0 , y 0 ) , B = f x y ( x 0 , y 0 ) , C = f y y ( x 0 , y 0 ) Δ = B 2 − A C \begin{array}{c} A=f_{x x}\left(x_{0}, y_{0}\right), B=f_{x y}\left(x_{0}, y_{0}\right), C=f_{y y}\left(x_{0}, y_{0}\right) \\ \Delta=B^{2}-A C \end{array} A=fxx(x0,y0),B=fxy(x0,y0),C=fyy(x0,y0)Δ=B2AC
则:
(1)当 Δ < 0 \Delta<0 Δ<0 时, f ( x , y ) f(x, y) f(x,y) ( x 0 , y 0 ) \left(x_{0}, y_{0}\right) (x0,y0) 取得极值. 其中 A > 0 A>0 A>0 时取极小值, A < 0 A<0 A<0 时取极大值.
(2)当 Δ > 0 \Delta>0 Δ>0 时, f ( x 0 , y 0 ) f\left(x_{0}, y_{0}\right) f(x0,y0) 不是极值.
(3)当 Δ = 0 \Delta=0 Δ=0 时, 不能确定,需进一步判断.

更加严谨的表述:
设n多元实函数 f ( x 1 , x 2 , ⋯   , x n ) f\left(x_{1}, x_{2}, \cdots, x_{n}\right) f(x1,x2,,xn) 在点 M 0 ( a 1 , a 2 , … , a n ) M_{0}\left(a_{1}, a_{2}, \ldots, a_{n}\right) M0(a1,a2,,an) 的邻域内有二阶连续偏导,若有:
∂ f ∂ x j ∣ ( a 1 , a 2 , … , a n ) = 0 , j = 1 , 2 , … , n \left.\frac{\partial f}{\partial x_{j}}\right|_{\left(a_{1}, a_{2}, \ldots, a_{n}\right)}=0, j=1,2, \ldots, n xjf(a1,a2,,an)=0,j=1,2,,n
并且
A = [ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 ⋯ ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 ⋯ ∂ 2 f ∂ x 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ∂ x n ∂ x 1 ∂ 2 f ∂ x n ∂ x 2 ⋯ ∂ 2 f ∂ x n 2 ] A=\left[\begin{array}{cccc} \frac{\partial^{2} f}{\partial x_{1}^{2}} & \frac{\partial^{2} f}{\partial x_{1} \partial x_{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{1} \partial x_{n}} \\ \frac{\partial^{2} f}{\partial x_{2} \partial x_{1}} & \frac{\partial^{2} f}{\partial x_{2}^{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{2} \partial x_{n}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^{2} f}{\partial x_{n} \partial x_{1}} & \frac{\partial^{2} f}{\partial x_{n} \partial x_{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{n}^{2}} \end{array}\right] A=x122fx2x12fxnx12fx1x22fx222fxnx22fx1xn2fx2xn2fxn22f
则有如下结果:
(1) 当A正定矩阵时, f ( x 1 , x 2 , ⋯   , x n ) f\left(x_{1}, x_{2}, \cdots, x_{n}\right) f(x1,x2,,xn) M 0 ( a 1 , a 2 , … , a n ) M_{0}\left(a_{1}, a_{2}, \ldots, a_{n}\right) M0(a1,a2,,an) 处是极小值;
(2) 当A负定矩阵时, f ( x 1 , x 2 , ⋯   , x n ) f\left(x_{1}, x_{2}, \cdots, x_{n}\right) f(x1,x2,,xn) M 0 ( a 1 , a 2 , … , a n ) M_{0}\left(a_{1}, a_{2}, \ldots, a_{n}\right) M0(a1,a2,,an) 处是极大值;
(3) 当A不定矩阵时, M 0 ( a 1 , a 2 , … , a n ) M_{0}\left(a_{1}, a_{2}, \ldots, a_{n}\right) M0(a1,a2,,an) 不是极值点。
(4) 当A为半正定矩阵或半负定矩阵时, M 0 ( a 1 , a 2 , … , a n ) M_{0}\left(a_{1}, a_{2}, \ldots, a_{n}\right) M0(a1,a2,,an) 是“可疑"极值点,尚需要利用其他方法来判定。
在这里插入图片描述

例子:求三元函数 f ( x , y , z ) = x 2 + y 2 + z 2 + 2 x + 4 y − 6 z f(x, y, z)=x^{2}+y^{2}+z^{2}+2 x+4 y-6 z f(x,y,z)=x2+y2+z2+2x+4y6z 的极值。
解: 因为 ∂ f ∂ x = 2 x + 2 , ∂ f ∂ y = 2 y + 4 , ∂ f ∂ z = 2 z − 6 , \frac{\partial f}{\partial x}=2 x+2, \frac{\partial f}{\partial y}=2 y+4, \frac{\partial f}{\partial z}=2 z-6, xf=2x+2,yf=2y+4,zf=2z6, 故该三元函数的驻点是 (-1,-2,3) 。
又因为 ∂ 2 f ∂ x 2 = 2 , ∂ 2 f ∂ y 2 = 2 , ∂ 2 f ∂ z 2 = 2 , ∂ 2 f ∂ x ∂ y = 0 , ∂ 2 f ∂ x ∂ z = 0 , ∂ 2 f ∂ y ∂ z = 0 \frac{\partial^{2} f}{\partial x^{2}}=2, \frac{\partial^{2} f}{\partial y^{2}}=2, \frac{\partial^{2} f}{\partial z^{2}}=2, \frac{\partial^{2} f}{\partial x \partial y}=0, \frac{\partial^{2} f}{\partial x \partial z}=0, \frac{\partial^{2} f}{\partial y \partial z}=0 x22f=2,y22f=2,z22f=2,xy2f=0,xz2f=0,yz2f=0
故有: A = ( 2 0 0 0 2 0 0 0 2 ) A=\left(\begin{array}{ccc}2 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 2\end{array}\right) A=200020002
因为A是正定矩阵,故 (-1,-2,3) 是极小值点,且极小值 f ( − 1 , − 2 , 3 ) = − 14 f(-1,-2,3)=-14 f(1,2,3)=14

4.3 求带等式约束的优化问题(拉格朗日乘子法)

引例:
求表面积为 a 2 a^{2} a2 市体积最大的长方体的体积。
方法(1):化为无条件约束的优化问题,再使用4.2节的方法
设长方体的三棱的长为 x , y , z , x, y, z, x,y,z, 则体积
V = x y z V=x y z V=xyz
又因假定表面积为 a 2 , a^{2}, a2, 所以自变量 x , y , z x, \quad y, \quad z x,y,z 还必须满足附加条件
2 ( x y + y z + x z ) = a 2 2(x y+y z+x z)=a^{2} 2(xy+yz+xz)=a2
像这种对自变量有附加条件的极值问题称为条件极值。而没有附加条件的问题就叫无条件极值。 有条件极值可以化为无条件极值,例如上述问题,可将条件2 2 ( x y + y z + x z ) = a 2 , 2(x y+y z+x z)=a^{2}, 2(xy+yz+xz)=a2, z z z 表成 x , y x, \quad y x,y 的函数
z = a 2 − 2 x y 2 ( x + y ) z=\frac{a^{2}-2 x y}{2(x+y)} z=2(x+y)a22xy
再把它代人 V = x y z V=x y z V=xyz 中,于是问题就化为求
V = x y 2 ( a 2 − 2 x y x + y ) V=\frac{x y}{2}\left(\frac{a^{2}-2 x y}{x+y}\right) V=2xy(x+ya22xy)

方法(2):拉格朗日乘子法
问题:求函数 z = f ( x , y ) z=f(x, y) z=f(x,y) 在条件 φ ( x , y ) = 0 \varphi(x, y)=0 φ(x,y)=0 下的极值。
引入拉格朗日函数 L ( x , y ) = f ( x , y ) + λ φ ( x , y ) L(x, y)=f(x, y)+\lambda \varphi(x, y) L(x,y)=f(x,y)+λφ(x,y)
则极值点满足: { L x ( x 0 , y 0 ) = 0 L y ( x 0 , y 0 ) = 0 φ ( x 0 , y 0 ) = 0 \left\{\begin{array}{l}L_{x}\left(x_{0}, y_{0}\right)=0 \\ L_{y}\left(x_{0}, y_{0}\right)=0 \\ \varphi\left(x_{0}, y_{0}\right)=0\end{array}\right. Lx(x0,y0)=0Ly(x0,y0)=0φ(x0,y0)=0

回到之前求体积的例子,已知
2 ( x y + y z + x z ) = a 2 2(x y+{y} z+x z)=a^{2} 2(xy+yz+xz)=a2
拉格朗日函数可以写成
L ( x , y , z ) = x y z + λ ( 2 x y + 2 y z + 2 x z − a 2 ) L(x, y, z)=x y z+\lambda\left(2 x y+2 y z+2 x z-a^{2}\right) L(x,y,z)=xyz+λ(2xy+2yz+2xza2)
求其对 x , y , z x, y, z x,y,z 的偏导数,并使之为零,得到
y z + 2 λ ( y + z ) = 0 x z + 2 λ ( x + z ) = 0 x y + 2 λ ( y + x ) = 0 \begin{array}{l} y z+2 \lambda(y+z)=0 \\ x z+2 \lambda(x+z)=0 \\ x y+2 \lambda(y+x)=0 \end{array} yz+2λ(y+z)=0xz+2λ(x+z)=0xy+2λ(y+x)=0
上面三个式子在与条件等式联立,可得
x y = x + z y + z , y z = x + y x + z \frac{x}{y}=\frac{x+z}{y+z}, \frac{y}{z}=\frac{x+y}{x+z} yx=y+zx+z,zy=x+zx+y
解得: x = y = z = V 0 3 x=y=z=\sqrt[3]{V_{0}} x=y=z=3V0

5.泰勒公式

泰勒公式就是用一个多项式函数去逼近一个给定的函数(即尽量使多项式函数图像拟合给定的函数图像)。如果一个非常复杂函数,想求其某点的值,直接求无法实现,这时候可以使用泰勒公式去近似的求该值,这是泰勒公式的应用之一。泰勒公式在机器学习中主要应用于梯度迭代。
定义:设 n n n 是一个正整数。如果定义在一个包含a的区间上的函数 f f f a a a 点处 n + 1 n+1 n+1 次可导,那么对于这个区间上的任意 x x x 都有:
f ( x ) = f ( a ) 0 ! + f ′ ( a ) 1 ! ( x − a ) + f ′ ′ ( a ) 2 ! ( x − a ) 2 + ⋯ + f ( n ) ( a ) n ! ( x − a ) n + R n ( x ) = ∑ n = 0 N f ( n ) ( a ) n ! ( x − a ) n + R n ( x ) \begin{array}{c} f(x)=\frac{f(a)}{0 !}+\frac{f^{\prime}(a)}{1 !}(x-a)+\frac{f^{\prime \prime}(a)}{2 !}(x-a)^{2}+\cdots+\frac{f^{(n)}(a)}{n !}(x-a)^{n}+R_{n}(x) \\ =\sum_{n=0}^{N} \frac{f^{(n)}(a)}{n !}(x-a)^{n}+R_{n}(x) \end{array} f(x)=0!f(a)+1!f(a)(xa)+2!f(a)(xa)2++n!f(n)(a)(xa)n+Rn(x)=n=0Nn!f(n)(a)(xa)n+Rn(x)
其中的多项式称为函数在a处的泰勒展开式, R n ( x ) R_{n}(x) Rn(x) 是泰勒公式的余项。

在这里插入图片描述

6.基于梯度的优化方法–梯度下降法

作业:使用梯度下降法求函数 y = c o s ( x ) y=cos(x) y=cos(x)在区间 x ∈ [ 0 , 2 π ] x \in [0,2\pi] x[0,2π]的极小值点。

import numpy as np
import matplotlib.pyplot as plt


def f(x):
    return np.power(x, 2)

def d_f_1(x):
    '''
    求导数的方式1
    '''
    return 2.0 * x

def d_f_2(f, x, delta=1e-4):
    '''
    求导数的第二种方法
    '''
    return (f(x+delta) - f(x-delta)) / (2 * delta)


# plot the function
xs = np.arange(-10, 11)
plt.plot(xs, f(xs))


learning_rate = 0.1
max_loop = 30

x_init = 10.0
x = x_init
lr = 0.1
x_list = []
for i in range(max_loop):
    #d_f_x = d_f_1(x)
    d_f_x = d_f_2(f, x)
    x = x - learning_rate * d_f_x
    x_list.append(x)
x_list = np.array(x_list)
plt.scatter(x_list,f(x_list),c="r")
plt.show()

print('initial x =', x_init)
print('arg min f(x) of x =', x)
print('f(x) =', f(x))

在这里插入图片描述

initial x = 10.0
arg min f(x) of x = 0.012379400392859128
f(x) = 0.00015324955408672073

7.基于梯度的优化方法–牛顿迭代法

作业:使用牛顿迭代法求函数 y = c o s ( x ) y=cos(x) y=cos(x)在区间 x ∈ [ 0 , 2 π ] x \in [0,2\pi] x[0,2π]的极小值点。

牛顿法:
首先牛顿法是求解函数值为0时的自变量取值的方法。
利用牛顿法求解目标函数的最小值其实是转化成求使目标函数的一阶导为0的参数值。这一转换的理论依据是,函数的极值点处的一阶导数为0.
其迭代过程是在当前位置x0求该函数的切线,该切线和x轴的交点x1,作为新的x0,重复这个过程,直到交点和函数的零点重合。此时的参数值就是使得目标函数取得极值的参数值。
其迭代过程如下:

在这里插入图片描述

迭代的公式如下:
θ : = θ − α ℓ ′ ( θ ) ℓ ′ ′ ( θ ) \theta:=\theta-\alpha \frac{\ell^{\prime}(\theta)}{\ell^{\prime \prime}(\theta)} θ:=θα(θ)(θ)
θ \theta θ是向量时, 牛顿法可以使用下面式子表示:
θ : = θ − α H − 1 ∇ θ ℓ ( θ ) \theta:=\theta-\alpha H^{-1} \nabla_{\theta} \ell(\theta) θ:=θαH1θ(θ)
其中 H H H叫做海森矩阵,其实就是目标函数对参数 θ \theta θ的二阶导数。

牛顿法和梯度下降法的比较

1.牛顿法:是通过求解目标函数的一阶导数为0时的参数,进而求出目标函数最小值时的参数。

收敛速度很快。

海森矩阵的逆在迭代过程中不断减小,可以起到逐步减小步长的效果。

缺点:海森矩阵的逆计算复杂,代价比较大,因此有了拟牛顿法。

2.梯度下降法:是通过梯度方向和步长,直接求解目标函数的最小值时的参数。

越接近最优值时,步长应该不断减小,否则会在最优值附近来回震荡。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import time
%matplotlib inline
from mpl_toolkits.mplot3d import Axes3D
class Rosenbrock():
    def __init__(self):
        self.x1 = np.arange(-100, 100, 0.0001)
        self.x2 = np.arange(-100, 100, 0.0001)
        #self.x1, self.x2 = np.meshgrid(self.x1, self.x2)
        self.a = 1
        self.b = 1
        self.newton_times = 1000
        self.answers = []
        self.min_answer_z = []


    # 准备数据
    def data(self):
        z = np.square(self.a - self.x1) + self.b * np.square(self.x2 - np.square(self.x1))
        #print(z.shape)
        return z

    # 随机牛顿
    def snt(self,x1,x2,z,alpha):
        rand_init = np.random.randint(0,z.shape[0])
        x1_init,x2_init,z_init = x1[rand_init],x2[rand_init],z[rand_init]
        x_0 =np.array([x1_init,x2_init]).reshape((-1,1))
        #print(x_0)


        for i in range(self.newton_times):
            x_i = x_0 - np.matmul(np.linalg.inv(np.array([[12*x2_init**2-4*x2_init+2,-4*x1_init],[-4*x1_init,2]])),np.array([4*x1_init**3-4*x1_init*x2_init+2*x1_init-2,-2*x1_init**2+2*x2_init]).reshape((-1,1)))
            x_0 = x_i
            x1_init = x_0[0,0]
            x2_init = x_0[1,0]
        answer = x_0
        return answer


    # 绘图
    def plot_data(self,min_x1,min_x2,min_z):
        x1 = np.arange(-100, 100, 0.1)
        x2 = np.arange(-100, 100, 0.1)
        x1, x2 = np.meshgrid(x1, x2)
        a = 1
        b = 1
        z = np.square(a - x1) + b * np.square(x2 - np.square(x1))
        fig4 = plt.figure()
        ax4 = plt.axes(projection='3d')
        ax4.plot_surface(x1, x2, z, alpha=0.3, cmap='winter')  # 生成表面, alpha 用于控制透明度
        ax4.contour(x1, x2, z, zdir='z', offset=-3, cmap="rainbow")  # 生成z方向投影,投到x-y平面
        ax4.contour(x1, x2, z, zdir='x', offset=-6, cmap="rainbow")  # 生成x方向投影,投到y-z平面
        ax4.contour(x1, x2, z, zdir='y', offset=6, cmap="rainbow")  # 生成y方向投影,投到x-z平面
        ax4.contourf(x1, x2, z, zdir='y', offset=6, cmap="rainbow")  # 生成y方向投影填充,投到x-z平面,contourf()函数
        ax4.scatter(min_x1,min_x2,min_z,c='r')
        # 设定显示范围
        ax4.set_xlabel('X')
        ax4.set_ylabel('Y')
        ax4.set_zlabel('Z')
        plt.show()

    # 开始
    def start(self):
        times = int(input("请输入需要随机优化的次数:"))
        alpha = float(input("请输入随机优化的步长"))
        z = self.data()
        start_time = time.time()
        for i in range(times):
            answer = self.snt(self.x1,self.x2,z,alpha)
            self.answers.append(answer)
        min_answer = np.array(self.answers)
        for i in range(times):
            self.min_answer_z.append((1-min_answer[i,0,0])**2+(min_answer[i,1,0]-min_answer[i,0,0]**2)**2)
        optimal_z = np.min(np.array(self.min_answer_z))
        optimal_z_index = np.argmin(np.array(self.min_answer_z))
        optimal_x1,optimal_x2 = min_answer[optimal_z_index,0,0],min_answer[optimal_z_index,1,0]
        end_time = time.time()
        running_time = end_time-start_time
        print("优化的时间:%.2f秒!" % running_time)
        self.plot_data(optimal_x1,optimal_x2,optimal_z)
if __name__ == '__main__':
    snt = Rosenbrock()
    snt.start()
优化的时间:6.82秒!

在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《唐宇迪 深度学习-语音识别项目实战(python版)》是一本研究深度学习应用于语音识别的实战指南。在传统的语音识别技术中,主要采用了基于统计模型的方法,而深度学习的出现在语音识别领域产生了巨大的影响。 该书将深度学习技术应用于语音识别领域的实际项目,以Python语言为工具,深入探讨了从数据准备到模型设计、训练和应用的全过程。它以实战为基础,通过大量的示例代码和实际案例,帮助读者更好地理解和应用深度学习在语音识别中的优势和挑战。 本书首先介绍了语音识别的基本概念和流程,并详细解释了深度学习在语音识别中的应用原理。随后,它引导读者使用Python语言实现基于深度学习的语音识别模型,包括搭建神经网络模型、数据预处理、训练和评估模型等步骤。 此外,该书还介绍了一些常用的深度学习框架和工具,如Keras、TensorFlow和pytorch,帮助读者更好地使用这些工具来构建和优化语音识别模型。同时,书中还介绍了一些与语音识别相关的技术,如语音端点检测和声学建模,以帮助读者更全面地理解和应用深度学习在语音识别中的方法。 总的来说,《唐宇迪 深度学习-语音识别项目实战(python版)》是一本深入浅出的实战指南,适合对深度学习和语音识别感兴趣的读者学习和参考。通过实际项目案例的介绍和示例代码的演示,读者可以更好地理解和应用深度学习在语音识别中的技术和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值