矩阵乘法:不是所有矩阵都能谈恋爱(维度匹配了解一下)
矩阵相乘就像相亲——必须条件匹配
大一学线性代数的时候,老师告诉我们:两个矩阵相乘,第一个的列数必须等于第二个的行数。我当时的反应是:“哦,行吧。” 然后期末考试就挂着矩阵乘法的题睡着了。
后来做机器学习,天天跟矩阵打交道,终于悟了——这不就是相亲吗?想象矩阵 A 是男生列表(m 行,每个男生有 n 个特征),矩阵 B 是女生列表(n 行,每个女生有 p 个特征)。 A 的列(n 个特征)必须等于 B 的行(n 个女生)——因为每个特征得跟对应的女生对上号才能做点积。结果是 (m x p) 的矩阵,相当于 m 个男生 x p 个女生,俩俩配对出了一个“契合度分数”。
所以当你看到 ValueError: shapes (3,4) and (3,4) not aligned 的时候,翻译成人话就是:“兄弟,你彿的矩阵第一个的列跟第二个的行不相等,人家怎么谈恋爱?”正确应该是 (3,4) x (4,5) -> (3,5)。内维相等,外维是结果。矩阵乘法不是你想乘就能乘。