这是最近一个师弟问我的问题,为什么在论文里面总是写的 Y = W X Y=WX Y=WX,而不是 Y = X W Y=XW Y=XW?就算有的时候需要转置 W W W 或者 X X X,都不写 Y = X W Y=XW Y=XW?
这个问题我最开始回答的是这就是约定俗成的写法,因为我也确实没思考过这个问题,我估计大部分的人也没有思考过这个问题,后来我发现这个是个数学问题,而不是约定俗成的写法。
A
B
=
[
19
22
43
50
]
,
B
A
=
[
23
34
31
46
]
AB=[19224350],BA=[23343146]
接着,我们要考虑矩阵的本质,矩阵的本质是一种线性映射,即将一个空间中的向量按照一定的规则进行旋转、缩放。在一个常规二维坐标系中,即基向量为
[
1
,
0
]
[1, 0]
[1,0] 和
[
0
,
1
]
[0, 1]
[0,1],假设有一个矩阵:
[
2
−
1
1
1
]
\left[ 2−111
那么这个矩阵代表着将基向量变换到了
[
2
,
1
]
[2, 1]
[2,1] 和
[
−
1
,
1
]
[-1, 1]
[−1,1],如下图所示:
当这个矩阵乘以一个向量
[
0.5
,
2
]
[0.5, 2]
[0.5,2] 的时候,就将这个矩阵的这种旋转与拉伸给作用到了这个向量之上:
[
2
−
1
1
1
]
[
0.5
2
]
=
[
−
1
2.5
]
,
\left[ 2−111
如下图所示:
而这只是一个举例的向量,实际上这个矩阵
W
W
W 会将整个空间中的向量按照这种方式进行旋转与拉伸,即
W
X
WX
WX 中这个
X
X
X 可以是任何满足矩阵乘法条件的向量。
第三点则是,大部分语种的阅读顺序是从左到右的,然而对于矩阵乘法,实际上是从右到左的读法。
在理解了上面三个简单的线代概念后,我们在回过头来看
W
X
WX
WX 与
X
W
XW
XW 的区别。对于
W
X
WX
WX 而言,其表达的物理意义是:X 在 W 的作用下映射到了另外一个位置
,而
X
W
XW
XW 表达的物理意义是:W 在 X 的作用下映射到了另外一个位置
。那么这样就能够回答为什么论文中总是
W
X
WX
WX 而不是
X
W
XW
XW 了,因为
X
X
X 代表的是输入向量,
W
W
W 是映射函数。当然如果在你论文中
X
X
X 是映射函数,
W
W
W 是输入数据,那你写
X
W
XW
XW 肯定是完全对的,不过这与大部分人的直觉都不同罢了。
当然还有个更简单的例子,考虑
3
×
5
3\times5
3×5 和
5
×
3
5\times3
5×3,虽然最后的结果都是
15
15
15,但是前者代表的是有5个3
,后者代表的是有3个5
。