矩阵乘法的不同理解角度

以下图片截自李宏毅线性代数课程

1. 向量内积

在这里插入图片描述

  • 这幅图确实对辅助记忆那个公式很有帮助
    Given two matrices  A  and  B , the  ( i , j ) -entry of  A B  is the inner product of row  i  of  A  and column  j  of  B \begin{align*} \text{Given two matrices } A \text{ and } B, \text{the } (i,j)\text{-entry of } AB \text{ is the inner product of row } i \text{ of } A \text{ and column } j \text{ of } B \end{align*} Given two matrices A and B,the (i,j)-entry of AB is the inner product of row i of A and column j of B

A B = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] [ b 11 b 12 ⋯ b 1 p b 21 b 22 ⋯ b 2 p ⋮ ⋮ ⋱ ⋮ b n 1 b n 2 ⋯ b n p ] = [ ∑ k = 1 n a 1 k b k 1 ∑ k = 1 n a 1 k b k 2 ⋯ ∑ k = 1 n a 1 k b k p ∑ k = 1 n a 2 k b k 1 ∑ k = 1 n a 2 k b k 2 ⋯ ∑ k = 1 n a 2 k b k p ⋮ ⋮ ⋱ ⋮ ∑ k = 1 n a m k b k 1 ∑ k = 1 n a m k b k 2 ⋯ ∑ k = 1 n a m k b k p ] \begin{align*} AB = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} \begin{bmatrix} b_{11} & b_{12} & \cdots & b_{1p} \\ b_{21} & b_{22} & \cdots & b_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ b_{n1} & b_{n2} & \cdots & b_{np} \end{bmatrix} \\ = \begin{bmatrix} \sum_{k=1}^{n} a_{1k}b_{k1} & \sum_{k=1}^{n} a_{1k}b_{k2} & \cdots & \sum_{k=1}^{n} a_{1k}b_{kp} \\ \sum_{k=1}^{n} a_{2k}b_{k1} & \sum_{k=1}^{n} a_{2k}b_{k2} & \cdots & \sum_{k=1}^{n} a_{2k}b_{kp} \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{k=1}^{n} a_{mk}b_{k1} & \sum_{k=1}^{n} a_{mk}b_{k2} & \cdots & \sum_{k=1}^{n} a_{mk}b_{kp} \end{bmatrix} \end{align*} AB= a11a21am1a12a22am2a1na2namn b11b21bn1b12b22bn2b1pb2pbnp = k=1na1kbk1k=1na2kbk1k=1namkbk1k=1na1kbk2k=1na2kbk2k=1namkbk2k=1na1kbkpk=1na2kbkpk=1namkbkp

2.向量的线性组合(linear combination)视角

① AB是A的列向量的线性组合

在这里插入图片描述
举个例子

假设我们有两个矩阵 ( A ) 和 ( B ),它们的乘积为矩阵 ( C ):

A = [ 1 2 3 4 ] , B = [ 5 6 7 8 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} A=[1324],B=[5768]

矩阵A的列是 [ 1 3 ] \begin{bmatrix} 1 \\ 3 \end{bmatrix} [13] [ 2 4 ] \begin{bmatrix} 2 \\ 4 \end{bmatrix} [24],矩阵B的列是 [ 5 7 ] \begin{bmatrix} 5 \\ 7 \end{bmatrix} [57] [ 6 8 ] \begin{bmatrix} 6 \\ 8 \end{bmatrix} [68]

矩阵乘法的结果C的每一列是矩阵A的列的线性组合,其中组合的系数由矩阵B 的相应列提供。计算乘积矩阵C如下:

A = [ 1 2 3 4 ] , B = [ 5 6 7 8 ] C = A B = [ 5 ⋅ [ 1 3 ] + 7 ⋅ [ 2 4 ] 6 ⋅ [ 1 3 ] + 8 ⋅ [ 2 4 ] ] = [ 19 22 43 50 ] \begin{align*} & A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} \\ & C = AB = \begin{bmatrix} 5 \cdot \begin{bmatrix} 1 \\ 3 \end{bmatrix} + 7 \cdot \begin{bmatrix} 2 \\ 4 \end{bmatrix} & 6 \cdot \begin{bmatrix} 1 \\ 3 \end{bmatrix} + 8 \cdot \begin{bmatrix} 2 \\ 4 \end{bmatrix} \end{bmatrix} \\ & \quad = \begin{bmatrix} 19 & 22 \\ 43 & 50 \end{bmatrix} \end{align*} A=[1324],B=[5768]C=AB=[5[13]+7[24]6[13]+8[24]]=[19432250]

这样就能比较明显地看出图中那种形式了


再来一个例子

A = [ 1 2 3 4 5 6 ] , B = [ 7 8 9 10 11 12 ] C = A B = [ 7 ⋅ [ 1 4 ] + 9 ⋅ [ 2 5 ] + 11 ⋅ [ 3 6 ] 8 ⋅ [ 1 4 ] + 10 ⋅ [ 2 5 ] + 12 ⋅ [ 3 6 ] ] = [ 58 64 139 154 ] \begin{align*} & A = \begin{bmatrix} 1 & 2 & 3\\ 4 & 5 & 6 \end{bmatrix}, \quad B = \begin{bmatrix} 7 & 8\\ 9 & 10\\ 11 & 12 \end{bmatrix} &\\ & C = AB = \begin{bmatrix} 7 \cdot \begin{bmatrix} 1 \\ 4 \end{bmatrix} + 9 \cdot \begin{bmatrix} 2 \\ 5 \end{bmatrix} + 11 \cdot \begin{bmatrix} 3 \\ 6 \end{bmatrix} & 8 \cdot \begin{bmatrix} 1 \\ 4 \end{bmatrix} + 10 \cdot \begin{bmatrix} 2 \\ 5 \end{bmatrix} + 12 \cdot \begin{bmatrix} 3 \\ 6 \end{bmatrix} \end{bmatrix} &\\ & \quad = \begin{bmatrix} 58 & 64\\ 139 & 154 \end{bmatrix} & \end{align*} A=[142536],B= 791181012 C=AB=[7[14]+9[25]+11[36]8[14]+10[25]+12[36]]=[5813964154]

② AB是B的行向量的线性组合

在这里插入图片描述
这种视角下上面给的两个例子也可以写成如下形式:
A = [ 1 2 3 4 ] , B = [ 5 6 7 8 ] C = A B = [ 1 ⋅ [ 5 6 ] + 2 ⋅ [ 7 8 ] 3 ⋅ [ 5 6 ] + 4 ⋅ [ 7 8 ] ] A = [ 1 2 3 4 5 6 ] , B = [ 7 8 9 10 11 12 ] C = A B = [ 1 ⋅ [ 7 8 ] + 2 ⋅ [ 9 10 ] + 3 ⋅ [ 11 12 ] 4 ⋅ [ 7 8 ] + 5 ⋅ [ 9 10 ] + 6 ⋅ [ 11 12 ] ] \begin{align*} & A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} &\\ & C = AB = \begin{bmatrix} 1\cdot\begin{bmatrix} 5 & 6 \end{bmatrix} + 2\cdot\begin{bmatrix} 7 & 8 \end{bmatrix} \\ 3\cdot\begin{bmatrix} 5 & 6 \end{bmatrix} + 4\cdot\begin{bmatrix} 7 & 8 \end{bmatrix} \end{bmatrix} & \\ & A = \begin{bmatrix} 1 & 2 & 3\\ 4 & 5 & 6 \end{bmatrix}, \quad B = \begin{bmatrix} 7 & 8\\ 9 & 10\\ 11 & 12 \end{bmatrix} &\\ & C = AB = \begin{bmatrix} 1\cdot\begin{bmatrix} 7 & 8 \end{bmatrix} + 2\cdot\begin{bmatrix} 9 & 10 \end{bmatrix} + 3\cdot\begin{bmatrix} 11 & 12 \end{bmatrix} \\ 4\cdot\begin{bmatrix} 7 & 8 \end{bmatrix} + 5\cdot\begin{bmatrix} 9 & 10 \end{bmatrix} + 6\cdot\begin{bmatrix} 11 & 12 \end{bmatrix} \end{bmatrix} & \end{align*} A=[1324],B=[5768]C=AB=[1[56]+2[78]3[56]+4[78]]A=[142536],B= 791181012 C=AB=[1[78]+2[910]+3[1112]4[78]+5[910]+6[1112]]

3. multiple input

在这里插入图片描述

这里,矩阵A 被看作是一个操作或函数,它作用于矩阵B 的每一列 b 1 , b 2 , … , b p b_1, b_2, \ldots, b_p b1,b2,,bp。结果是矩阵 C的每一列 c 1 , c 2 , … , c p c_1, c_2, \ldots, c_p c1,c2,,cp,其中每一列 c i c_i ci是矩阵A作用在B的列 b i b_i bi上的结果。

在这个视角中,可以将矩阵乘法看作是对一组输入向量的批处理操作,矩阵A将每一个输入向量 b i b_i bi转换为输出向量 c i c_i ci。这种理解方式对于数据处理尤其有用,例如,在机器学习中,矩阵A可以代表一层网络的权重,矩阵B的列可以代表不同的输入数据,矩阵C的列则是对应的输出。

A = [ a 11 ⋯ a 1 n ⋮ ⋱ ⋮ a m 1 ⋯ a m n ] , B = [ b 11 ⋯ b 1 p ⋮ ⋱ ⋮ b n 1 ⋯ b n p ] C = A B = [ A [ b 11 ⋮ b n 1 ] ⋯ A [ b 1 p ⋮ b n p ] ] % 假设 A 是一个 m x n 矩阵, B 是一个 n x p 矩阵 A = \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \vdots & \ddots & \vdots \\ a_{m1} & \cdots & a_{mn} \end{bmatrix}, \quad B = \begin{bmatrix} b_{11} & \cdots & b_{1p} \\ \vdots & \ddots & \vdots \\ b_{n1} & \cdots & b_{np} \end{bmatrix}\\ % C 的列是 A 乘以 B 的每一列 C = AB = \begin{bmatrix} A\begin{bmatrix} b_{11} \\ \vdots \\ b_{n1} \end{bmatrix} & \cdots & A\begin{bmatrix} b_{1p} \\ \vdots \\ b_{np} \end{bmatrix} \end{bmatrix} A= a11am1a1namn ,B= b11bn1b1pbnp C=AB= A b11bn1 A b1pbnp

我们将B的每一列 b i b_i bi 视为一个独立的输入向量,矩阵 A 作用在每一个 b i b_i bi 上,结果 A b i Ab_i Abi 形成了C的列。这种表示清晰地展示了矩阵乘法中多个输入向量被同一个操作A转换的过程(A可以看成一个system)

4. composition的视角

在这里插入图片描述

将两个矩阵 ( A ) 和 ( B ) 的乘法视为两个函数或变换的序列操作。首先,向量 ( x ) 通过矩阵 ( B ) 转换成新的向量 ( v ),然后向量 ( v ) 再通过矩阵 ( A ) 转换成最终的向量 ( y )。这个过程可以表述为:

[ v = B x ] [ y = A v ] [v = Bx ]\\ [ y = Av] [v=Bx][y=Av]

这两个操作的组合可以用一个矩阵乘法来表示:

[ y = A ( B x ) = ( A B ) x ] [ y = A(Bx) = (AB)x ] [y=A(Bx)=(AB)x]

因此,矩阵乘积 ( AB ) 代表了先应用 ( B ) 然后应用 ( A ) 的复合变换。在这种视角下,如果你有多个变换或操作,它们可以被组合成一个单一的操作,这在多步骤的过程中非常有用,比如在解决多层次的线性方程组,或者在计算机图形学中的连续变换。

A = [ … … … … … … ] , B = [ … … … … … … ] x = [ … … ] v = B x y = A v y = A ( B x ) = ( A B ) x C = A B = [ … … … … … … ] \begin{align*} & A = \begin{bmatrix} \ldots & \ldots & \ldots \\ \ldots & \ldots & \ldots \\ \end{bmatrix}, \quad B = \begin{bmatrix} \ldots & \ldots & \ldots \\ \ldots & \ldots & \ldots \\ \end{bmatrix} & \\ & x = \begin{bmatrix} \ldots \\ \ldots \\ \end{bmatrix} & \\ & v = Bx & \\ & y = Av & \\ & y = A(Bx) = (AB)x & \\ & C = AB = \begin{bmatrix} \ldots & \ldots & \ldots \\ \ldots & \ldots & \ldots \\ \end{bmatrix} & \end{align*} A=[],B=[]x=[]v=Bxy=Avy=A(Bx)=(AB)xC=AB=[]

5.矩阵和的视角 summation of matrices

在这里插入图片描述
这幅图展示了矩阵乘法可以被视作是矩阵分解的和。在这种表示中,我们将矩阵 A 的列向量 a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,,an 和矩阵 B 的行向量 b 1 T , b 2 T , … , b n T b_1^T, b_2^T, \ldots, b_n^T b1T,b2T,,bnT的外积看作是构成乘积矩阵 AB 的块。

具体来说,如果 A 是一个 m × n m \times n m×n 矩阵,B 是一个 ( n \times p ) 矩阵,那么A 的第 i i i列和 B 的第 i i i 行的转置 b i T b_i^T biT的外积将产生一个 m × p m \times p m×p的矩阵,这个矩阵的每个元素都是 a i a_i ai 的对应元素与 b i T b_i^T biT的对应元素的乘积。

我们将A的每一列与 B 的每一行的转置相乘,得到 n 个这样的 m × p m \times p m×p 矩阵,然后将这些矩阵相加,最终得到 AB 。这个求和过程可以表示为:

A B = a 1 b 1 T + a 2 b 2 T + … + a n b n T AB = a_1b_1^T + a_2b_2^T + \ldots + a_nb_n^T AB=a1b1T+a2b2T++anbnT

这里的 a i b i T a_ib_i^T aibiT是一个秩为(至多是)1的矩阵,因为它是从两个向量的外积产生的,这两个向量分别是A 的列和 B 的行。所有这些秩为1的矩阵的和就给出了最终的乘积矩阵 ( AB )。这个视角不仅在数学上很有用,而且在理解算法和进行计算优化时也很有用,特别是在处理大型矩阵时,可以将问题分解为更小、更易于管理的部分。


还是举个例子

A = [ 1 2 3 4 5 6 ] , B = [ 7 8 9 10 11 12 ] A = \begin{bmatrix} 1 & 2 & 3\\ 4 & 5 & 6 \end{bmatrix}, \quad B = \begin{bmatrix} 7 & 8\\ 9 & 10\\ 11 & 12 \end{bmatrix} A=[142536],B= 791181012

首先,我们找出矩阵A的列向量和矩阵B的行向量:

a 1 = [ 1 4 ] , a 2 = [ 2 5 ] , a 3 = [ 3 6 ] b 1 T = [ 7 9 11 ] , b 2 T = [ 8 10 12 ] a_1 = \begin{bmatrix} 1 \\ 4 \end{bmatrix}, \quad a_2 = \begin{bmatrix} 2 \\ 5 \end{bmatrix}, \quad a_3 = \begin{bmatrix} 3 \\ 6 \end{bmatrix} \\ b_1^T = \begin{bmatrix} 7 & 9 & 11 \end{bmatrix}, \quad b_2^T = \begin{bmatrix} 8 & 10 & 12 \end{bmatrix} a1=[14],a2=[25],a3=[36]b1T=[7911],b2T=[81012]

然后,我们计算每对 a i a_i ai b i T b_i^T biT的外积:

a 1 b 1 T = [ 1 4 ] [ 7 8 ] = [ 1 ⋅ 7 1 ⋅ 8 4 ⋅ 7 4 ⋅ 8 ] = [ 7 8 28 32 ] a_1b_1^T = \begin{bmatrix} 1 \\ 4 \end{bmatrix}\begin{bmatrix} 7 & 8 \end{bmatrix} = \begin{bmatrix} 1 \cdot 7 & 1 \cdot 8 \\ 4 \cdot 7 & 4 \cdot 8 \end{bmatrix} = \begin{bmatrix} 7 & 8 \\ 28 & 32 \end{bmatrix} a1b1T=[14][78]=[17471848]=[728832]

a 2 b 2 T = [ 2 5 ] [ 9 10 ] = [ 2 ⋅ 9 2 ⋅ 10 5 ⋅ 9 5 ⋅ 10 ] = [ 18 20 45 50 ] a_2b_2^T = \begin{bmatrix} 2 \\ 5 \end{bmatrix}\begin{bmatrix} 9 & 10 \end{bmatrix} = \begin{bmatrix} 2 \cdot 9 & 2 \cdot 10 \\ 5 \cdot 9 & 5 \cdot 10 \end{bmatrix} = \begin{bmatrix} 18 & 20 \\ 45 & 50 \end{bmatrix} a2b2T=[25][910]=[2959210510]=[18452050]

a 3 b 3 T = [ 3 6 ] [ 11 12 ] = [ 3 ⋅ 11 3 ⋅ 12 6 ⋅ 11 6 ⋅ 12 ] = [ 33 36 66 72 ] a_3b_3^T = \begin{bmatrix} 3 \\ 6 \end{bmatrix}\begin{bmatrix} 11 & 12 \end{bmatrix} = \begin{bmatrix} 3 \cdot 11 & 3 \cdot 12 \\ 6 \cdot 11 & 6 \cdot 12 \end{bmatrix} = \begin{bmatrix} 33 & 36 \\ 66 & 72 \end{bmatrix} a3b3T=[36][1112]=[311611312612]=[33663672]

最后,我们将这些外积相加,得到C

C = a 1 b 1 T + a 2 b 2 T + a 3 b 3 T = [ 7 8 28 32 ] + [ 18 20 45 50 ] + [ 33 36 66 72 ] = [ 7 + 18 + 33 8 + 20 + 36 28 + 45 + 66 32 + 50 + 72 ] = [ 58 64 139 154 ] \begin{align*} C &= a_1b_1^T + a_2b_2^T + a_3b_3^T \\ &= \begin{bmatrix} 7 & 8 \\ 28 & 32 \end{bmatrix} + \begin{bmatrix} 18 & 20 \\ 45 & 50 \end{bmatrix} + \begin{bmatrix} 33 & 36 \\ 66 & 72 \end{bmatrix} \\ &= \begin{bmatrix} 7+18+33 & 8+20+36 \\ 28+45+66 & 32+50+72 \end{bmatrix} \\ &= \begin{bmatrix} 58 & 64 \\ 139 & 154 \end{bmatrix} \end{align*} C=a1b1T+a2b2T+a3b3T=[728832]+[18452050]+[33663672]=[7+18+3328+45+668+20+3632+50+72]=[5813964154]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值