最近在处理一些优化问题时,我才注意到,在不同的书籍、资料中函数 f ( x ) : R n → R m f(x):\R^n \rightarrow\R^m f(x):Rn→Rm 的导数 ∂ f ∂ x \frac {\partial{f}} {\partial{x}} ∂x∂f形式并不一样。如下图,二者在雅各比矩阵的定义上显然不一样(很明显矩阵维度不同)。这一下子就把我弄糊涂了,之前还没从没注意到这个问题。
|
还好有万能的wikipedia,在这里我找到了答案:
这两种表达不同的原因是其采用的表达形式不同,一种称为Numerator layout(分子布局),一种称为Denominator layout(分母布局)。
如果要方便地区分二者,这里我们记为 Numerator layout:
∂
y
∂
x
T
\frac {\partial{y}} {\partial{x^T}}
∂xT∂y,Denominator layout:
∂
y
T
∂
x
\frac {\partial{y^T}} {\partial{x}}
∂x∂yT。为了方便记忆,我们可以记为未转置的向量在那个位置,就是什么布局。
那么两种形式的区别和联系是什么呢?这里我们来看一个最简单的例子(注意!对于标量,转置和不转置没有区别。粗体为列向量):
∂
y
∂
x
T
=
[
∂
y
1
∂
x
T
⋮
∂
y
m
∂
x
T
]
∂
y
T
∂
x
=
[
∂
y
1
T
∂
x
…
∂
y
m
T
∂
x
]
\frac {\partial{\mathbf{y}}} {\partial{\mathbf{x}^T}}=\begin{bmatrix} \frac {\partial{y_1}} {\partial{\mathbf{x}^T}} \\ \vdots\\ \frac {\partial{y_m}} {\partial{\mathbf{x}^T}} \end{bmatrix} \quad \frac {\partial{\mathbf{y}^T}} {\partial{\mathbf{x}}}=\begin{bmatrix} \frac {\partial{y_1^T}} {\partial{\mathbf{x}}} & \dots &\frac {\partial{y_m^T}} {\partial{\mathbf{x}}} \end{bmatrix}
∂xT∂y=
∂xT∂y1⋮∂xT∂ym
∂x∂yT=[∂x∂y1T…∂x∂ymT]
通过这个例子,这两种表达的规律大家应该就很清晰了,并且也应该会觉得这两种写法导致结果的不同是很自然的。接下来,我们继续探究,我们先来回忆一下对标量函数导数的一个定义
d
y
=
f
˙
(
x
)
d
x
dy=\dot{f}(x)dx
dy=f˙(x)dx(这里不写为除法形式,是因为对于向量来说除法并不存在)。在进行高维推广时,我们自然而然的想要得到相同的形式。可是我们会发现,实际情况会略微变复杂一些。我们还是看一个简单的例子:
A
∈
R
m
×
n
,
y
∈
R
m
,
x
∈
R
n
y
=
f
(
x
)
=
A
x
according to figure.2
→
∂
y
∂
x
T
=
A
,
∂
y
T
∂
x
=
A
T
d
y
=
A
d
x
=
∂
y
∂
x
T
d
x
,
d
y
=
(
d
x
T
A
T
)
T
=
(
∂
y
T
∂
x
)
T
d
x
A \in \R^{m\times n}, y\in \R^m, x\in\R^n \\ y=f(x)=Ax \\ \text{according to figure.2 } \rightarrow \frac {\partial{y}} {\partial{x^T}}=A,\frac {\partial{y^T}} {\partial{x}}=A^T \\ dy=Adx=\frac {\partial{y}} {\partial{x^T}} dx, \quad dy=(dx^TA^T)^T=(\frac {\partial{y^T}} {\partial{x}})^Tdx
A∈Rm×n,y∈Rm,x∈Rny=f(x)=Axaccording to figure.2 →∂xT∂y=A,∂x∂yT=ATdy=Adx=∂xT∂ydx,dy=(dxTAT)T=(∂x∂yT)Tdx
所以我们可以直观地看到,分子布局的结果,我们可以直接使用;而对于分母布局的结果,我们需要转置后再使用。
如想更进一步理解,请看如下好文:
矩阵求导术(上)
矩阵求导术(下)
矩阵求导(分母布局与分子布局),以及常用的矩阵求导公式