【理解线性代数】(四)从向量组点乘到矩阵相乘

这篇具有很好参考价值的文章主要介绍了【理解线性代数】(四)从向量组点乘到矩阵相乘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 批量化的发展趋势

工业生产的发展趋势总是从单件生产到批量生产。科学技术研究也是一样,总是从简单计算到复合运算、批量运算。批量意味着生产能力、处理能力的提升。计算机从16位发展到64位,从单核发展到多核;计算机从CPU处理数据发展到GPU处理数据;大数据、人工智能领域的大模型等一些前沿的信息技术的发展都体现了这一点。

前面我们讲了向量点乘,向量点乘向批量化发展,可以得到向量组点乘。

2. 向量组

向量加法和乘法,总是两两进行运算,这种运算比较简单。

现实应用中,往往需要对很多向量组成的向量集合进行批量运算。为了研究向量的批量运算,需要将一个向量集合视为一个整体,将向量按行排列,用括号括起来,我们称之为“向量组”。

例如下图是一个向量组,此向量组由 (a, b, c) 和 (d, e, f) 两个三维向量组成:
( a b c d e f ) \begin{pmatrix} a & b & c\\ d & e & f \end{pmatrix} (adbecf)

向量组的行数表示向量个数,向量组的列数表示向量的维度。目前向量仅仅表示多个向量的集合,没有其他任何含义,不需要想得太复杂。

下面将根据我们自己的理解,对向量组运算规则进行推导。

3. 向量组运算

3.1 向量组加法

向量组加法很简单,将向量组中对应位置的向量相加即可。向量组相加,两个相加的向量组包含的向量个数必须相等,否则对应行会因为缺少向量而无法进行。

可以正确进行的矩阵加法如下:
( a 1 b 1 c 1 d 1 e 1 f 1 ) + ( a 2 b 2 c 2 d 2 e 2 f 2 ) = ( a 1 + a 2 b 1 + b 2 c 1 + c 2 d 1 + d 2 e 1 + e 2 f 1 + f 2 ) \begin{pmatrix} a1 & b1 & c1\\ d1 & e1 & f1 \end{pmatrix} + \begin{pmatrix} a2 & b2 & c2\\ d2 & e2 & f2 \end{pmatrix} = \begin{pmatrix} a1+a2 & b1+b2 & c1+c2\\ d1+d2 & e1+e2 & f1+f2 \end{pmatrix} (a1d1b1e1c1f1)+(a2d2b2e2c2f2)=(a1+a2d1+d2b1+b2e1+e2c1+c2f1+f2)

无法进行的矩阵向量组加法如下:
( a 1 b 1 c 1 d 1 e 1 f 1 ) + ( a 2 b 2 c 2 ) = 非法 \begin{pmatrix} a1 & b1 & c1\\ d1 & e1 & f1 \end{pmatrix} + \begin{pmatrix} a2 & b2 & c2 \end{pmatrix} = 非法 (a1d1b1e1c1f1)+(a2b2c2)=非法

3.2 向量组乘法

3.2.1 1行3列向量组 * 1行3列向量组

设向量组A:
A = ( a 1 b 1 c 1 ) A= \begin{pmatrix} a1 & b1 & c1 \end{pmatrix} A=(a1b1c1)

和向量组B
B = ( a 2 b 2 c 2 ) B= \begin{pmatrix} a2 & b2 & c2 \end{pmatrix} B=(a2b2c2)

进行乘法运算,因为每个向量组都只有一个向量,可以尝试将这两个向量进行点乘运算,即:
A ∗ B = a 1 a 2 + b 1 b 2 + c 1 c 2 = ( a 1 a 2 + b 1 b 2 + c 1 c 2 ) A * B = a1a2 + b1b2 + c1c2 = (a1a2 + b1b2 + c1c2) AB=a1a2+b1b2+c1c2=(a1a2+b1b2+c1c2)

结果是一个一维向量。

分析:
向量组A包含1个三维向量,向量组B包含1个三维向量,向量组B可以代表三维空间中的一个一维子空间,所以A中的所有向量投影到B,投影后的向量为一维空间中的一维向量。

3.2.2 2行3列向量组 * 1行3列向量组

增加向量组A的行数,设向量组A:
A = ( a 1 b 1 c 1 d 1 e 1 f 1 ) A= \begin{pmatrix} a1 & b1 & c1 \\ d1 & e1 & f1 \end{pmatrix} A=(a1d1b1e1c1f1)

和向量组B
B = ( a 2 b 2 c 2 ) B= \begin{pmatrix} a2 & b2 & c2 \end{pmatrix} B=(a2b2c2)

进行乘法运算,将A中每个向量分别与B中的每个向量进行点乘运算,结果为:
A ∗ B = ( a 1 a 2 + b 1 b 2 + c 1 c 2 d 1 a 2 + b 1 b 2 + c 1 c 2 ) A * B = \begin{pmatrix} a1a2 + b1b2 + c1c2 \\ d1a2 + b1b2 + c1c2 \end{pmatrix} AB=(a1a2+b1b2+c1c2d1a2+b1b2+c1c2)

结果是一个2行1列的向量组。

分析:
向量组A包含2个三维向量,向量组B包含1个三维向量,向量组B可以代表三维空间中的一个一维空间,所以A中的所有向量投影到B,最终的结果变成了2个一维向量,符合我们对向量点乘的理解。

3.2.3 2行3列矩阵 * 2行3列矩阵

设向量组A:
A = ( a 1 b 1 c 1 d 1 e 1 f 1 ) A= \begin{pmatrix} a1 & b1 & c1 \\ d1 & e1 & f1 \end{pmatrix} A=(a1d1b1e1c1f1)

和向量组B
B = ( a 2 b 2 c 2 d 2 e 2 f 2 ) B= \begin{pmatrix} a2 & b2 & c2 \\ d2 & e2 & f2 \end{pmatrix} B=(a2d2b2e2c2f2)

进行乘法运算,将A中每个向量分别与B中的每个向量进行点乘运算,结果为:
A ∗ B = ( a 1 a 2 + b 1 b 2 + c 1 c 2 a 1 d 2 + b 1 e 2 + c 1 f 2 d 1 a 2 + e 1 b 2 + f 1 c 2 d 1 d 2 + e 1 e 2 + f 1 f 2 ) A * B = \begin{pmatrix} a1a2 + b1b2 + c1c2 & a1d2+b1e2+c1f2\\ d1a2 + e1b2 + f1c2 & d1d2+e1e2+f1f2 \end{pmatrix} AB=(a1a2+b1b2+c1c2d1a2+e1b2+f1c2a1d2+b1e2+c1f2d1d2+e1e2+f1f2)

结果是一个2行2列的向量组。

分析:
向量组A包含2个二维向量,向量组B包含2个三维向量,向量组B可以代表三维空间中的一个二维平面空间(两条线组成一个面),向量组B中的两个向量,分别成为了二维空间中的坐两个标轴,这两个坐标轴不一定垂直。所以,A中的所有向量投影到B,最终的结果变成了2个二维向量,符合我们对向量点乘的理解。

这个向量组乘法稍微有些复杂,但相乘过程中有一个量没变,那就是向量组A中向量的个数等于投影结果向量组中向量的个数,即向量组A的行数等于投影结果向量组的行数。投影前后维度可能会变化,但是向量个数始终是不变的,因为投影各投各的,互不干扰。

在行数相等不变的情况下,只能将向量点乘的结果按列依次向后摆放,最终,结果向量组的列数,和向量组B的行数一定相同,读者可以自己演算一遍,加深理解。

3.2.4 向量组不能相乘的情况

如果两个向量组列数不同,也就是维度不同,还能相乘吗?

不能,因为向量点乘要求两个向量具有相同的维度。如果两个向量组列数不同,向量组中的向量互相无法点乘。不同维度的向量,坐标个数不一样,无法做乘法。

所以,两个向量组相乘,必须乘号两边的向量组有相同的维度。

3.2.5 推广


A ∗ B = C A * B = C AB=C
为例。

只要向量组A和向量组B的列数相同,不管向量组A、向量组B各自有多少行,都可以进行相乘。并且有:

  • 结果向量组C包含的向量个数和A中的向量个数相同,投影过程是一个线性变换,向量个数不会增加也不会减少,故投影前后向量个数不变。
  • 结果向量组C的向量维度和矩阵B的维度相同,因为向量组C包含的向量,是向量组A向向量组B的投影,所以它们全部位于向量组B所代表的空间中,所以C和B的维度必然相同。
3.2.6 验证复杂向量组相乘:2行3列向量组 * 3行3列向量组

设向量组A:
A = ( a 1 b 1 c 1 d 1 e 1 f 1 ) A= \begin{pmatrix} a1 & b1 & c1 \\ d1 & e1 & f1 \end{pmatrix} A=(a1d1b1e1c1f1)

和向量组B
B = ( a 2 b 2 c 2 d 2 e 2 f 2 g 2 h 2 i 2 ) B= \begin{pmatrix} a2 & b2 & c2 \\ d2 & e2 & f2 \\ g2 & h2 & i2 \end{pmatrix} B= a2d2g2b2e2h2c2f2i2

进行乘法运算,结果为:
A ∗ B = ( a 1 a 2 + b 1 b 2 + c 1 c 2 a 1 d 2 + b 1 e 2 + c 1 f 2 a 1 g 2 + b 1 h 2 + c 1 i 2 d 1 a 2 + e 1 b 2 + f 1 c 2 d 1 d 2 + e 1 e 2 + f 1 f 2 d 1 g 2 + e 1 h 2 + f 1 i 2 ) A * B = \begin{pmatrix} a1a2 + b1b2 + c1c2 & a1d2+b1e2+c1f2 & a1g2+b1h2+c1i2\\ d1a2 + e1b2 + f1c2 & d1d2+e1e2+f1f2 & d1g2+e1h2+f1i2 \end{pmatrix} AB=(a1a2+b1b2+c1c2d1a2+e1b2+f1c2a1d2+b1e2+c1f2d1d2+e1e2+f1f2a1g2+b1h2+c1i2d1g2+e1h2+f1i2)

结果是一个2行3列的向量组。

分析:
向量组A包含2个三维向量,向量组B包含3个三维向量,向量组B可以代表三维空间中的一个三维立体子空间,所以A中的所有向量投影到B,最终的结果变成了2个三维向量,符合我们对向量组点乘的理解。

4. 矩阵与矩阵乘法

4.1 什么是矩阵

矩阵由向量组发展而来,它在向量组的基础上,增加了新的规则,但是本质上二者几乎是一样的。

4.2 矩阵乘法

理解了向量组乘法,理解矩阵乘法就非常简单了。
以两个2行3列向量组A,B点乘为例
A ∗ B = C A * B = C AB=C
为例。

我们知道,向量组A点乘向量组B,是A中的每个行代表的向量和B中的每个行代表的向量点乘。

若将A,B视为矩阵,做矩阵乘法,但此时矩阵乘法无法进行。因为矩阵乘法规则为:乘号左边矩阵的列数必须和乘号右边矩阵的行数相等。必须将矩阵B的第一行写为第一列,第二行写为第二列…依此类推。这种将矩阵行写成列的操作叫做矩阵转置。此时,矩阵乘法变为A与B的转置矩阵相乘,相乘过程为:“将A中的每一个行所代表的向量与B中的每一列所代表的向量点乘”。

显而易见,先将矩阵转置,再将A中的每一个行所代表的向量与B中的每一列所代表的向量点乘,和直接将A中的每个行代表的向量和B中的每个行代表的向量点乘,逻辑上是完全等价的,正因如此,矩阵相乘和向量组相乘结果是完全一样的。

既然矩阵相乘和向量组相乘结果是一样的,那么矩阵相乘的规则是不是多此一举,把简单的问题复杂化了?可能是也可能不是,随着我们的深入探究,这个问题一定会被解决。

由于矩阵从向量组发展而来,从几何意义上说,我们完全可以认为矩阵相乘是向量投影。

4.3 特别矩阵乘法

如果矩阵B为三行三列的单位矩阵(单位矩阵用E表示),即
B = E = ( 1 0 0 0 1 0 0 0 1 ) B = E = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} B=E= 100010001

任意一个m行3列的矩阵A,乘以矩阵B,都等于矩阵A本身,即
A ∗ B = A ∗ E = A A * B = A * E = A AB=AE=A

这个大家可以自己尝试演算一下。我们这里不做演算,我们这里仅做理论分析:

B矩阵为单位矩阵时,B矩阵所代表的空间,和当前的整个三维空间完全重合。矩阵A乘矩阵B,就是将矩阵A投影到原空间,而且B中每个向量的长度为1,不会改变投影后向量的长度,则投影结果必然也和A重合,也就是说结果矩阵等于A。通过分析,我们可以很容易地理解,为什么一个矩阵乘以单位矩阵,结果是它本身。


下一篇:《矩阵乘法与仿射变换》文章来源地址https://www.toymoban.com/news/detail-705510.html

到了这里,关于【理解线性代数】(四)从向量组点乘到矩阵相乘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线性代数 --- 向量的长度

    从代数的角度定义向量的长度 :       正如我在另外一篇文章中(见本文底部的推荐链接)提到的,两个向量(这是默认是两个列向量)的内积,可以表示为也可以表示为。现在我们考虑一种特殊情形,现在我们有一个向量v=(1,2,3),那么这个向量自己和自己的内积是多少呢

    2024年02月02日
    浏览(30)
  • 线性代数基础--向量

    目录 向量的概念 基本概念 抽象概念 向量的意义  几何意义 物理意义 欧式空间 特点和性质  行向量与列向量 行向量 列向量 两者的关系 向量的基本运算与范数 向量的基本运算 向量的加法 数乘运算(实数与向量相乘) 转置 向量的范数 向量的模与内积 向量的模 向量的内积

    2024年02月11日
    浏览(44)
  • 线性代数(一)——向量基础

    线性代数的核心是向量的加和乘两种运算的组合,本篇博客为线性代数的一个引子,主要从向量、线性组合和矩阵逐步引出线性代数的相关知识。 首先介绍的是向量相关,向量是基础。 已知列向量: υ = [ v 1 v 2 ] boldsymbol{upsilon}=left[begin{matrix} v_1 \\\\ v_2end{matrix} right] υ =

    2024年03月21日
    浏览(43)
  • 线性代数基础【3】向量

    一、基本概念 ①向量 ②向量的模(长度) ③向量的单位化 ④向量的三则运算 ⑤向量的内积 二、向量运算的性质 (一)向量三则运算的性质 α + β = β + α α + (β + γ) = (α + β) + γ k (α + β) = kα + kβ (k + l) α = kα + lα (二)向量内积运算的性质 (α , β) = (β , α) = α^Tβ = β^Tα (α , α)

    2024年02月03日
    浏览(40)
  • 机器学习-线性代数-向量、基底及向量空间

    理解 直观理解 行向量:把数字排成一行A = [ 4   5 ] [4~ 5] [ 4   5 ] 列向量:把数字排成一列A =   [ 4 5 ] left [ begin{matrix} 4 \\\\ 5 \\\\ end{matrix} right ]   [ 4 5 ​ ] 几何意义 默认在基底条件下(直角坐标系)中的坐标表示的一个点,也可以理解以原点为起点,到目标终点A的有向线段

    2024年02月06日
    浏览(47)
  • 【线性代数】向量组的线性相关性

    目录 一、图解向量组的线性相关性 1. 向量组线性相关的定义  2.三维空间中向量组线性相关的几何意义 3.向量组线性相关与齐次线性方程组 二、向量组线性相关的基本结论 三、向量组线性相关性总结 做出向量组A与向量组B的图如下: 旋转图形得到:  旋转后发现,向量组

    2024年02月04日
    浏览(33)
  • 线性代数(魏福义)——第一章:向量与线性空间

    坐标系中可使用向量处理几何与运动学的问题,一般使用到二维或者三维有序数组,如(x,y)、(x,y,z),这样的数组称作 向量, 实际问题会用到更多维的向量。 1.1.1向量 以有序数组表示向量。n个数排成的有序数组就是n维向量。 α=(a1,a2,a3...,an)称为 行向量 ;将其

    2024年03月21日
    浏览(37)
  • 线性代数:向量组的秩

      目录 回顾“秩” 及 向量组线性表示 相关特性 向量组的秩  例1 例2 

    2024年02月22日
    浏览(34)
  • 线性代数 第三章 向量

    一、运算 加法、数乘、内积 施密特正交化 二、线性表出 概念:如果 ,则称可由线性表出(k不要求不全为0) 判定: 非齐次线性方程组 有解 无关,相关 如果两个向量组可以互相线性表出,则称这两个 向量组等价 。向量组等价,向量组的秩相等(反过来不成立,秩相等向

    2024年02月07日
    浏览(32)
  • 线性代数---第三章向量

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包