Datawhale组队学习之集成学习——Task1 数学基础
集成学习
高等数学
-
函数的定义
定义:设数集 D ⊂ R , 则称映射 f : D → R 为定义在 D 上的函数,通常简记为 D \subset {\mathbf{R}}, \text { 则称映射 } f: D \rightarrow \mathbf{R} \text { 为定义在 } D \text { 上的函数,通常简记为 } D⊂R, 则称映射 f:D→R 为定义在 D 上的函数,通常简记为
y = f ( x ) , x ∈ D y=f(x), x \in D y=f(x),x∈D
函数定义中,对每个 x ∈ D x \in D x∈D,按对应法则 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)={y∣y=f(x),x∈D}
说白了,函数就是实数集到实数集的一个映射,如:
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,x⩾0x<0
的定义域 D = ( − ∞ , + ∞ ) , D=(-\infty,+\infty), D=(−∞,+∞), 值域 R f = [ 0 , + ∞ ) R_{f}=[0,+\infty) Rf=[0,+∞) 。 -
复合函数
设函数 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}, Rg⊂Dt, 则由下式确定的函数
y = f [ g ( x ) ] , x ∈ D x y=f[g(x)], \quad x \in D_{x} y=f[g(x)],x∈Dx
称为由函数 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
3. 导数
定义:设函数
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
Δx→0 时的 极限存在, 则称函数
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)=Δ,x→0limΔxΔy=Δx→0limΔxf(x0+Δx)−f(x0)
也可记作
y
′
∣
x
=
x
0
\left.y^{\prime}\right|_{x=x_{0}}
y′∣x=x0,
d
y
d
x
∣
x
=
x
0
\left.\frac{\mathrm{d} y}{\mathrm{~d} x}\right|_{x=x_{0}}
dxdy∣∣∣x=x0 .
若函数
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)
类似地,二阶导数的导数称为三阶导数,依次类推。二阶和二阶以上的导数统称为高阶导数。
定义:
设二元函数
=
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Δx→0Δ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) .
∂x∂z∣∣∣(x0,y0),∂x∂f∣∣∣(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}
∂x∂z∣∣(x0,y0)=limΔx→0ΔxΔxz=limΔx→0Δxf(x0+Δx,y0)−f(x0,y0)
-
梯度向量
梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
定义:设二元函数 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}, {∂x∂f,∂y∂f}=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)={∂x∂f,∂y∂f}=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} ∇=∂x∂iˉ+∂y∂jˉ 称为(二维的)向量微分算子或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=∂x∂fiˉ+∂y∂fjˉ 。 -
雅克比矩阵(Jacobian矩阵)
假设 F : R n → R m F: \mathbb{R}_{n} \rightarrow \mathbb{R}_{m} F:Rn→Rm 是一个从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] ⎣⎢⎡∂x1∂y1⋮∂x1∂ym⋯⋱⋯∂xn∂y1⋮∂xn∂ym⎦⎥⎤
可见,梯度向量是雅克比矩阵的特例! -
海森矩阵(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)=⎣⎢⎢⎢⎢⎢⎡∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f⋯⋯⋱⋯∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f⎦⎥⎥⎥⎥⎥⎤
实际上,Hessian矩阵是梯度向量g(x)对自变量x的Jacobian矩阵。 -
函数极值问题
一元函数框架下:
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)
x∈U˙(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)Δ=B2−AC
则:
(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
∂xj∂f∣∣∣∣(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=⎣⎢⎢⎢⎢⎢⎡∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f⋯⋯⋱⋯∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f⎦⎥⎥⎥⎥⎥⎤
则有如下结果:
(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+4y−6z 的极值。
解: 因为
∂
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,
∂x∂f=2x+2,∂y∂f=2y+4,∂z∂f=2z−6, 故该三元函数的驻点是 (-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
∂x2∂2f=2,∂y2∂2f=2,∂z2∂2f=2,∂x∂y∂2f=0,∂x∂z∂2f=0,∂y∂z∂2f=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 。
-
泰勒公式
泰勒公式就是用一个多项式函数去逼近一个给定的函数(即尽量使多项式函数图像拟合给定的函数图像)。如果一个非常复杂函数,想求其某点的值,直接求无法实现,这时候可以使用泰勒公式去近似的求该值,这是泰勒公式的应用之一。泰勒公式在机器学习中主要应用于梯度迭代。
定义:设 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)(x−a)+2!f′′(a)(x−a)2+⋯+n!f(n)(a)(x−a)n+Rn(x)=∑n=0Nn!f(n)(a)(x−a)n+Rn(x)
其中的多项式称为函数在a处的泰勒展开式, R n ( x ) R_{n}(x) Rn(x) 是泰勒公式的余项。 -
例子
1、基于梯度的优化方法–梯度下降法:
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
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()
请输入需要随机优化的次数:100
请输入随机优化的步长0.001
优化的时间:1.91秒!
随机事件与概率
- 随机试验、条件概率、事件的独立性
随机试验:
试验是指为了察看某事的结果或某物的性能而从事的某种活动. 在概率论与数理统计中,一个试验如果具有以下3个特点:
- (1) 可重复性: 在相同条件下可以重复进行:
- (2) 可观察性: 每次试验的可能结果不止一个,并且能事先明确试验的所有可能结果:
- (3) 不确定性: 一次试验之前,不能预知会出现哪一个结果。 就称这样的试验是一个随机试验,也简称为试验。
样本点和样本空间:
每次试验的每一个结果称为基本事件,也称作样本点,记作
w
1
,
w
2
,
⋯
w_{1}, w_{2}, \cdots
w1,w2,⋯ 全部样本点的集合称为样本空间,记作
Ω
,
\Omega,
Ω, 则
Ω
=
\Omega=
Ω=
{
w
1
,
w
2
,
⋯
}
\left\{w_{1}, w_{2}, \cdots\right\}
{w1,w2,⋯}
定义:设
A
,
B
A, B
A,B 是两个事件,且
P
(
A
)
>
0
,
P(A)>0,
P(A)>0, 则称
P
(
B
∣
A
)
=
P
(
A
B
)
P
(
A
)
P(B \mid A)=\frac{P(A B)}{P(A)}
P(B∣A)=P(A)P(AB)
为在事件A发生的条件下,事件B的条件概率。
定义:如果事件B发生的可能性不受事件A发生与否的影响,即
P
(
B
∣
A
)
=
P
(
B
)
P(B \mid A)=P(B)
P(B∣A)=P(B)
则称事件B对于事件A独立.显然,若B对于A独立,则
A
A
A 对于
B
B
B 也一定独立,称事件
A
A
A 与事件
B
B
B 相互独立.
-
全概率公式和贝叶斯公式
1、全概率公式
定义:如果事件 A 1 , A 2 , ⋯ , A n A_{1}, A_{2}, \cdots, A_{n} A1,A2,⋯,An 是一个完备事件组,并且都具有正概率,则有:
P ( B ) = P ( A 1 ) P ( B ∣ A 1 ) + P ( A 2 ) P ( B ∣ A 2 ) + ⋯ + P ( A n ) P ( B ∣ A n ) = ∑ i = 1 n P ( A i ) P ( B ∣ A i ) \begin{array}{c} P(B)=P\left(A_{1}\right) P\left(B \mid A_{1}\right)+P\left(A_{2}\right) P\left(B \mid A_{2}\right)+\cdots+P\left(A_{n}\right) P\left(B \mid A_{n}\right) \\ =\sum_{i=1}^{n} P\left(A_{i}\right) P\left(B \mid A_{i}\right) \end{array} P(B)=P(A1)P(B∣A1)+P(A2)P(B∣A2)+⋯+P(An)P(B∣An)=∑i=1nP(Ai)P(B∣Ai)
对于任何事件 B , B, B, 事件 A A ˉ A \bar{A} AAˉ 构成最简单的完备事件组,根据全概率公式得
P ( B ) = P ( A B + A ˉ B ) = P ( A B ) + P ( A ˉ B ) = P ( A ) P ( B ∣ A ) + P ( A ˉ ) P ( B ∣ A ˉ ) \begin{aligned} P(B) &=P(A B+\bar{A} B)=P(A B)+P(\bar{A} B) \\ &=P(A) P(B \mid A)+P(\bar{A}) P(B \mid \bar{A}) \end{aligned} P(B)=P(AB+AˉB)=P(AB)+P(AˉB)=P(A)P(B∣A)+P(Aˉ)P(B∣Aˉ)
2、贝叶斯公式
定义:设 A 1 , A 2 , ⋯ , A n A_{1}, A_{2}, \cdots, A_{n} A1,A2,⋯,An 是一完备事件组,则对任一事件 B , P ( B ) > 0 , B, P(B)>0, B,P(B)>0, 有
P ( A i ∣ B ) = P ( A i B ) P ( B ) = P ( A i ) P ( B ∣ A i ) ∑ i = 1 n P ( A i ) P ( B ∣ A i ) P\left(A_{i} \mid B\right)=\frac{P\left(A_{i} B\right)}{P(B)}=\frac{P\left(A_{i}\right) P\left(B \mid A_{i}\right)}{\sum_{i=1}^{n} P\left(A_{i}\right) P\left(B \mid A_{i}\right)} P(Ai∣B)=P(B)P(AiB)=∑i=1nP(Ai)P(B∣Ai)P(Ai)P(B∣Ai)
以上公式就叫贝叶斯公式,可由条件概率的定义及全概率公式证得。 -
随机变量、概率分布、概率密度函数
1、随机变量
把试验的结果与实数对应起来,随试验结果的不同而变化的量就是随机变量,包含离散型随机变量和连续型随机变量。
例子:
郑一枚匀称的硬币,观察正面、背面的出现情况。这一试验的样本空间为
Ω
=
{
H
,
T
}
\Omega=\{H, T\}
Ω={H,T}, 其中,H表示"正面朝上",
T
T
T 表示“背面 朝上”。如果引入变量
X
X
X ,对试验的两个结果进行数值化,将
X
X
X 的值分别规定为1和0,即
X
=
{
1
if 出现
H
0
if 出现
T
X=\left\{\begin{array}{ll} 1 & \text { if } \text { 出现 } H \\ 0 & \text { if } \text { 出现 } T \end{array}\right.
X={10 if 出现 H if 出现 T
这里的
X
X
X 就叫随机变量,因为它能取的值是离散的,我们就叫它离散型随机变量。
2、概率分布
定义:设离散型随机变量
X
X
X 的所有可能取值为
x
1
,
x
2
,
⋯
,
x
n
,
x_{1}, x_{2}, \cdots, x_{n},
x1,x2,⋯,xn, 称为
X
X
X 的概率分布。
离散型随机变量
X
X
X 的分布律具有下列基本性质:
- p k ≥ 0 , k = 1 , 2 , ⋯ p_{k} \geq 0, k=1,2, \cdots pk≥0,k=1,2,⋯
- ∑ i = 1 + ∞ p k = 1 \sum_{i=1}^{+\infty} p_{k}=1 ∑i=1+∞pk=1
二项分布:
二项分布是一种离散型的概率分布。二项代表它有两种可能的结果:成功或者不成功。每次试验必须相互独立,重复n次,并且每 次试验成功的概率是相同的,为
p
p
p ; 失败的概率也相同,为
1
−
p
1-p
1−p。掷硬币就是一个典型的二项分布。当我们要计算抛硬币吻,恰巧有
x
x
x 次正面朝上的概率,可以使用二项分布的公式:
P
{
X
=
k
}
=
C
n
k
p
k
(
1
−
p
)
n
−
k
P\{X=k\}=C_{n}^{k} p^{k}(1-p)^{n-k}
P{X=k}=Cnkpk(1−p)n−k
泊松分布:
如果随机变量
X
X
X 的概率分布为
P
{
X
=
k
}
=
λ
k
k
!
e
−
λ
,
k
=
0
,
1
,
2
,
⋯
P\{X=k\}=\frac{\lambda^{k}}{k !} e^{-\lambda}, k=0,1,2, \cdots
P{X=k}=k!λke−λ,k=0,1,2,⋯
式中,
λ
>
0
\lambda>0
λ>0 为常数,则称随机变量
X
X
X 服从参数为
λ
\lambda
λ 的泊松(Possion)分布,记为
X
∼
P
(
λ
)
X \sim P(\lambda)
X∼P(λ).
3、概率密度函数
定义:若存在非负函数
f
(
x
)
f(x)
f(x), 使一个连续型随机变量
X
X
X 取值于任一区间
(
a
,
b
]
(a, b]
(a,b] 的概率可以表示为
P
{
a
<
X
≤
b
}
=
∫
a
b
f
(
x
)
d
x
P\{a<X \leq b\}=\int_{a}^{b} f(x) d_{x}
P{a<X≤b}=∫abf(x)dx
正态分布:
正态分布是概率论中最重要的连续型分布,在19世纪前叶由德国数学家高斯(Gauss)加以推广,故又常称为高斯分布。 正态分布的概率密度函数曲线呈钟形,概率密度函数为
f
(
x
)
=
1
2
π
σ
e
−
(
x
−
μ
)
2
2
σ
2
f(x)=\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(x-\mu)^{2}}{2 \sigma^{2}}}
f(x)=2π
σ1e−2σ2(x−μ)2
具有两个参数
μ
\mu
μ 和
σ
2
\sigma^{2}
σ2 。第一参数
μ
\mu
μ 是代表服从正态分布的随机变量的均值,第二个参数
σ
2
\sigma^{2}
σ2 是此随机变量的方差。
如果一个随机变量 服从均值为
μ
,
\mu,
μ, 标准差为
σ
\sigma
σ 的正态分布,数学上记作
X
∼
N
(
μ
,
σ
2
)
X \sim N\left(\mu, \sigma^{2}\right)
X∼N(μ,σ2)
我们通常所说的标准正态分布均值为0, 标准差为1的正态分布。
- 随机变量的期望与方差
期望的性质:
- E ( c ) = c E(c)=c E(c)=c
- E ( X + c ) = E ( X ) + c E(X+c)=E(X)+c E(X+c)=E(X)+c
- E ( k X ) = k E ( X ) E(k X)=k E(X) E(kX)=kE(X)
- E ( k X + c ) = k E ( X ) + c E(k X+c)=k E(X)+c E(kX+c)=kE(X)+c
- E ( X + Y ) = E ( X ) + E ( Y ) E(X+Y)=E(X)+E(Y) E(X+Y)=E(X)+E(Y)
方差表示了随机变量的变异性,方差越大,随机变量的结果越不稳定。
定义:随机变量,若
E
[
X
−
E
(
X
)
]
2
E[X-E(X)]^{2}
E[X−E(X)]2
存在,则称其为
X
X
X 的方差,记为
D
(
X
)
,
D(X),
D(X), 即
D
(
X
)
=
E
[
X
−
E
(
X
)
]
2
D(X)=E[X-E(X)]^{2}
D(X)=E[X−E(X)]2
而称
D
(
X
)
\sqrt{D(X)}
D(X)
为
X
X
X 的标准差或均方差。
由方差的定义和数学期望的性质,可以推出方差的计算公式:
D
(
X
)
=
E
(
X
2
)
−
[
E
(
X
)
]
2
D(X)=E\left(X^{2}\right)-[E(X)]^{2}
D(X)=E(X2)−[E(X)]2
方差的性质
(1)
D
(
c
)
=
0
D(c)=0
D(c)=0
(2)
D
(
X
+
c
)
=
D
(
X
)
D(X+c)=D(X)
D(X+c)=D(X)
(3)
D
(
c
X
)
=
c
2
D
(
X
)
D(c X)=c^{2} D(X)
D(cX)=c2D(X)
- 例子
1、