AI基础知识及名词解释
一、思维导图
二、机器学习
2.1 线性代数
内容来自3B1B的教程。
2.1.1 向量
从广义上讲,向量有三种不同解释,我愿称之为物理学视角;计算机科学视角;数学视角。
物理学视角
物理学家的观点是,向量是指向空间的箭头。定义定向量的是它的长度和指向的方向,只要这两个条件相同,向量可以在二位平面任意移动,并且仍然表示相同的向量。
平面上的向量是二维的,空间中的向量是三维的。
计算机科学视角
从计算机科学的角度来看,向量是有序的数字列表。例如,如果你正在做一些关于房价的分析,而你关心的特征是平方米和价格,你可以将每栋房子建模为一对数字,第一个表示平方米,第二个表示价格。
我们可以说房子价格的模型被建模为一个二维向量。
数学视角
数学家将这两种观点进行了概括,基本上认为只要存在合理定义两个向量相加以及将向量乘以一个数的概念,这样的事物就可以视为向量。我们将在本章稍后讨论这些操作。
坐标系
现在,尽管你们中的许多人已经熟悉坐标系统了,但详细地回顾一下它们仍然是有价值的,因为这是线性代数两个主要视角之间所有重要转换发生的地方。暂时将我们的注意力集中在二维上,你有一条水平线,称为x轴,和一条垂直线,称为y轴。
它们相交的地方是原点,你应该将其视为空间的中心和所有向量的根源。
选择一个任意的距离来表示长度为1的单位后,你需要在每个坐标轴上按照这个距离做出刻度标记。
当我们在本文中想要表达二维空间的整体概念时,我们会将这些刻度标记扩展成网格线,如下所示:
让我们在提到“向量”这个词时,确定一个具体的概念。鉴于我们这里强调的是几何重点,每当引入涉及向量的新主题时,我们希望你首先想到的是一支箭头,更具体地说,是在一个坐标系统中(比如xy平面)的箭头,其箭尾位于原点。
向量的坐标是一对数字,基本上提供了从原点处的向量尾部到达其尖端的路线指令。第一个数字告诉你沿着x轴走多远,正数表示向右移动,负数表示向左移动;第二个数字则告诉你随后要沿y轴平行走多远,正数表示向上移动,负数表示向下移动。
练习:
如何表示4个单位向下,7个单位向右的向量?
答案:
在三维空间中,你增加了一个新的坐标轴,称为z轴,它同时垂直于x轴和y轴。在这种情况下,每个向量都与一个有序的三个数字关联:第一个数字告诉你沿着x轴移动多远,第二个数字告诉你沿着y轴平行移动多远,而第三个数字则告诉你沿着新的z轴平行移动多远。
每组三个数字确定了空间中的一个唯一向量,而空间中的每一个向量也确切对应着一组三个数字。
向量运算
那么,向量加法和数乘向量又是怎样的呢?毕竟,线性代数的每个主题都是围绕这两种操作展开的。幸运的是,这两者都相对直观易懂。
加法
假设我们有两个向量,一个向上并稍微偏向右方,另一个则向右并略微向下。
将这两个向量相加,只需将第二个向量移动,使其尾部位于第一个向量的尖端上。然后,如果你从第一个向量的尾部画一条新向量到第二个向量现在所在的尖端位置,那么这条新向量就是它们的和。
为什么这样做是合理的呢?为什么采用这样的向量加法定义而非其他形式?一种理解方式是,将每个向量视作一种特定的移动——具有确定的距离和方向的步伐。如果你先沿着第一个向量迈出一步,再按照第二个向量指示的方向和距离迈出一步,那么总体效果等同于直接沿这两个向量之和的方向迈出一步。
这可以视为我们在数轴上加数字思维的一种自然延伸。比如,教导孩子理解加法概念时,比如,我们可以解释为先向右移动2步,再向右移动5步。整体效果就如同直接向右移动了7步一样。
因此,向量加法的定义不仅贴合直观的物理运动概念,也与我们在一维数轴上对数字加法的理解相契合,确保了数学运算在更高维度上的连贯性和一致性。
实际上,让我们从数值角度看看向量加法是如何进行的。这里的第一个向量坐标为,而第二个向量的坐标为。当你使用“首尾相接”的方法来计算它们的向量和时,可以想象从第一个向量的起点到第二个向量的终点有一个四步走的路径:首先向右走1个单位,然后向上走2个单位,接着再向右走3个单位,最后向下走1个单位。
如果你重新整理这些步骤,先完成所有的水平移动,然后再完成所有的垂直移动,那么可以这样理解:首先向右移动个单位,然后向上移动个单位。因此,新向量的坐标是(向右)和(向上),即和向量为。
一般来说,计算两个向量相加,只需将它们的对应元素对齐相加。具体来说,
这意味着向量的第一个分量与第二个向量的第一个分量相加,第二个分量与第二个向量的第二个分量相加,以此类推。
练习:
这里有两个向量相加:,描述如何从原点走到它们的和。
答案:
沿x轴向右走10个单位乘法
另一个基本的向量操作是乘以一个数。理解这个最好的方式就是看几个例子。如果你取数字2,然后乘以一个给定的向量,你会把这个向量拉长,使得它的长度变成原来的两倍。
如果你将一个向量乘以,你会把它压缩,使其变为原来长度的三分之一。
如果你将它乘以一个负数,比如,那么这个向量会先翻转方向,然后再沿翻转后的方向拉伸倍。
这个拉伸、压缩,有时还伴随方向反转的过程,被称为“缩放”。每当遇到像、或这样的数字以这样的方式作用于某个向量,进行“缩放”时,我们就称其为“标量”。实际上,在线性代数中,数字的主要功能之一就是对向量进行缩放,因此通常可以互换使用“标量”和“数字”这两个词。数值上,将向量沿其长度方向拉伸倍等同于将其每个坐标都乘以。因此,将向量视为数字列表的概念下,用一个标量乘以一个给定向量意味着将该向量的每个分量都乘以那个标量。
练习:
答案:
2.1.2 线性组合、跨度(生成集)与基向量
在上一节中,我们除了介绍向量加法和标量乘法的概念外,还讲述了向量坐标,其间涉及二维向量与数字对之间的相互转换。
现在,对于你们中的许多人来说,向量坐标可能已经很熟悉了,但在线性代数中,还有另一种思考这些坐标的方式,这是非常核心的。当你有一对用来描述向量的数字,比如,试着将每个坐标视为一个标量,也就是说,考虑每一个坐标是如何拉伸或压缩向量的。
在坐标系统中,有两个特殊的向量。一个指向右侧,长度为,通常称为"i帽"()或"x方向上的单位向量"。另一个则垂直向上,长度也为,通常称为"j帽"()或"y方向上的单位向量"。
现在,想象一下坐标作为一个标量,它按比例因子拉伸;而坐标作为另一个标量,它不仅按比例因子拉伸,而且还使其方向翻转。从这个意义上说,这些坐标所描述的向量就是两个经过缩放的向量之和。
将两个经过缩放的向量相加的这个想法是一个重要的概念。那两个向量和有一个特别的名字:它们一起被称为坐标系统的“基”。这意味着当你将坐标视为标量时,这些基向量就是那些标量实际作用于其上的对象。
“基”的定义还有更技术性的表述,我们稍后会讲到。用这两个特殊基向量来构建我们熟悉的坐标系框架,引出了一个有趣且微妙的观点:我们其实可以选择一对不同的基向量,从而得到一个完全合理的新的坐标系。
选择不同的基向量
例如,取一个向上并向右指的向量,以及一个向下并向右指的向量。
花点时间思考一下,通过选取两个标量,分别对这两个向量进行缩放,然后将它们相加,你能得到的所有不同向量。通过改变你选择的标量,你能达到哪些二维向量?
答案是,对于这两个向量,你可以通过这种方式描述所有可能的二维向量,这是一个值得深思的好问题,为什么能这样。像这样一组新的基向量仍然给你提供了一种在数字对与二维向量之间来回转换的方式,但这种关联确实与使用标准基底和时得到的不同。
我们将在后面的章节更详细地讨论这一点,描述不同坐标系统之间的关系,但目前我们只是希望你能理解,任何数值描述向量的方法都取决于你选择的基向量。
线性组合
任何时候,如果你像这样对两个向量进行缩放并相加,这被称为这两个向量的“线性组合”。
这里的“线性”一词从何而来?这和直线有什么关系呢?当你用一个标量乘以一个向量时,它会改变该向量的大小。将实数域中的每一个数乘以同一个向量,会产生一条穿过原点并经过由该向量定义的点的无限直线。因此,“线性”在这个上下文中指的是这种操作保持了通过原点的直线特性,即当你改变向量的长度(通过标量乘法)时,你实质上是在同一直线上移动,没有改变其方向。
因此,两个向量的线性组合就是结合这两条直线的一种方式。对于大多数向量对而言,如果你让两个标量自由取值,并考虑所有可能得到的向量,你将能够达到平面上的每一个可能点。这样一来,二维空间中的每一个向量都在你的掌控之中了。
然而,如果你的两个原始向量恰好共线,那么通过标量乘法产生的线将是同一条直线,所以将它们相加无法得到这条直线外的任何向量。
张成
通过某一特定对向量的线性组合所能达到的所有可能向量的集合,被称为这两个向量的“张成(Span)”。用这个术语重述我们刚才看到的内容,大多数二维向量对的生成空间是二维空间中的所有向量,但当这两向量共线时,它们的生成空间则是所有其终点位于某一特定直线上的向量。
记得我们之前说过线性代数主要围绕着向量加法和标量乘法吗?两个向量的生成空间本质上是在讨论,仅使用这些基本操作——向量加法和标量乘法,你能得到的所有可能向量的集合是什么。
练习:
什么样的两个向量和构成的线性组合只会生成位于同一直线上的向量?
A.
B.
C.
D.
答案:
A向量 与 的张成空间是什么?
A. 一个点
B. 一条直线
C. 一个完整二维平面
答案:
B这两个向量是共线的,因为
这意味着它们的张成空间是通过原点以及向量末端的一条直线。如果这两个向量不位于同一直线上,那么它们的张成空间将是整个二维平面。或者,如果两个向量都是零向量,那么它们的张成空间就只是原点那个点。
向量与点
这是讨论人们如何普遍将向量视为点的好时机。想象一整组向量都坐落在一条直线上会显得非常拥挤,而同时考虑所有填充平面的二维向量则更为纷繁复杂。
因此,在处理这样的向量集合时,通常仅用空间中的一个点(即向量的末端点)来表示每个向量。这样一来,如果你想考虑所有其末端位于某特定直线上的向量,只需考虑那条直线本身即可。
同样地,为了思考所有可能的二维向量,可以将每一个向量概念化为其末端所处的点。然后,为了同时考虑所有这些向量,你可以只想象构成二维空间的那个无限广阔的平面,而不必考虑箭头指向。
总的来说,如果你单独考虑一个向量,可以把它想象成一支箭;而如果你考虑的是向量的集合,把它们想象成点会更为方便。
3D空间的张成
当我们开始考虑三维空间中的向量时,"张成空间"的概念就变得更加有趣了。例如,如果你取三维空间中的两个不指向相同方向的向量,那么它们的“张成空间”意味着什么呢?
它们的张成空间是指所有这些向量的可能线性组合的集合,意味着通过以某种方式缩放开始的两个向量中的每一个,然后将它们相加,所能得到的所有可能的向量。
你可以想象转动两个旋钮来改变定义线性组合的两个标量,将缩放后的向量相加,并跟随结果向量的末端移动。这个末端的轨迹会在三维空间的原点处切出某种平面。
这个平面就是这两个向量的张成空间。或者更准确地说,所有其末端位于这个平面上的可能向量的集合,构成了你的两个向量的张成空间。
如果你再加上第三个向量,并考虑这三个向量的张成空间,会发生什么?三个向量的线性组合定义方式与两个向量的基本相同:选择三个标量,用它们分别缩放你的每一个向量,然后将它们全部相加。同样,这些向量的张成空间就是所有可能线性组合的集合。
当我们加入第三个向量时,可能会发生两种情况:
- 如果第三个向量恰好位于前两个向量的张成空间内,那么张成空间不会改变,你仍然局限在那个相同的平面上。换句话说,将第三个向量的缩放版本添加到前两个向量的线性组合中并不会让你获得任何新的向量。
- 如果你随机选择第三个向量,它几乎肯定不在前两个向量的张成空间上。因为它指向一个独立的方向,它就解锁了访问所有可能的三维向量的能力!理解这一点的方式是,当你缩放这个新的第三个向量时,它围绕着前两个向量的张成空间移动,将这个平面扫过整个空间。
这就像是你在充分利用你所拥有的三个可自由变化的标量,来访问空间的全部三个维度。
当第三个向量位于前两个向量的张成空间上,或者两个向量恰好共线时,我们需要一些术语来描述至少有一个向量是多余的,没有为我们的张成空间增加任何新内容这一事实。每当出现这种情况时,即你有多个向量,并且移除其中一个向量并不会减小它们的张成空间,相关的术语就是称这些向量是“线性相关的”。
换一种说法就是,其中一个向量可以表示为其他向量的线性组合。也就是说,它已经被包含在其他两个向量的张成空间里了。
另一方面,如果说每个向量都确实为张成空间增添了另一个维度,那么就说这些向量是“线性独立”的。
练习:
已知两个向量和的张成空间:
下列哪个向量与向量和是线性相关的?
A.
B.
C.
D.
答案:
D已知如下图所示的两个向量的线性组合:
哪两个标量值和作为上面给出的向量的线性组合,能构成向量?
A.
B.
C.
D.
答案:
C首先,写下向量的坐标
建立这两个向量的线性组合
将向量的分量对应相等以得到一个线性方程组
解出b关于a的表达式。
将b的表达式代入第一个方程中解出a。
将a带入表达式解出b
2.1.3 线性变换和矩阵
如果说线性代数中有一个主题能让所有其他概念豁然开朗的话,那可能就是这个了。我们将学习线性变换的概念及其与矩阵的关系。在本章中,重点将简单放在二维情况下这些线性变换的外观,以及它们如何与矩阵-向量乘法的概念相关联。特别地,我们想展示给您一种思考矩阵乘法的方式,这种思路不依赖于死记硬背。
变换即函数
首先,我们来解析这个术语:“线性变换”。变换实质上是函数的一个花哨说法;它接收输入,并为每个输入产生一些输出。具体来说,在线性代数的背景下,我们考虑的是那些接收某个向量作为输入并产出另一个向量作为输出的变换。
那么,如果“变换”和“函数”意味着相同的事情,为什么还要使用“变换”这个词呢?这是为了暗示一种可视化这种输入-输出关系的特定方式。与其尝试使用图形方法(这种方法实际上仅适用于接收一或两个数字并输出一个数字的函数),理解向量函数的一个好方法是运用运动的概念。
如果一个变换将某个输入向量映射到某个输出向量,我们可以想象这个输入向量移动到了输出向量的位置。
为了整体理解这个变换,我们想象每一个可能的向量都移动到其对应的输出向量的位置。
一次性考虑所有向量,每个都视为一个箭头,这会变得非常复杂。因此,让我们不把每个向量想象成一个箭头,而是一个单点:即箭头尖端所在的位置。这样,要思考一个变换将所有可能的输入向量映射到其相应的输出向量,我们只需观察空间中的每一个点如何移动到另一个点上。
在二维空间中的变换情况下,为了更好地理解变换的形状,我们可以在无限网格上的所有点上进行此操作。同时,在背景中保留网格的静态副本也会很有帮助,这只是为了帮助我们跟踪每个点相对于起始位置最终移动到了哪里。
以这种方式可视化具有二维输入和二维输出的函数可以非常美观,而且通常很难在黑板这样的静态媒介上表达这一概念。以下是几个特别漂亮的此类函数的例子。
怎样变化才“线性”?
可以想象,任意的变换可能看起来相当复杂,但幸运的是,线性代数仅限于一种更容易理解的特殊变换类型,即线性变换。从视觉上讲,如果一个变换具备以下两个特性,那么它就是“线性的”:所有直线必须保持为直线,不得弯曲,并且原点必须保持固定不动。
例如,下面这个就不是线性变换,因为线条都变得弯曲了。
这个也不是线性变换,因为原点发生了移动。
这个呢,固定了原点,而且可能看起来它是保持线条笔直的,但这只是因为我们只显示了水平和垂直的网格线。
当你看到它对对角线的作用时,就会很明显地发现这根本不是线性变换,因为它使直线变得弯曲了。
一般来说,线性变换会让网格线保持平行且等距,尽管它们可能会改变垂直网格线间的夹角。有些线性变换比较容易思考,比如围绕原点的旋转。而其他一些则用言语描述起来略显复杂。
一些线性变换思考起来较为简单,比如关于原点的旋转。
其余的一些,正如我们后续将看到的,用语言来描述则稍显复杂。
练习:
下面图像中的哪些变换是线性的?
答案:
C矩阵
你认为怎样才能数值化地进行这些变换呢?比如说,如果你正在编写一些动画程序来制作一个教授这一主题的教学视频,你会给计算机提供怎样的公式,使得当你给定一个向量的坐标时,计算机能够告诉你该向量变换后所到达位置的坐标?
事实证明,你只需要记录两个基向量 和 分别被映射到哪里,其他向量的变换结果也就自然随之确定了。
例如,考虑向量 其坐标为 ,这意味着它等于 。
如果我们施加某个变换,并追踪这三个向量最终的位置,保持网格线平行且等距的性质会导致一个非常重要的结果:向量 变换后的位置将是 变换后向量的 倍,加上 变换后向量的 倍。
换句话说,它起初是和的某个特定线性组合,最终它变成了这两个向量所到达位置的相同线性组合。
现在,鉴于我们实际上向你展示了完整的变换过程,你可以直接观察到向量 的坐标变成了 ,但这里最有趣的部分是,这给我们提供了一种技巧,可以在无需实际观看变换过程的情况下推断出向量变换后的位置。
这是一个很好的暂停和思考的时刻,因为它非常重要。
练习:
给定一个变换,其作用效果为 并且 ,这样的变换会如何改变输入向量 的位置呢?
A.
B.
C.
D.