一、泰勒公式
1.背景介绍
在数学中,泰勒公式(Taylor’s Formula)是一个用函数在某点的信息描述其附近取值的公式。这个公式来自于微积分的泰勒定理(Taylor’s theorem),泰勒定理描述了一个可微函数,如果函数足够光滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值,这个多项式称为泰勒多项式(Taylor polynomial)。泰勒公式还给出了余项即这个多项式和实际的函数值之间的偏差。泰勒公式得名于英国数学家布鲁克·泰勒。他在1712年的一封信里首次叙述了这个公式,尽管1671年詹姆斯·格雷高里已经发现了它的特例。拉格朗日在1797年之前,最先提出了带有余项的现在形式的泰勒定理。
2.定理
设 n 是一个正整数。如果定义在一个包含 a 的区间上的函数 f 在 a 点处 n+1 次可导,那么对于这个区间上的任意 x,都有: f ( x ) = f ( a ) + f ′ ( a ) 1 ! ( x − a ) + f ( 2 ) ( a ) 2 ! ( x − a ) 2 + … + f ( n ) ( a ) n ! ( x − a ) n + R n ( x ) f(x) = f(a) + \frac{f'(a)}{1!}(x - a) + \frac{f^{(2)}(a)}{2!}(x - a)^2+ …+ \frac{f^{(n)}(a)}{n!}(x - a)^n + R_n(x) f(x)=f(a)+1!f′(a)(x−a)+2!f(2)(a)(x−a)2+…+n!f(n)(a)(x−a)n+Rn(x)注意: 麦克劳林公式是泰勒公式( a = 0 a=0 a=0,记 ξ = θ x ( 0 < θ < 1 ) \xi=\theta x (0<\theta<1) ξ=θx(0<θ<1)的一种特殊形式。在不需要余项的精确表达式时,n阶泰勒公式也可写成: f ( x ) = f ( 0 ) + f ′ ( 0 ) x + f ′ ′ ( 0 ) 2 ! x 2 + … + f ( n ) ( 0 ) n ! x n + f ( n + 1 ) ( θ x ) ( n + 1 ) ! x n + 1 f(x) = f(0) + f'(0)x + \frac{f''(0)}{2!}x^2 + …+ \frac{f^{(n)}(0)}{n!}x^n + \frac{f^{(n + 1)}(\theta x)}{(n+1)!}x^{n + 1} f(x)=f(0)+f′(0)x+2!f′′(0)x2+…+n!f(n)(0)xn+(n+1)!f(n+1)(θx)xn+1
二、海森矩阵(Hessian-matrix)
1.背景介绍
黑塞矩阵(德语:Hesse-Matrix;英语:Hessian matrix 或 Hessian),又译作海森矩阵、海塞矩阵或海瑟矩阵等,是一个由多变量实值函数的所有二阶偏导数组成的方块矩阵,由德国数学家奥托·黑塞引入并以其命名。
2.定义
假设有一实值函数 f ( x 1 , x 2 , … , x n ) f(x_1, x_2, …,x_n) f(x1,x2,…,xn),如果 f f f的所有二阶偏导数都存在并定义域内连续,那么函数 f f f的黑塞矩阵为: 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 ] H = \begin{bmatrix} \frac{\partial ^2f }{\partial x_1^2} & \frac{\partial ^2f }{\partial x_1\partial x_2} & \cdots & \frac{\partial ^2f }{\partial x_1\partial x_n} \\ \\ \frac{\partial ^2f }{\partial x_2 \partial x_1} & \frac{\partial ^2f }{\partial x_2^2} & \cdots & \frac{\partial ^2f }{\partial x_2\partial x_n} \\ \\ \vdots & \vdots & \ddots & \vdots \\ \\ \frac{\partial ^2f }{\partial x_n \partial x_1} & \frac{\partial ^2f }{\partial x_n\partial x_2} & \cdots & \frac{\partial ^2f }{\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 H_{ij} = \frac{\partial^2f}{\partial x_i\partial x_j} Hij=∂xi∂xj∂2f显然黑塞矩阵H是一个 n × n n\times n n×n方阵。黑塞矩阵的行列式被称为黑塞式(Hessian)而英语环境下使用Hessian一词时可能指上述矩阵也可能指上述矩阵的行列式。
3.性质
由高等数学的知识可知,若一元函数
f
(
x
)
f(x)
f(x)在
x
=
x
0
x = x_0
x=x0点的某个邻域内具有任意阶导数,则函数
f
(
x
)
f(x)
f(x)在
x
=
x
0
x = x_0
x=x0处的泰勒展开式为
f
(
x
)
=
f
(
x
0
)
+
f
′
(
x
)
Δ
x
+
f
′
′
(
x
)
2
!
Δ
x
2
+
⋯
f(x) = f(x_0) + f'(x)\Delta x + \frac{f''(x)}{2!}\Delta x^2 + \cdots
f(x)=f(x0)+f′(x)Δx+2!f′′(x)Δx2+⋯其中
Δ
x
=
x
−
x
0
\Delta x = x - x_0
Δx=x−x0。
同理,二元函数
f
(
x
1
,
x
2
)
f(x_1, x_2)
f(x1,x2)在
x
0
(
x
10
,
x
20
)
x_0(x_{10}, x_{20})
x0(x10,x20)点处的泰勒展开式为
f
(
x
1
,
x
2
)
=
f
(
x
10
,
x
20
)
+
f
x
1
(
x
10
,
x
20
)
Δ
x
1
+
f
x
2
(
x
10
,
x
20
)
Δ
x
2
+
1
2
[
f
x
1
x
2
(
x
10
,
x
20
)
Δ
x
1
2
+
2
f
x
1
x
2
(
x
10
,
x
20
)
Δ
x
1
Δ
x
2
+
f
x
1
x
2
(
x
10
,
x
20
)
Δ
x
2
2
]
+
⋯
f(x_1, x_2) = f(x_{10}, x_{20}) + f_{x1}(x_{10}, x_{20})\Delta x_1 + f_{x2}(x_{10}, x_{20})\Delta x_2 + \frac{1}{2}[f_{x_1x_2}(x_{10}, x_{20})\Delta x_1^2 + 2f_{x_1x_2}(x_{10}, x_{20})\Delta x_1\Delta x_2 + f_{x_1x_2}(x_{10}, x_{20})\Delta x_2^2] + \cdots
f(x1,x2)=f(x10,x20)+fx1(x10,x20)Δx1+fx2(x10,x20)Δx2+21[fx1x2(x10,x20)Δx12+2fx1x2(x10,x20)Δx1Δx2+fx1x2(x10,x20)Δx22]+⋯其中,
Δ
x
1
=
x
1
−
x
10
\Delta x_1 = x_1 - x_{10}
Δx1=x1−x10,
Δ
x
2
=
x
2
−
x
20
\Delta x_2 = x_2 - x_{20}
Δx2=x2−x20,
f
x
1
=
∂
f
∂
x
1
f_{x_1} = \frac{\partial f}{\partial x_1}
fx1=∂x1∂f,
f
x
2
=
∂
f
∂
x
2
f_{x_2} = \frac{\partial f}{\partial x_2}
fx2=∂x2∂f,
f
x
1
x
1
=
∂
2
f
∂
x
1
2
f_{x_1x_1} = \frac{\partial ^2f}{\partial x_1^2}
fx1x1=∂x12∂2f,
f
x
2
x
2
=
∂
2
f
∂
x
2
2
f_{x_2x_2} = \frac{\partial ^2f}{\partial x_2^2}
fx2x2=∂x22∂2f,
f
x
1
x
2
=
∂
2
f
∂
x
1
∂
x
2
=
∂
2
f
∂
x
2
∂
x
1
f_{x_1x_2} = \frac{\partial ^2f}{\partial x_1 \partial x_2} = \frac{\partial ^2f}{\partial x_2 \partial x_1}
fx1x2=∂x1∂x2∂2f=∂x2∂x1∂2f
将上展开式写成矩阵形式,则有
f
(
x
)
=
f
(
x
0
)
+
∇
f
(
x
0
)
T
Δ
x
+
1
2
Δ
x
T
G
(
x
0
)
Δ
x
+
⋯
f(x) = f(x_0) + \nabla f(x_0)^T\Delta x + \frac{1}{2}\Delta x^TG(x_0)\Delta x + \cdots
f(x)=f(x0)+∇f(x0)TΔx+21ΔxTG(x0)Δx+⋯其中,
Δ
x
=
[
Δ
x
1
,
Δ
x
2
]
\Delta x = \begin{bmatrix} \Delta x_1, \Delta x_2 \end{bmatrix}
Δx=[Δx1,Δx2],
Δ
x
T
=
[
Δ
x
1
Δ
x
2
]
\Delta x^T = \begin{bmatrix} \Delta x_1\\ \\ \Delta x_2 \end{bmatrix}
ΔxT=⎣⎡Δx1Δx2⎦⎤是
Δ
x
\Delta x
Δx的转置,
∇
f
(
x
0
)
=
[
∂
f
∂
x
1
∂
f
∂
x
2
]
\nabla f(x_0) = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \\ \frac{\partial f}{\partial x_2} \end{bmatrix}
∇f(x0)=⎣⎡∂x1∂f∂x2∂f⎦⎤是函数
f
(
x
1
,
x
2
)
f(x_1, x_2)
f(x1,x2)在
x
0
(
x
10
,
x
20
)
x_0(x_{10}, x_{20})
x0(x10,x20)的梯度,矩阵
G
(
x
)
=
[
∂
2
f
∂
x
1
2
∂
2
f
∂
x
1
∂
x
2
∂
2
f
∂
x
2
∂
x
1
∂
2
f
∂
x
2
2
]
x
0
G(x) = \begin{bmatrix} \frac{\partial ^2f }{\partial x_1^2} & \frac{\partial ^2f }{\partial x_1\partial x_2} \\ \\ \frac{\partial ^2f }{\partial x_2 \partial x_1} & \frac{\partial ^2f }{\partial x_2^2} \end{bmatrix}_{x_0}
G(x)=⎣⎢⎡∂x12∂2f∂x2∂x1∂2f∂x1∂x2∂2f∂x22∂2f⎦⎥⎤x0即函数
f
(
x
1
,
x
2
)
f(x_1, x_2)
f(x1,x2)在
x
0
(
x
10
,
x
20
)
x_0(x_{10}, x_{20})
x0(x10,x20)点处的
2
×
2
2 \times 2
2×2黑塞矩阵。它是由函数
f
(
x
1
,
x
2
)
f(x_1, x_2)
f(x1,x2)在
x
0
(
x
10
,
x
20
)
x_0(x_{10}, x_{20})
x0(x10,x20)点处的所有二阶偏导数组成的方阵。由函数的二次连续性,有
∂
2
f
∂
x
1
∂
x
2
=
∂
2
f
∂
x
2
∂
x
1
\frac{\partial^2f}{\partial x_1\partial x_2} = \frac{\partial^2f}{\partial x_2\partial x_1}
∂x1∂x2∂2f=∂x2∂x1∂2f
所以,黑塞矩阵
G
(
x
0
)
G(x_0)
G(x0)为对称矩阵。
将二元函数的泰勒展开式推广到多元函数,函数
f
(
x
1
,
x
2
,
⋯
,
x
n
)
f(x_1, x_2, \cdots,x_n)
f(x1,x2,⋯,xn)在
x
0
(
x
1
,
x
2
,
⋯
,
x
n
)
x_0(x_1, x_2, \cdots,x_n)
x0(x1,x2,⋯,xn)点的泰勒展开式为
f
(
x
)
=
f
(
x
0
)
+
∇
f
(
x
0
)
T
Δ
x
+
1
2
Δ
x
T
G
(
x
0
)
Δ
x
+
⋯
f(x) = f(x_0) + \nabla f(x_0)^T\Delta x + \frac{1}{2}\Delta x^TG(x_0)\Delta x + \cdots
f(x)=f(x0)+∇f(x0)TΔx+21ΔxTG(x0)Δx+⋯其中,
∇
f
(
x
0
)
=
[
∂
f
∂
x
1
∂
f
∂
x
2
⋯
∂
f
∂
x
n
]
x
0
T
\nabla f(x_0) = \begin{bmatrix} \frac{\partial f}{\partial x_1} & \frac{\partial f}{\partial x_2} & \cdots & \frac{\partial f}{\partial x_n}\end{bmatrix}^T_{x_0}
∇f(x0)=[∂x1∂f∂x2∂f⋯∂xn∂f]x0T为函数
f
(
x
)
f(x)
f(x)在
x
0
(
x
1
,
x
2
,
⋯
,
x
n
)
x_0(x_1, x_2, \cdots,x_n)
x0(x1,x2,⋯,xn)点的梯度,
G
(
x
0
)
=
[
∂
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
]
x
0
G(x_0) = \begin{bmatrix} \frac{\partial ^2f }{\partial x_1^2} & \frac{\partial ^2f }{\partial x_1\partial x_2} & \cdots & \frac{\partial ^2f }{\partial x_1\partial x_n} \\ \\ \frac{\partial ^2f }{\partial x_2 \partial x_1} & \frac{\partial ^2f }{\partial x_2^2} & \cdots & \frac{\partial ^2f }{\partial x_2\partial x_n} \\ \\ \vdots & \vdots & \ddots & \vdots \\ \\ \frac{\partial ^2f }{\partial x_n \partial x_1} & \frac{\partial ^2f }{\partial x_n\partial x_2} & \cdots & \frac{\partial ^2f }{\partial x_n^2} \end{bmatrix}_{x_0}
G(x0)=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f⋯⋯⋱⋯∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤x0为函数
f
(
x
)
f(x)
f(x)在
x
0
(
x
1
,
x
2
,
⋯
,
x
n
)
x_0(x_1, x_2, \cdots,x_n)
x0(x1,x2,⋯,xn)点的
n
×
n
n\times n
n×n黑塞矩阵。若函数有
n
n
n次连续性,则函数的
n
×
n
n \times n
n×n黑塞矩阵是对称矩阵。
说明:
在优化设计领域中,黑塞矩阵常用
G
G
G表示,且梯度有时用
g
g
g表示。
函数
f
f
f的黑塞矩阵和雅可比矩阵有如下关系:
H
(
f
)
=
J
(
∇
f
T
)
H(f) = J(\nabla f^T)
H(f)=J(∇fT)即函数
f
f
f的黑塞矩阵等于其梯度的雅可比矩阵。
与梯度类似,借助Nabla算子可以将函数
f
f
f的黑塞矩阵表示为
H
=
∇
2
f
H = \nabla ^2f
H=∇2f
为了更好的学习机器学习的相关知识,我们必须熟练掌握泰勒公式和海森矩阵的数学展开式和相关性质,尤其是在解决回归中的最优决策问题的时候,本篇帖子只是罗列出一些简单的基础知识,要进一步了解它们各自的性质和它们之间的联系可以再自行查阅相关资料