线性变换

矩阵乘法似乎只是人为定义的一种计算操作,但是其实其有更深刻的含义在里面,例如现在有一个矩阵A,矩阵线性变换的含义 - 图1,表示的是对一组数据的记录,共有K条数据,每个数据的特征是N维的。现在我希望对这些数据进行一些操作,最简单的我想对它做一些线性变换,这时候我设计了一个矩阵矩阵线性变换的含义 - 图2,那么矩阵线性变换的含义 - 图3,就表示对于矩阵A中的每一条数据做了一个线性变换,变换的规则在矩阵矩阵线性变换的含义 - 图4中的参数定义。
但是我突然想利用矩阵A的一系列数据来生成一系列新的数据,那么我定义一个矩阵矩阵线性变换的含义 - 图5,那么矩阵线性变换的含义 - 图6,得到了新的M条记录,每一条新记录都是由属于A的记录加权求和得到,每条新记录在某种程度上都包含了A的所有数据的信息,换句话说,这M条记录是通过不同记录的信息交互得到的。
从上面两个例子可以看出,对于一个原始记录A,它乘以一个矩阵还是被一个矩阵乘是有着不同的含义的,矩阵线性变换的含义 - 图7仅仅是对每一条记录做线性变换,得到一个新的记录。矩阵线性变换的含义 - 图8则是利用了A的所有记录来生成一条新记录,生成记录包含有更多A的信息。

在机器学习中的应用

当我们仅仅希望对A中的特征进行变换的时候,我们可以使用第一种乘法,学习如何学到更有用的变换,每一条新特征都是与A中对应的一个特征强相关的,和注意力机制有点相似,生成的新特征的每一个值都相当于对原始特征的不同值使用了不同的注意力后加权求和。当我们希望对特征间的关系进行建模的时候,我们可以使用第二种乘法,学习如何学到更好的关系。(虽然我觉得这些都是扯淡,看起来很有逻辑,但是我不知道怎么去反驳它,我还证明不了这种变换是不是能对关系建模,抑或是在深度学习中,这种变换不变换其实没什么作用,故先把猜疑放在这里,以免忘记)。