这是最近一个师弟问我的问题,为什么在论文里面总是写的 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
≠
B
A
AB\neq BA
AB=BA,举个直观的例子:
A = [ 1 2 3 4 ] , B = [ 5 6 7 8 ] \begin{equation} A = \left[ \begin{matrix} 1 & 2 \\ 3 & 4 \end{matrix} \right], B = \left[ \begin{matrix} 5 & 6 \\ 7 & 8 \end{matrix} \right] \end{equation} A=[1324],B=[5768]
A B = [ 19 22 43 50 ] , B A = [ 23 34 31 46 ] \begin{equation} AB = \left[ \begin{matrix} 19 & 22 \\ 43 & 50 \end{matrix} \right], BA = \left[ \begin{matrix} 23 & 34 \\ 31 & 46 \end{matrix} \right] \end{equation} AB=[19432250],BA=[23313446]
-
接着,我们要考虑矩阵的本质,矩阵的本质是一种线性映射,即将一个空间中的向量按照一定的规则进行旋转、缩放。在一个常规二维坐标系中,即基向量为 [ 1 , 0 ] [1, 0] [1,0] 和 [ 0 , 1 ] [0, 1] [0,1],假设有一个矩阵:
[ 2 − 1 1 1 ] \left[ \begin{matrix} 2 & -1 \\ 1 & 1 \end{matrix} \right] [21−11]
那么这个矩阵代表着将基向量变换到了 [ 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[ \begin{matrix} 2 & -1 \\ 1 & 1 \end{matrix} \right] \left[ \begin{matrix} 0.5 \\ 2 \end{matrix} \right] = \left[ \begin{matrix} -1 \\ 2.5 \end{matrix} \right], [21−11][0.52]=[−12.5],
如下图所示:
而这只是一个举例的向量,实际上这个矩阵 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
。