转载自:博客
该博客已过期,为了方便以后查看,转载如下,侵删
看到一个简洁漂亮的推导,从可微性的概念出发引入了梯度和雅可比矩阵,简记如下。
微积分的基本理念是利用仿射函数对函数进行近似,仿射函数的定义如下:
如果存在线性函数
L
:
R
n
→
R
m
L:R^n→R^m
L:Rn→Rm和向量
y
∈
R
m
y \in R^m
y∈Rm使得对于任意
x
∈
R
n
x∈R^n
x∈Rn都有
A
(
x
)
=
L
(
x
)
+
y
A(x)=L(x)+y
A(x)=L(x)+y则称函数
A
A
A为一个仿射函数。(注:不难看出,仿射函数实质上是线性变换加上平移。)
如果给定了函数
f
:
R
n
→
R
m
f:R^n→R^m
f:Rn→Rm和点
x
0
∈
R
n
x_0∈R^n
x0∈Rn,我们希望找到一个仿射函数
A
A
A,使其在点
x
0
x_0
x0附近能够近似函数
f
f
f,那么显然有
A
(
x
0
)
=
f
(
x
0
)
A(x_0)=f(x_0)
A(x0)=f(x0)
可得
y
=
f
(
x
0
)
−
L
(
x
0
)
y=f(x_0)-L(x_0)
y=f(x0)−L(x0)
再利用线性函数的性质可得
A
(
x
)
=
L
(
x
−
x
0
)
+
f
(
x
0
)
A(x)=L(x-x_0)+f(x_0)
A(x)=L(x−x0)+f(x0)
接下来,相对于
x
x
x接近于
x
0
x_0
x0的速度,要求
A
(
x
)
A(x)
A(x)接近
f
(
x
)
f(x)
f(x)的速度更快,以保证
A
A
A在点
x
0
x_0
x0附近实现对fff的近似,即保证在某个给定点上的近似误差是相对于该点与
x
0
x_0
x0之间距离的一个“无穷小量”,以下给出导数的定义:
给定函数
f
:
Ω
→
R
m
,
Ω
⊂
R
n
f:\Omega\rightarrow R^m,\Omega\subset R^n
f:Ω→Rm,Ω⊂Rn,如果存在一个仿射函数能够在点
x
0
x_0
x0附近近似函数
f
f
f,那么就称函数
f
f
f在点
x
0
∈
Ω
x_0\in\Omega
x0∈Ω处可微,即存在线性函数
L
:
R
n
→
R
m
L:R^n\rightarrow R^m
L:Rn→Rm使得
lim
x
→
x
0
,
x
∈
Ω
∥
f
(
x
)
−
(
L
(
x
−
x
0
)
+
f
(
x
0
)
)
∥
∥
x
−
x
0
∥
=
0
\lim_{x\rightarrow x_0,x\in\Omega} \frac{\parallel f(x)-(L(x-x_0)+f(x_0))\parallel}{\parallel x-x_0\parallel } =0
x→x0,x∈Ωlim∥x−x0∥∥f(x)−(L(x−x0)+f(x0))∥=0
则
L
L
L称为
f
f
f在点
x
0
x_0
x0的导数,如果函数
f
f
f在定义域
Ω
\Omega
Ω上处处可微,那么称
f
f
f在
Ω
\Omega
Ω上是可微的。
以前也提过,矩阵的本质是对变换的描述,那么如何确定可微函数
f
f
f的导数
L
L
L对应的矩阵
M
M
M呢?引入
R
n
R^n
Rn空间的标准基
∣
e
1
,
e
2
,
.
.
.
,
e
n
∣
\left|e_1,e_2,...,e_n \right|
∣e1,e2,...,en∣,考虑在某个方向上有微小变化的向量
x
j
=
x
0
+
t
e
j
,
j
=
1
,
.
.
.
,
n
x_j=x_0+te_j, j=1,...,n
xj=x0+tej,j=1,...,n,根据导数的定义有:
lim
t
→
0
f
(
x
j
)
−
(
t
M
e
j
+
f
(
x
0
)
)
t
=
0
\lim_{t\rightarrow 0} \frac{ f(x_j)-(tMe_j+f(x_0))}{t} =0
t→0limtf(xj)−(tMej+f(x0))=0
这意味着,对于
j
=
1
,
.
.
.
,
n
j=1,...,n
j=1,...,n,有:
lim
t
→
0
f
(
x
j
)
−
f
(
x
0
)
t
=
M
e
j
\lim_{t\rightarrow 0} \frac{ f(x_j)-f(x_0)}{t} =Me_j
t→0limtf(xj)−f(x0)=Mej
由矩阵乘法的性质可知,
M
e
j
Me_j
Mej是矩阵
M
M
M的第
j
j
j列,向量
x
j
x_j
xj与
x
0
x_0
x0仅在第
j
j
j个元素存在差异,上式的左边等于偏导数
∂
f
∂
x
j
(
x
0
)
\frac{\partial f}{\partial x_j}(x_0)
∂xj∂f(x0) 。因此,如果
f
(
x
)
=
[
f
1
(
x
)
.
.
.
f
m
(
x
)
]
f(x)=\left[ \begin{matrix} f_1(x)\\ ...\\ f_m(x) \end{matrix} \right]
f(x)=⎣⎡f1(x)...fm(x)⎦⎤
那么有
∂
f
∂
x
j
(
x
0
)
=
[
∂
f
1
∂
x
j
(
x
0
)
.
.
.
∂
f
m
∂
x
j
(
x
0
)
]
\frac{\partial f}{\partial x_j}(x_0)=\left[ \begin{matrix} \frac{\partial f_1}{\partial x_j}(x_0)\\ ...\\ \frac{\partial f_m}{\partial x_j}(x_0) \end{matrix} \right]
∂xj∂f(x0)=⎣⎢⎡∂xj∂f1(x0)...∂xj∂fm(x0)⎦⎥⎤
注意这只是对一个分量的偏导,完整的矩阵
M
M
M为
[
∂
f
∂
x
1
(
x
0
)
,
.
.
.
,
∂
f
∂
x
n
(
x
0
)
]
=
[
∂
f
1
∂
x
1
(
x
0
)
,
.
.
.
,
∂
f
1
∂
x
n
(
x
0
)
.
.
.
∂
f
m
∂
x
1
(
x
0
)
,
.
.
.
,
∂
f
m
∂
x
n
(
x
0
)
]
[\frac{\partial f}{\partial x_1}(x_0),...,\frac{\partial f}{\partial x_n}(x_0)]=\left[ \begin{matrix} \frac{\partial f_1}{\partial x_1}(x_0),...,\frac{\partial f_1}{\partial x_n}(x_0)\\ ...\\ \frac{\partial f_m}{\partial x_1}(x_0),...,\frac{\partial f_m}{\partial x_n}(x_0) \end{matrix} \right]
[∂x1∂f(x0),...,∂xn∂f(x0)]=⎣⎡∂x1∂f1(x0),...,∂xn∂f1(x0)...∂x1∂fm(x0),...,∂xn∂fm(x0)⎦⎤
矩阵
M
M
M称为
f
f
f在点
x
0
x_0
x0的雅可比矩阵或导数矩阵,记为
D
f
(
x
0
)
Df(x_0)
Df(x0)
考虑
m
=
1
m=1
m=1的情形,如果函数
f
:
R
n
→
R
f:R^n→R
f:Rn→R可微,那么矩阵简化为一个行向量
[
∂
f
∂
x
1
(
x
)
.
.
.
∂
f
∂
x
n
(
x
)
]
T
\left[ \begin{matrix} \frac{\partial f}{\partial x_1}(x)\\ ...\\ \frac{\partial f}{\partial x_n}(x) \end{matrix} \right] ^T
⎣⎡∂x1∂f(x)...∂xn∂f(x)⎦⎤T
将其再转置一下,就得到我们熟悉的梯度公式了:
∇
f
(
x
)
=
D
f
(
x
)
T
=
[
∂
f
∂
x
1
(
x
)
.
.
.
∂
f
∂
x
n
(
x
)
]
\nabla f(x) =Df(x)^T= \left[ \begin{matrix} \frac{\partial f}{\partial x_1}(x)\\ ...\\ \frac{\partial f}{\partial x_n}(x) \end{matrix} \right]
∇f(x)=Df(x)T=⎣⎡∂x1∂f(x)...∂xn∂f(x)⎦⎤
可以看出,梯度是一个由
R
n
R^n
Rn映射到
R
n
R^n
Rn的函数,如果在点
x
0
x_0
x0绘制梯度向量,其起点为点
x
0
x_0
x0,箭头代表方向,也就是说梯度能表示为向量场,类似于下图。
可以证明梯度方向是函数 f f f在点 x 0 x_0 x0处增加最快的方向,反之,负梯度方向是函数值减少最快的方向,这也就是最小化loss的梯度下降法的理论基础。