记号标识
标量:常规小写字母;
向量:加粗的小写字母:
x
=
[
x
1
,
⋯
 
,
x
m
]
T
∈
R
m
\bm x=[x_1,\cdots,x_m]^T \in \mathbb{R}^m
x=[x1,⋯,xm]T∈Rm ;
实矩阵:加粗的大写字母:
X
=
[
x
1
,
⋯
 
,
x
n
]
T
∈
R
m
×
n
\bm X =[\bm x_1,\cdots,\bm x_n]^T \in \mathbb R^{m \times n}
X=[x1,⋯,xn]T∈Rm×n
函数的表示亦是如此,打字费劲,不做演示,小写
f
f
f表示标量scalar函数,小写粗体
f
\bm f
f表示列向量函数,大写粗体
F
\bm F
F表示矩阵函数。
Jacobian矩阵
1
×
m
1\times m
1×m行向量偏导算子记为:
D
x
=
d
e
f
∂
∂
x
T
=
(
∂
∂
x
1
,
⋯
 
,
∂
∂
x
m
)
D_x \overset{def}{=}\frac{\partial}{\partial\bm x^T}=\left(\frac{\partial}{\partial x_1},\cdots,\frac{\partial}{\partial x_m}\right)
Dx=def∂xT∂=(∂x1∂,⋯,∂xm∂)
由此可以看出,Jacobian矩阵的核心在于,当求偏导时:
- 自变量
x
\bm x
x转置为行向量
x
T
\bm x^T
xT或者自变量矩阵
X
\bm X
X转置为
X
T
\bm X^T
XT;
- 如果函数为列向量
f
\bm f
f时,函数按照原方向展开;
所以,Jacobian矩阵简单来讲,就是求偏导时,自变量按照水平方向展开,函数按竖直方向展开。
有关Jacobian矩阵的更多内容,请参照张贤达《矩阵分析与应用》第三章3.1节
梯度矩阵(这是重点)
采用列向量形式定义的偏导算子称为列向量偏导算子,习惯上称为梯度算子,而梯度在机器学习中是一个经常用到的概念。
梯度算子计作
∇
x
\nabla_x
∇x,定义为:
∇
x
=
d
e
f
∂
∂
x
=
(
∂
∂
x
1
,
⋯
 
,
∂
∂
x
m
)
T
\nabla_x\overset{def}{=}\frac{\partial}{\partial\bm x}=\left(\frac{\partial}{\partial x_1},\cdots,\frac{\partial}{\partial x_m}\right)^T
∇x=def∂x∂=(∂x1∂,⋯,∂xm∂)T
因此,实值标量函数
f
(
x
)
f(\bm x)
f(x)的梯度向量
∇
x
f
(
x
)
\nabla_\bm xf(\bm x)
∇xf(x)为
m
×
1
m\times1
m×1的列向量,定义为:
∇
x
f
(
x
)
=
d
e
f
∂
f
(
x
)
∂
x
=
(
∂
f
(
x
)
∂
x
1
,
⋯
 
,
∂
f
(
x
)
∂
x
m
)
T
\nabla_xf(\bm x)\overset{def}{=}\frac{\partial f(\bm x)}{\partial\bm x}=\left(\frac{\partial f(\bm x)}{\partial x_1},\cdots,\frac{\partial f(\bm x)}{\partial x_m}\right)^T
∇xf(x)=def∂x∂f(x)=(∂x1∂f(x),⋯,∂xm∂f(x))T
由此可知:梯度矩阵的核心是:
- 自变量列向量
x
\bm x
x按照原本列的形式进行铺陈;
- 列向量函数
f
\bm f
f或矩阵函数
F
\bm F
F按照行形式进行铺排;
梯度方向的负方向
−
∇
x
f
(
x
)
-\nabla_\bm xf(\bm x)
−∇xf(x)称为函数
f
f
f在点
x
\bm x
x梯度流(gradient flow),从梯度向量的定义可以看出(没有基础当然看不出来):
-
(1) 在梯度流方向,函数
f
(
x
)
f(\bm x)
f(x)以最大速率下降;
-
(2) 在梯度正方向,函数
f
(
x
)
f(\bm x)
f(x)以最大速率上升。
方向导数和梯度向量关系密切,方向导数的最大值为梯度向量的模长
∥
∇
x
f
(
x
)
∥
2
\|\nabla_\bm xf(\bm x)\|_2
∥∇xf(x)∥2,日后有机会可以一说。
更加广义的表达方式对比实值矩阵函数
F
(
X
)
\bm F(\bm X)
F(X)的梯度矩阵和Jacobian矩阵:
∇
X
F
(
X
)
=
∂
v
e
c
T
F
(
X
)
∂
v
e
c
X
=
(
∂
v
e
c
F
(
X
)
∂
v
e
c
T
X
)
T
=
(
D
X
F
(
X
)
)
T
\nabla_\bm X \bm F(\bm X)=\frac{\partial vec^T\bm F(\bm X)}{\partial vec \bm X}=\left(\frac{\partial vec\bm F(\bm X)}{\partial vec^T\bm X}\right)^T=\left(D_\bm X\bm F(\bm X)\right)^T
∇XF(X)=∂vecX∂vecTF(X)=(∂vecTX∂vecF(X))T=(DXF(X))T
其中:
∂
v
e
c
X
\partial vec \bm X
∂vecX表示将自变量矩阵
X
\bm X
X转化为列向量,转化的方式是按列顺次拼接,最终以列的形式铺陈;
∂
v
e
c
T
F
(
X
)
\partial vec^T \bm F(\bm X)
∂vecTF(X)表示将实值矩阵函数
F
(
X
)
\bm F(\bm X)
F(X)转化为行向量,转化的方式依旧是按列顺次拼接,最终以行的形式铺陈。其他同理。
总之,矩阵函数的梯度矩阵是其Jacobian矩阵的转置【Transposition】。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)