分享

矩阵乘法的背后是什么?

 汉无为 2023-06-02 发布于湖北
图片
矩阵乘法(Matrix multiplication)并不容易理解。
即使看着定义都曾让我汗流浃背,更不用说试图理解这种模式了。然而,其背后有一个非常简单的解释。

让我们拉开这个帷幕吧!

首先让我们看一下原始定义。下面这张图展示了如何计算矩阵  和  的乘法。看起来不是最容易(或最令人愉快)的。

图片

我们要展开这个过程。在讨论技术细节之前,我们先看如下图对矩阵乘法给出的直观展示。矩阵  乘积的第  行第  列元素是矩阵  的第  行与矩阵  的第  列点乘的结果。

图片

现在,让我们看一个特例:  乘以一个第一个元素为1,其余元素为 0 的(列)向量。并且让我们将这个特殊的向量命名为  。结果表明  和  的乘积是  的第一列。

图片

类似地,  乘以一个第二个元素为1,其余元素为 0 的(列)向量将得到  的第二列。

这是一种模式!

图片

按照同样的逻辑,我们得出结论:  乘以  等于  的第  列。

图片

这听起来有点像代数,所以让我们用几何术语来描述这个问题。是的,你没有听错:几何术语(Geometric terms)。

矩阵表示线性变换。正如你知道的那些拉伸、倾斜、旋转、翻转或以其他方式线性扭曲空间的东西。下面图像中的基向量构成了矩阵的列向量。

我们可以在二维空间上可视化这个概念。

图片

此外,我们可以将矩阵向量乘积看作列向量的线性组合。请记住这一点,因为它很重要。

图片

(如果展开矩阵向量乘积看起来太复杂,你懂我的意思。下面的计算与上面的相同,只是向量化形式。)

图片

现在,关于矩阵乘积公式。从几何角度来看,乘积  与在基底上先应用线性变换  后应用线性变换  是一样的(译者注这里需要按照上图来理解矩阵乘法,实际上把所有过程抽象成对标准正交基底的变换,进而得到矩阵乘法的行乘列计算规则的具体由来,这一点后文中也会解释)。 

图片

 译者在此处补充了下面的计算过程来帮助理解上述内容。

其中,  分别为矩阵  的列向量。

回想一下矩阵向量乘积是(矩阵的)列向量的线性组合。 基于这一点,我们可以看到矩阵  乘积的第一列是  的列向量的线性组合(系数来自矩阵  的系第一列)。

图片

我们可以将线性组合合并为单个矢量,从而得到了  乘积的第一列的计算公式。这个公式直接来自于神秘的矩阵乘法公式。

图片

同理,可以给出一个明确的公式来计算矩阵乘积的每个元素。

图片

线性代数之所以强大,是因为它忽略了计算数据结构(例如向量和矩阵)的复杂性。我们可以使用简单的表达式  ,而不是明确地处理数组和进行复杂的求和运算。

这一点至关重要!

彼得·拉克斯(Peter Lax)完美地总结了这一点:“So what is gained by abstraction? First of all, the freedom to use a single symbol for an array; this way we can think of vectors as basic building blocks, unencumbered by components.





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多