You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

矩阵乘法中点积与元素对应相乘的适用场景疑问

矩阵乘法中点积与元素对应相乘的适用场景疑问

嘿,Tommy!刚入门线性代数碰到矩阵乘法的困惑太正常了,我当初学的时候也在这儿绕了好一会儿~

先给你掰明白核心问题:你看到的BA的计算,其实不是什么“元素对应相乘”,它依然是标准矩阵乘法(就是你说的点积那种)的结果,只是因为矩阵维度的特殊性,看起来像逐元素相乘而已!

咱们拆解来看:

  • 先看AB:1×3的矩阵乘3×1的矩阵,符合标准矩阵乘法的前提(第一个矩阵的列数=第二个矩阵的行数),所以结果是1×1矩阵,计算时用行和列的点积,这个你理解的没错。
  • 再看BA:3×1的矩阵乘1×3的矩阵,同样符合标准乘法规则(1列=1行),结果是3×3矩阵。这时候每个位置(i,j)的元素,是第一个矩阵的第i行(其实就是一个单独的元素)和第二个矩阵的第j列(也是一个单独的元素)做点积——单个元素的点积不就是两个数相乘嘛!所以你看到的“每个 entry 直接乘”,本质还是标准矩阵乘法的点积运算,只是因为向量的维度特殊,简化成了元素相乘的样子。

顺便澄清个误区:真正的“元素对应相乘”(也就是哈达玛积)是另一种完全不同的运算,它要求两个矩阵的维度完全相同,然后对应位置的元素直接相乘。但你这里的BA根本不是哈达玛积,就是标准矩阵乘法的特殊情况而已。

再给你提炼下规则:

  • 标准矩阵乘法(点积方式)的核心要求:A是m×n矩阵,B是n×p矩阵,才能相乘,结果是m×p矩阵,每个元素是A的行与B的列的点积。
  • 当其中一个矩阵是列向量(3×1),另一个是行向量(1×3)时,相乘的结果就是一个3×3的“外积矩阵”,每个元素的计算刚好是两个元素相乘,但这依然属于标准矩阵乘法的范畴,不是另一种乘法。

备注:内容来源于stack exchange,提问作者Tommy

火山引擎 最新活动