首先以一个网上很多博文引用的例子来开篇,例子见下图
问题初试
在了解向量和向量求导的时候,我看过以下一些公式:
首先Ax是个m维的列向量,它对x求偏导是个列向量对列向量求偏导的格式,所以可以套用上述公式(10),那么得到的是:
∂
A
x
∂
x
=
⎛
⎝
⎜
⎜
⎜
⎜
⎜
∂
(
a
11
x
1
+
a
12
x
2
+
⋯
+
a
1
n
x
n
)
∂
x
∂
(
a
21
x
1
+
a
22
x
2
+
⋯
+
a
2
n
x
n
)
∂
x
⋯
∂
(
a
m
1
x
1
+
a
m
2
x
2
+
⋯
+
a
m
n
x
n
)
∂
x
⎞
⎠
⎟
⎟
⎟
⎟
⎟
m
×
1
∂
A
x
∂
x
=
(
∂
(
a
11
x
1
+
a
12
x
2
+
⋯
+
a
1
n
x
n
)
∂
x
∂
(
a
21
x
1
+
a
22
x
2
+
⋯
+
a
2
n
x
n
)
∂
x
⋯
∂
(
a
m
1
x
1
+
a
m
2
x
2
+
⋯
+
a
m
n
x
n
)
∂
x
)
m
×
1
∂
A
x
∂
x
=
(
∂
(
a
11
x
1
+
a
12
x
2
+
⋯
+
a
1
n
x
n
)
∂
x
∂
(
a
21
x
1
+
a
22
x
2
+
⋯
+
a
2
n
x
n
)
∂
x
⋯
∂
(
a
m
1
x
1
+
a
m
2
x
2
+
⋯
+
a
m
n
x
n
)
∂
x
)
m
×
1
∂Ax∂x=⎛⎝⎜⎜⎜⎜⎜∂(a11x1+a12x2+⋯ +a1nxn)∂x∂(a21x1+a22x2+⋯ +a2nxn)∂x⋯ ∂(am1x1+am2x2+⋯ +amnxn)∂x⎞⎠⎟⎟⎟⎟⎟m×1∂Ax∂x=(∂(a11x1+a12x2+⋯ +a1nxn)∂x∂(a21x1+a22x2+⋯ +a2nxn)∂x⋯ ∂(am1x1+am2x2+⋯ +amnxn)∂x)m×1 \frac{\partial Ax}{\partial x}=\left(\begin{matrix}\frac{\partial (a_{11}x_{1}+a_{12}x_2+ \cdots\ +a_{1n}x_n)}{\partial x}\\\frac{\partial (a_{21}x_{1}+a_{22}x_2+ \cdots\ +a_{2n}x_n)}{\partial x}\\\cdots\ \\\frac{\partial (a_{m1}x_{1}+a_{m2}x_2+ \cdots\ +a_{mn}x_n)}{\partial x}\\\end{matrix}\right)_{m\times1}
∂Ax∂x=⎛⎝⎜⎜⎜⎜⎜∂(a11x1+a12x2+⋯ +a1nxn)∂x∂(a21x1+a22x2+⋯ +a2nxn)∂x⋯ ∂(am1x1+am2x2+⋯ +amnxn)∂x⎞⎠⎟⎟⎟⎟⎟m×1∂Ax∂x=(∂(a11x1+a12x2+⋯ +a1nxn)∂x∂(a21x1+a22x2+⋯ +a2nxn)∂x⋯ ∂(am1x1+am2x2+⋯ +amnxn)∂x)m×1∂x∂Ax=⎝⎜⎜⎜⎛∂x∂(a11x1+a12x2+⋯ +a1nxn)∂x∂(a21x1+a22x2+⋯ +a2nxn)⋯ ∂x∂(am1x1+am2x2+⋯ +amnxn)⎠⎟⎟⎟⎞m×1∂x∂Ax=⎝⎜⎛∂x1∂(a11x1+a12x2+⋯ +a1nxn)⋯∂x1∂(am1x1+am2x2+⋯ +amnxn)⋯⋯⋯∂xn∂(a11x1+a12x2+⋯ +a1nxn)⋯∂xn∂(am1x1+am2x2+⋯ +amnxn)⎠⎟⎞(m∗n)
这样最后得到的化简结果是一个m*n维的列向量和网上得到的答案AT不一致,那么我这个答案有没有错呢?讲道理按照公式来推应该也没有问题,然后看到了这篇文章:知乎链接。所以我按照公式推其实也没错,只是表现的形式不一样。(应该是把?)
那么怎么去得到AT这个答案呢?于是我就上网找资料以及向同学请教,找到了一个可能的答案:是因为布局方式的问题。
布局方式
布局方式分分子布局和分母布局。
分子布局: 分子为 y 或者分母为 xT (即,分子为列向量或者分母为行向量)
分母布局: 分子为 yT 或者分母为 x (即,分子为行向量或者分母为列向量)
按照不同的布局方式,有几种情形,比如在分子布局方式下计算:标量/向量,向量/标量,向量/向量,标量/矩阵,矩阵/标量。
分子布局下:
标量/向量(分母是向量,且是分子布局,则把分母的向量按照行向量铺开):
向量/标量:(分子是向量,且是分子布局,则把分子按照列向量铺开)
向量/向量:(分子分母都是向量,且是分子布局,则分子向量按照列向量铺开,分母向量按照行向量铺开):
标量/矩阵(分子布局下,X矩阵是转置后铺开的):
分母布局下:
标量/向量(分母是向量,且是分母布局,则把分母的向量按照列向量铺开):
向量/标量:(分子是向量,且是分母布局,则把分子按照行向量铺开):
向量/向量:(分子分母都是向量,且是分母布局,则分子向量按照行向量铺开,分母向量按照列向量铺开):
标量/矩阵(分母布局下,X矩阵无需转置,就是原矩阵):
问题解决
那么回到我们刚开始引入的例子来:
这里它这个答案得到AT应该是因为它采用的是分母布局。
那么下面我分别按照分母布局和分子布局来计算一遍它的答案。
分子布局下将分子看成列向量展开,分母看成行向量展开:
分母布局下将分子看成行向量展开,分母看成列向量展开:
以上博文信息是自己的一点点学习总结,实属抛砖引玉,有不对的地方麻烦各位不吝赐教。
参考博文:
https://blog.youkuaiyun.com/uncle_gy/article/details/78879131
https://blog.youkuaiyun.com/nomadlx53/article/details/50849941
https://blog.youkuaiyun.com/shouhuxianjian/article/details/46669365