一、O(n)与o(n)
order 阶
维基百科:https://en.wikipedia.org/wiki/Big_O_notation
O(n):
∃
x
0
,
M
,
使
得
x
⩾
x
0
时
,
有
f
(
x
)
⩽
M
g
(
x
)
。
\exists \ \ x_{0},M,使得 x\geqslant x_{0} 时,有f(x)\leqslant Mg(x)。
∃ x0,M,使得x⩾x0时,有f(x)⩽Mg(x)。
要点:
g
(
x
)
g(x)
g(x)的常数倍
M
M
M可以限制住
f
(
x
)
f(x)
f(x)
o(n):
∀
ε
,
∃
x
0
,
使
得
x
⩾
x
0
时
,
f
(
x
)
⩽
ε
g
(
x
)
,
其
中
,
ε
可
以
足
够
小
。
\forall \ \varepsilon,\exists \ \ x_{0},使得x\geqslant x_{0}时,f(x)\leqslant\varepsilon g(x),其中,\varepsilon可以足够小。
∀ ε,∃ x0,使得x⩾x0时,f(x)⩽εg(x),其中,ε可以足够小。
要点:
f
(
x
)
f(x)
f(x)的阶比
g
(
x
)
g(x)
g(x)要小, o(n) 比 O(n) 要严格。
二、导数、偏导数、方向导数与梯度
维基百科:https://en.wikipedia.org/wiki/Derivative
https://en.wikipedia.org/wiki/Gradient
导数计算:https://www.derivative-calculator.net/
导数:指的是一元函数中,函数
y
=
f
(
x
)
y=f(x)
y=f(x)在某一点处沿
x
x
x轴正方向的变化率。
∂
f
(
x
)
∂
x
=
lim
Δ
x
→
0
f
(
x
+
Δ
x
)
−
f
(
x
)
Δ
x
\frac{\partial f(x)}{\partial x}=\lim_{\Delta x\rightarrow 0}\frac{f\left (x+\Delta x \right ) - f\left ( x \right )}{\Delta x}
∂x∂f(x)=Δx→0limΔxf(x+Δx)−f(x)
偏导数:指的是多元函数中,函数
y
=
f
(
x
1
,
x
2
,
…
,
x
n
)
y=f(\ x_{1},\ x_{2},…,\ x_{n})
y=f( x1, x2,…, xn)在某一点处沿某一坐标轴
(
x
1
,
x
2
,
…
,
x
n
)
(\ x_{1},\ x_{2},…,\ x_{n})
( x1, x2,…, xn)正方向的变化率。
∂
∂
x
j
f
(
x
0
,
x
1
,
.
.
.
,
x
n
)
=
lim
Δ
x
→
0
f
(
x
0
,
.
.
.
,
x
j
+
Δ
x
,
.
.
.
,
x
n
)
−
f
(
x
0
,
.
.
.
,
x
j
,
.
.
.
,
x
n
)
Δ
x
\frac{\partial }{\partial x_{j}}f\left ( x_{0},x_{1},...,x_{n} \right )=\lim_{\Delta x\rightarrow 0}\frac{f\left ( x_{0},...,x_{j}+\Delta x,...,x_{n} \right ) - f\left ( x_{0},...,x_{j},...,x_{n} \right )}{\Delta x}
∂xj∂f(x0,x1,...,xn)=Δx→0limΔxf(x0,...,xj+Δx,...,xn)−f(x0,...,xj,...,xn)
方向导数:函数沿任意方向的变化率,即某一点在某一趋近方向上的导数值。
∂
∂
l
f
(
x
0
,
x
1
,
.
.
.
,
x
n
)
=
lim
ρ
→
0
f
(
x
0
+
Δ
x
0
,
.
.
.
,
x
j
+
Δ
x
j
,
.
.
.
,
x
n
+
Δ
x
n
)
−
f
(
x
0
,
.
.
.
,
x
j
,
.
.
.
,
x
n
)
ρ
\frac{\partial }{\partial l}f\left ( x_{0},x_{1},...,x_{n} \right )=\lim_{\rho \rightarrow 0}\frac{f\left ( x_{0}+\Delta x_{0},...,x_{j}+\Delta x_{j},...,x_{n}+\Delta x_{n} \right ) - f\left ( x_{0},...,x_{j},...,x_{n} \right )}{\rho }
∂l∂f(x0,x1,...,xn)=ρ→0limρf(x0+Δx0,...,xj+Δxj,...,xn+Δxn)−f(x0,...,xj,...,xn)
ρ
=
(
Δ
x
0
)
2
+
.
.
.
+
(
Δ
x
j
)
2
+
.
.
.
+
(
Δ
x
n
)
2
\rho =\sqrt{\left (\Delta x_{0} \right )^{2}+...+\left (\Delta x_{j} \right )^{2}+...+\left (\Delta x_{n} \right )^{2}}
ρ=(Δx0)2+...+(Δxj)2+...+(Δxn)2
可微:具有一阶连续偏导数,意味着可微。
梯度:函数在某一点的梯度是一个向量,它的方向与取得最大方向导数的方向一致,它的模是方向导数的最大值。
▽
f
=
g
r
a
d
f
(
x
0
,
x
1
,
.
.
.
,
x
n
)
=
(
∂
f
∂
x
0
,
∂
f
∂
x
1
,
.
.
.
,
∂
f
∂
x
n
)
\bigtriangledown f=gradf\left ( x_{0},x_{1},...,x_{n} \right )=\left ( \frac{\partial f}{\partial x_{0}},\frac{\partial f}{\partial x_{1}},...,\frac{\partial f}{\partial x_{n}} \right )
▽f=gradf(x0,x1,...,xn)=(∂x0∂f,∂x1∂f,...,∂xn∂f)
三、函数逼近与泰勒展开
相关定理:
极限:https://en.wikipedia.org/wiki/Limit_(mathematics)
链式法则:https://en.wikipedia.org/wiki/Chain_rule
费马定理:https://en.wikipedia.org/wiki/Fermat's_theorem_(stationary_points)
罗尔中值定理:https://en.wikipedia.org/wiki/Rolle's_theorem
拉格朗日中值定理:https://en.wikipedia.org/wiki/Mean_value_theorem
柯西中值定理:https://en.wikipedia.org/wiki/Mean_value_theorem
函数逼近:https://en.wikipedia.org/wiki/Linear_approximation
洛必达法则:https://en.wikipedia.org/wiki/L'Hôpital's_rule
泰勒展开:https://en.wikipedia.org/wiki/Taylor_series
凸函数:https://en.wikipedia.org/wiki/Convex_function
费马定理:对于函数 f ′ ( x ) = 0 f^{'}(x) = 0 f′(x)=0,是函数在该处有极值点的必要不充分条件。
凸函数:函数的二阶导数 f ′ ′ ( x ) > 0 f^{''}(x) >0 f′′(x)>0,则该函数为凸函数(下),反之 f ′ ′ ( x ) < 0 f^{''}(x) <0 f′′(x)<0,则该函数为上凸函数。二阶导数 f ′ ′ ( x ) = 0 f^{''}(x) = 0 f′′(x)=0,则该点是函数的可能拐点。
函数逼近:指函数的近似表示,用于近似求解。
泰勒展开:泰勒公式是将一个在
x
=
x
0
x=x_{0}
x=x0处具有
n
n
n阶导数的函数
f
(
x
)
f(x)
f(x),利用关于
(
x
−
x
0
)
(x-x_{0})
(x−x0)的
n
n
n次多项式来逼近函数的方法。若函数
f
(
x
)
f(x)
f(x)在包含
x
0
x_{0}
x0的某个闭区间
[
a
,
b
]
[a,b]
[a,b]上具有
n
n
n阶导数,且在开区间
(
a
,
b
)
(a,b)
(a,b)上具有
(
n
+
1
)
(n+1)
(n+1)阶导数,则对闭区间
[
a
,
b
]
[a,b]
[a,b]上任意一点
x
x
x,成立下式:
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)(x−x0)+2!f′′(x0)(x−x0)2+...+n!fn(x0)(x−x0)n+Rn(x)
R
n
(
x
)
是
(
x
−
x
0
)
n
的
高
阶
无
穷
小
R_{n}(x)是(x-x_{0})^{n}的高阶无穷小
Rn(x)是(x−x0)n的高阶无穷小
四、雅可比矩阵和Hessian矩阵
维基百科:https://en.wikipedia.org/wiki/Jacobian_matrix_and_determinant
https://en.wikipedia.org/wiki/Hessian_matrix
梯度是标量对向量的求导,Jacobian和Hessian矩阵是向量对向量的求导,分别是一阶导矩阵和二阶导矩阵。
Jacobian矩阵:可以理解为矩阵的梯度(Matrix Gradient)。
J
=
∂
f
∂
x
=
[
∂
f
∂
x
1
⋯
∂
f
∂
x
n
]
=
[
∂
f
1
∂
x
1
⋯
∂
f
1
∂
x
n
⋮
⋱
⋮
∂
f
m
∂
x
1
⋯
∂
f
m
∂
x
n
]
\textbf{J}=\frac{\partial \textbf{f}}{\partial \textbf{x}}=\left [\frac{\partial \textbf{f}}{\partial x_{1}}\cdots \frac{\partial \textbf{f}}{\partial x_{n}} \right ]=\begin{bmatrix} \frac{\partial f_{1}}{\partial x_{1}} & \cdots & \frac{\partial f_{1}}{\partial x_{n}}\\ \vdots & \ddots & \vdots \\ \frac{\partial f_{m}}{\partial x_{1}}& \cdots & \frac{\partial f_{m}}{\partial x_{n}} \end{bmatrix}
J=∂x∂f=[∂x1∂f⋯∂xn∂f]=⎣⎢⎡∂x1∂f1⋮∂x1∂fm⋯⋱⋯∂xn∂f1⋮∂xn∂fm⎦⎥⎤
即
J
i
j
=
∂
f
i
∂
x
j
,
m
×
n
阶
矩
阵
即\textbf{J}_{ij}=\frac{\partial f_{i}}{\partial x_{j}},m\times n阶矩阵
即Jij=∂xj∂fi,m×n阶矩阵
其
中
,
f
=
(
f
1
,
.
.
.
,
f
m
)
,
x
=
(
x
1
,
.
.
.
,
x
n
)
其中,\textbf{f}=(f_{1},...,f_{m}),\textbf{x}=(x_{1},...,x_{n})
其中,f=(f1,...,fm),x=(x1,...,xn)
Hessian矩阵:与多元函数的凹凸是有密切关联的。
H = [ ∂ 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 ] \textbf{H}=\begin{bmatrix} \frac{\partial^2 \textbf{f}}{\partial x_{1}^2} & \frac{\partial^2 \textbf{f}}{\partial x_{1}\partial x_{2}} & \cdots & \frac{\partial^2 \textbf{f}}{\partial x_{1}\partial x_{n}}\\ \frac{\partial^2 \textbf{f}}{\partial x_{2}\partial x_{1}} & \frac{\partial^2 \textbf{f}}{\partial x_{2}^2} & \cdots & \frac{\partial^2 \textbf{f}}{\partial x_{2}\partial x_{n}}\\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 \textbf{f}}{\partial x_{n}\partial x_{1}} & \frac{\partial^2 \textbf{f}}{\partial x_{n}\partial x_{2}} & \cdots & \frac{\partial^2 \textbf{f}}{\partial x_{n}^2} \end{bmatrix} H=⎣⎢⎢⎢⎢⎢⎡∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f⋯⋯⋱⋯∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f⎦⎥⎥⎥⎥⎥⎤ 即 H i j = ∂ 2 f ∂ x i ∂ x j , n × n 阶 对 称 矩 阵 即\textbf{H}_{ij}=\frac{\partial^2 f}{\partial x_{i}\partial x_{j}},n\times n阶对称矩阵 即Hij=∂xi∂xj∂2f,n×n阶对称矩阵 其 中 , f 是 多 元 函 数 f ( x 1 , . . . , x n ) 其中,\textbf{f}是多元函数f(x_{1},...,x_{n}) 其中,f是多元函数f(x1,...,xn)
记 f f f在 M M M点处的Hessian矩阵为 H ( M ) \textbf{H}(M) H(M)。对于 H ( M ) \textbf{H}(M) H(M),有如下结论:
- 当 H ( M ) \textbf{H}(M) H(M)是正定矩阵时,函数 f f f有极小值;
- 当 H ( M ) \textbf{H}(M) H(M)是负定矩阵时,函数 f f f有极大值;
- 当 H ( M ) \textbf{H}(M) H(M)是不定矩阵时,还要看更高阶的导数。
五、拉格朗日乘数法
维基百科:https://en.wikipedia.org/wiki/Lagrange_multiplier
拉格朗日乘数法是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。用于解决约束优化问题,引入拉格朗日乘子将含有 n n n个变量和 k k k个约束条件的问题,转化为含有 ( n + k ) (n+k) (n+k)个变量的无约束优化问题。
求二元函数 z = f ( x , y ) z=f(x,y) z=f(x,y)在条件 φ ( x , y ) = 0 \varphi(x,y)=0 φ(x,y)=0下的极值,可以转化为函数 F ( x , y , λ ) = f ( x , y ) + λ φ ( x , y ) F(x,y,\lambda)=f(x,y)+\lambda \varphi(x,y) F(x,y,λ)=f(x,y)+λφ(x,y)的无条件极值问题。
要点:拉格朗日乘数法所得的极点会包含原问题的所有极值点,但并不保证每个极值点都是原问题的极值点。
令
F
(
x
,
y
,
λ
)
=
f
(
x
,
y
)
+
λ
φ
(
x
,
y
)
F(x,y,\lambda)=f(x,y)+\lambda \varphi(x,y)
F(x,y,λ)=f(x,y)+λφ(x,y),若
Δ
F
(
x
0
,
y
0
,
λ
0
)
=
0
⃗
\Delta F(x_{0},y_{0},\lambda_{0})=\vec{0}
ΔF(x0,y0,λ0)=0,则
(
x
0
,
y
0
,
λ
0
)
(x_{0},y_{0},\lambda_{0})
(x0,y0,λ0)是函数
F
(
x
,
y
,
λ
)
F(x,y,\lambda)
F(x,y,λ)的驻点,通过如下步骤,得到驻点的值。
{
F
x
=
0
F
y
=
0
F
λ
=
0
\left\{\begin{matrix} F_{x}=0\\ F_{y}=0\\ F_{\lambda}=0\\ \end{matrix}\right.
⎩⎨⎧Fx=0Fy=0Fλ=0
F
(
x
,
y
,
λ
)
F(x,y,\lambda)
F(x,y,λ)称为拉格朗日函数,
λ
\lambda
λ称为拉格朗日乘数(Lagrange multiplier)。