十分钟理解线性代数的本质,线性代数的几何直观理解
线性代数是数学中非常重要的科目,需要研究线性空间、线性变换和线性方程。 关于应用太广泛了。 图像处理、压缩、信号处理、统计分析、机器学习、网页排序……。
刚学线性代数,觉得抽象也很普通,国内很多教材都很大头。 这里强烈推荐通过B站的视频《线性代数的本质》和书籍《程序员的数学: 线性代数》进行学习。 另外,《遇见数学》也写了一系列的视频和短文,所以想借用视频的方式。 早点学习线性代数的朋友可以更深入地理解抽象的概念。 首先,我要说一下,本系列不讨论相关的计算(实际上复杂的计算应该交给计算机)。 但是,适当的练习在以下一定要动手巩固知识点。
01矢量的概念在现实工作中,将几个数值放在一起,作为整体进行分析。 这有一个向量。 有秩序的数值列表。
为了区分向量和点,惯用的方法是将一对数竖着写并放在括号里。 例如,以下示例为二维向量、三维向量和四维向量。
注:或用方括号表示向量
通过坐标系可以更好地理解一个向量的长度和方向。在二维坐标系下用箭头标出,箭头的起点位于原点,终点是与数值成分相对应的点。这样,各向量对应唯一的对数,坐标系中的一对数也唯一地是一个向量
如果向量的大小和方向相同,则视为相等的向量。 如下图所示,在二维平面( Two-dimensional )下自由移动向量时,所有剩下的轨迹都是相同的向量。
在三维空间中,向量有三个分量: x、y和z。 用x、y、z轴表示这一点。 这样,每个向量也对应于规则的三维阵列( x、y、z )。
矢量的加法
矢量相加是指将对应的项相加。
从图形上看,可以平移第二个向量,使其起点与第一个向量的重点重合,从第一个向量的起点开始画出指向第二个向量终点的向量。这个向量是它们的和; 或者,如果观察动画并根据每个向量的分量运动,最终的效果将是相同的。
向量的平方
另一个基本的向量运算是将向量的各成分乘以数值(标量Scalar )。 也就是说,是将向量的各成分乘以标量。 如果选择数值2,并将其与给定的方向量相乘,则会放大到原来向量的两倍:
请看下图。 如果标量为负,则结果向量相反。 也就是说,平方向量实际上是向量的拉伸、压缩或反向操作。
向量的加法和平方非常重要,贯穿线性代数。 我们最初的内容到此为止,为了加深对加法的理解,我将添加一些动态图。
矢量加法三角形定律
实际上与上面的加法示例相同,但是这里的向量的起点不是原点。
平行四边形定律
向量减法
矢量的减法其实是加法的特殊情况:
02“基/线性组合/线性无关(相关)”
在二维线性空间中,使用两个特殊的向量可以用对齐(表示)任意向量。
空间中的任何向量都可以通过按比例缩放这两个向量并进行相加来表示。现在,请想象一下,例如向量[ 3,2 ]是在I的方向上伸长了3倍,在j的方向上伸长了2倍的向量相加的结果。
这种特殊的向量称为基础( Basis,或基础),任何二维向量可以用这两个向量的线性组合来表示。 其中,a、b是标量。
从以下的动态图可以看出,当a、b两个标量自由变化时,通过矢量加法和矢量数乘法这两个基础运算,可以得到所有二维可能的矢量。
的基底选择有各种各样的方法,但根据选择有三种情况。 在下一个视频中,请观察您选择了I和j作为基础。
也可以线性地表示空间中的任何二维向量;
如果两个向量正好在同一条直线上,则生成的向量的终点被限制在通过原点的直线上。
两个矢量都是零矢量,其组合矢量是零矢量。
通过向量I和j的线性组合可能得到的所有向量集合称为两个向量所延伸的空间( Span )。
如上图所示,对于大多数二维向量来说,两个向量所延伸的空间是所有二维向量的集合,可以说是基的; 但在共线情况下,张成的空间是一条直线,不能构成二维线性空间的基底。
三维空间的基底
从三维空间中两个方向不同的向量(蓝色和橙色)所构成的空间来看,它是两者所有的线性组合,实际上是一个超越原点的平面。
将第三个向量相加后,线性组合如下:
分别缩放三个基向量,并将结果相加。 这三个向量的所有可能的线性组合构成了他们所扩张的空间。
线性相关
我们认为三维中的第三个向量已经落在前面两个向量所拉伸的平面中,那么可以用这两个向量线性表示; 或者在二维中两个向量在同一直线上的情况下,可以用另一个线性表示。现在,我们来观察二维中两个向量在同一直线上的情况:
这被称为线性相关( Linearly Dependent ),即张成空间中存在额外的向量,即使删除也不会对张成空间产生任何影响。
相反,没有线性无关的,也就是其他向量可以由线性组合表示的向量,每个向量“贡献”于延伸的空间。
03 “线性变换/矩阵和乘法”线性变换是线性空间中的运动,矩阵是记述该变换的工具。虽说如此,也没有直观的印象,所以直接看一下图解的动画吧。
矩阵不仅仅是一个数字表:
实际上,在该矩阵的作用下,展示了线性空间是如何变化的,观察了下图二维平面在水平和垂直方向上的伸缩过程:
从上面的视频中可以观察到:
垂直方向没有任何变化( a的第2列没有变化);
在水平方向上延长了两倍;
淡红色方格变换后的面积变为2倍,这里是行列式的含义-面积的扩展倍率det(a )=2
在看到更多的矩阵变换之前,停下来看看下一个静态图像的进一步说明:
变换前矩阵的基向量I ( 1,0 )移动到) 2,0 )的位置,但j基向量) 0,1 )还是) 0,1 )没有进行任何变换)移动。 也就是基底的变化。
一旦知道基底的变化,整个线性变换也就变得明显了。 因为所有向量的变化都可以用变化后的基向量的线性表示来表示。 观察下一个红色矢量( 1,1.5 )和绿色矢量(-1,-3)变换后的落地位置。
向量( 1,1.5 )的变换后的位置实际上是变换后的基向量的线性表示,并且也由此看如何计算矩阵的乘法:
(-1,-3)等转换后的位置也采用同样的计算方法。
可以再次观看并实际感受以上视频,验证计算结果。
让我们看看其他的变换矩阵
这里,如果矩阵a的对角线上( 0,2 )包含一个0,我们来观察下一个视频。
可以看出以下内容。
水平方向变为0倍;
垂直方向被放大两倍;
面积的变化率为0倍,即det(a )=0
基底的变化如下
请看下面矩阵a的变换:
可以看出以下内容。
整个空间向左倾斜旋转
将面积扩大到原来的det(a )=3.5倍
由于上面三个不同矩阵的作用(乘法),整个空间经历了不同的变换,但是原点保持不变,直线保持直线并且平行保持平行。 这就是线性变换的本质。
同样,在3维线性空间内矩阵也被用于这样的线性变换中,这里需要注意的是行列式可以看作变换后的体积变化的倍率。从下图来看,在经过下一个矩阵a的变换中,空间进行镜像反转变换(扁平化),所以行列式的值
04“行列式”这次主要是进行回顾,用动画形式来说明行列式的几何意义。因为矩阵a可以看作是一种线性变换
上式意味着向量x经过线性变换a后的位置与向量v重叠。 让我们看一个例子。 整个空间如何随矩阵a变化:
请看:
原始向量( 1,0.5 )在变换后)为2,1.5 );
水平方向增加了一倍
纵向增加了三倍
在原始直线变换后仍然是直线,平行的仍然是平行的;
原点没有变化(如果没有原点,则为仿射空间) )。
然后,请注意红色方块的面积扩大了6倍。 这样的面积(或体积)的放大率是行列式( Determinant )的几何含义,表示为det(a )或|A|
请看另一个作用矩阵线性变换的动画:
据观察:
空间倾斜,但没有扭曲;
直线在转换后仍然是直线,平行的保持平行;
的第一列( 1.5,-1)的着地点为( 1,0 )像,第二列(-0.5,2 )的着地点为( 0,1 );
单位红色的小方块放大到2.5倍,也就是说det(a )=2.5
让我们来看看这个线性变换的例子。 请注意,矩阵a的两个列向量是比例-线性相关的:
观察结果:
空间被压缩成一条线;
向量( 1,0.5 )在整个变换过程中没有发生变化(这与特征量和特征向量之间的关系,后面将在文件中进行叙述);
面积增大倍率为0,即det(a )=0;
这与上一节矩阵对角线中包含0元素的情况相似,这意味着不存在逆矩阵,这也是接下来介绍的内容。
行列式的几何含义表示面积(体积)的增大倍率,经过镜像反转后为负值。 上一节中我们看到了三维矩阵的情况,这里我们来看看在二维中经过镜像反转的行列式的变化。 请注意最下变换过程中的det ) a )值从正到负的变化过程。
05“矩阵乘积/复合变换”矩阵向量的乘积可以理解为将一个特定的线性变换作用于向量。 这次我们来看看几个特殊矩阵上的变换和矩阵、矩阵、矩阵的乘积。
零矩阵
也就是说,所有元素都为0的矩阵表示为o .可以用下标表示矩阵的大小。
零矩阵表示的变换是将空间压缩到原点,通过2次零矩阵可以观察到空间压缩到原点的变化过程。 注意行列式的值最后为0。
单位矩阵
对角元素为1,其余均为0,标为I。
单位矩阵对于空间没有任何变化,仍然是基向量。 也称为“恒等变换”,可以看到下一个相应的空间变化过程(尽管没有变化)。
对角矩阵
除对角要素以外的所有要素都是0的矩阵称为对角矩阵。
对角矩阵表示沿坐标轴伸缩变换,其中对角要素为各轴伸缩的倍率。 另外,以下例子的矩阵a的对角要素中包含2个负数,进行了2次镜像反转,x、y两个方向被压缩后,被拉伸,可以看作面积扩大到了原来的6倍。 这个行列式的值是6。
以上都是进行一次变换的操作,但是如果再进行一次(或者更多次)变换,则矩阵和矩阵相乘。例如,下一个矩阵a相当于旋转空间,矩阵b向横向拉伸。
如果是将BA的两个矩阵相乘的运算,就会先旋转再拉伸。 这样的复合变换运算的顺序是从右向左进行的。 可以看下一个视频。
如果是将ab2个矩阵相乘的运算,就是先拉伸后旋转。 运算顺序是从右到左,可以看到下一个视频。
从上面的两个变换动画可以得出矩阵的积不满足交换律的结论。 (可以想象满足结合律。 )
可以计算BA和AB的值。
如何计算矩阵的积,不仅可以按照教科书所示的方法,也可以按照列的线形表来进行。 以BA为例:
此外,即使两个矩阵都不是零矩阵,矩阵的乘积也可能为零矩阵。 例如,在以下两个矩阵中:
在颜色空间中,a在横向上被压缩,b在垂直方向上被压缩,经过a和b的转换,还映射在原点上。
“矩阵的逆/逆变换”现在我们来看看如何复原变换矩阵a后的向量。 让我们看一下从变换后的向量(-1.5,2 )恢复到向量( 1,0.5 )的过程。
观察要点:
变换后的线性空间还是完整的二维空间;
变换后的行列式不为0;
恢复后只有一个向量对应;
撤消变换实际上对应于另一线性变换,称为矩阵的反( Inverse ),其被记为a^(-1 )。
如果将矩阵与其逆矩阵相乘,它会首先进行变换,然后还原。 这两个连续的变换作用是矩阵的乘法,相当于什么都没有变。 这个什么都没有改变的变换就是上次提到的单位矩阵。
利用这个性质,可以通过在Ax=V的两边乘以a的逆矩阵来求出变换前的向量x :
矩阵的逆是否一定存在
问题是是否一定能找到逆矩阵。 想象det(a )为0时,即矩阵的变换将空间压缩到更低的维度,此时没有逆矩阵。 如果在二维平面中变换的空间被压缩到原点,压缩为直线,则不存在相应的逆矩阵。 或者,如果找不到对应的映射,就不能将点和线恢复到平面上。
同样,在三维空间中,如果一个变换将空间压缩为一个平面、直线或原点,即det(a )=0)体积均对应于0,则没有逆变换。请看以下矩阵将三维空间压缩为平面的情况:
对角矩阵时
对角矩阵对应的变换是沿坐标轴伸缩的变换。 复原非常简单,使各坐标轴伸缩倒数倍即可。
但是,请注意,即使不存在逆变换,也可能存在相应的x。 使用一个变换将空间压缩为直线,但向量v正好位于这条直线上。 如果像下面的矩阵a那样将空间压缩成直线,(红)向量v ) ) 1,0.5 )正好落在这条线上,所以对应的x为) 0.25,-0.25 )。
07【方程解/零空间/核】线性代数广泛应用于许多领域的主要原因是它能求解给定的线性方程( Linear System of Equations )。 这次我们来看看如何用矩阵的语言构建简单的数学模型。
几只鸡和兔子在同一个笼子里,从上面数,有35只。 从下面数,有94只脚。
笼子里有多少只鸡和兔子?
主题非常简单,由两个方程和两个未知数组成的方程可以求解。
或者,将方程式作为矩阵向量积写入-常数系数矩阵a,将未知量作为列向量x,根据两者的积得到定数列向量v .
常系数矩阵可以理解为自变量x和因变量之间存在某种关联,通过指定该矩阵可以确定从向量到其他向量的映射。这样通过线性变换来理解的话,求解Ax=v就是在变换后找到与v完全重叠的向量x
这个方程式有解,就是说以矩阵a为代表的变换没有进行使空间扁平化的压缩。 也就是说,det(a )0。 否则,方程式中就没有解。
或者,也可以从矩阵的行视图中理解这个线性方程。 求出的解是求出两条直线的交点:
当两个方程为未知数且有两个时,线性方程的解可以有三种情况:
不存在;
唯一(两条直线相交);
有无限数量;
现在可以从“列”和“行”视图两个角度理解以下两种情况: 例如,下面的线性方程不能求解。
从“列”视图中可以看到,向量( 2,1 )没有位于矩阵列所拉伸的空间内。 在下面的视频中,矩阵变换后,空间最终被压缩为灰色直线,但由于v在直线之外,所以不会反映在变换后的基向量的线性表示中。
或者,从“行”视图中可以理解,空间中的两条直线是平行的。
以下面的线性方程为例来看无限解的情况。
从行视图中看,两条直线重叠。
查看下图,从列视图的角度了解无限解的情况。
观察点:该矩阵的变换将线性空间压缩为灰色直线;
图形中黑色直线上的所有矢量在变换后压缩到原点,成为零矢量;
经由线性变换压缩到原点的向量的集合被称为零空间Null space或核Kernel。 上方程的解是特解和所有零空间解的线性组合,下图表示即使改变中a的值,所有可能的a [-1,1 ]都是零空间的解,经过变换压缩到原点; 另一方面,2,0是特解,变换后归结为2,4。
同样,如果有三个方程,三个未知数,则每个方程表示三维空间的一个平面,方程的解集可能是空间的一部分。 无解、交点、直线或平面
数学模型在很多问题上可以归结为y=Ax。 例如,信号处理、统计分析、机器学习等,在工程类中经常使用。 在未来的图形系列中,可以看到更多这些问题的例子。
08【方程式的解II】这次,我们来看看3个方程式,3个未知数的方程式的解,也就是平面方程式的情况。 可以认为每个方程都表示三维空间的一个平面,方程的解集可能是空间的一部分。 无解、交点、直线或平面;
方程唯一可解的情况
从行视图理解,三个平面相交于一点。
从矩阵变换的角度理解,请看下图:
观察点:
矩阵变换后也是三维空间
解向量x在变换后与向量v重叠;
向量v包含在矩阵a的列向量线性表示,即列空间内;
方程式解不开
其中三个平面的交线相互平行,没有共同的交点,所以没有解:
从矩阵变换的角度理解,请看下图:
观察点:
矩阵变换后,空间被压缩成平面;
由于向量v在平面之外,不表示在矩阵的列向量线性表上,而是落在列空间之外;
方程有无穷解-解成一直线
三个平面相交于一条直线:
从矩阵变换的角度理解,请看下图:
观察要点:空间被变换压缩成平面;
行列式为0,即不存在逆矩阵,但由于v在该平面上,即列空间内,解仍然存在;
图形中红色细线上的所有矢量经变换后压缩到原点,成为零矢量;
方程的一般解是在特解零空间上求解所有的线性组合:
方程的无限解-解共面
三个平面实际上是一个平面:
从矩阵变换的角度理解,请看下图:
观察点:
矩阵变换将空间压缩成直线
由于行列式为0,即不存在逆矩阵,但v正好在这条直线上,在列空间内,所以解仍然存在;
图形中浅蓝色平面上的所有矢量经变换后压缩至原点,为零矢量;
方程的一般解是在特解零空间上求解所有的线性组合:
这次,我们将从行视图和列视图几何的角度来理解线性方程。 每个方程都有一个与之相关联的线性变换。 如果存在逆变换,可以用逆变换求解方程; 在不存在逆变换的情况下,行列式为0,需要考察向量v是否收敛在列空间内。
09“等级/列空间/零空间”首先让我们做一下简单的评论。
矩阵乘法可以视为特定的线性变换,矩阵的列向量相当于基向量I:( 1,0 )和j:) 0,1 )变换后的到达向量。
(请允许用鼠标标记)
空间变换后的任何向量可以从矩阵a的列向量线性表表示,所有这些可能的结果,即矩阵列所位于的列空间。
原始空间经过这种2×2矩阵a的线性变换后的空间可以有三种情况。
还是平面-还是二维空间?
压缩成一条线-一维的;
原点-压缩为零维;
在数学术语中,它表示线性变换的空间维数,称为矩阵秩( Rank )。 换句话说,列空间是矩阵列所延伸的空间。 因此,矩阵秩的另一个定义可以说是列空间的维数。 转换并压缩到原点的向量集合称为矩阵a的“零空间”( Null Space )或“内核”( kernener )
对照以上三种情况,分别观察。
情况1 )转换后也是平面
观察点:
如果变换矩阵a的结果是平面的话,rank ( ) )=2,由于空间没有被压缩扁平化,所以是可逆的,被称为非特异矩阵。
将这样的秩和列数相等称为满秩矩阵。
在满秩矩阵的情况下,变换后落到原点的是零矢量本身,即dim Ker ( ) )=0;
(第二中的情况)转换后压缩成一条直线
如果变换的结果为线性,则该矩阵为一维,称为rank(a )=1,其中该矩阵为不可逆的,称为奇异矩阵。
这种非满秩矩阵将空间压缩到较低一维直线上,即在软绿色直线上的一系列向量在变换后为零向量;
零空间的维数是1,dimker(a )=1;
第三种情况(转换并压缩到原点
如果变换的结果是压缩到原点,则矩阵为零维,称为rank(A )=0;
零空间维数为2,dimker(a )=2;
量纲定理
如果a是mxn矩阵(如果不是方阵,下次介绍),则维定理如下。
Dimker(a ) rank(A ) a )=n
我相信,如果完全了解2×2矩阵的情况,更高维的矩阵也会变得明显。
10“低矩阵/长矩阵”矩阵的乘法可以理解为特定的线性变换。 例如,22下可逆矩阵表示是二维空间的”可逆”变换; 33的可逆矩阵表示三维空间的变换。
这些都是nxn型的矩阵,但在本节中,观察更一般的mxn矩阵,即非方阵的情况—分为行数比列数小的“低矩阵”和行数比列数大的“长矩阵”两种。
%低矩阵
所谓”低矩阵”,在mxn矩阵a维数为m n的情况下:
从方程式来说,未知量为n,方程式的个数为m。
用上面的23矩阵来说,是未知量x从三维空间压缩到二维平面的线性变换。 也就是说,有压缩扁平化的操作。 请看下图。
观察点:
三维空间被压缩成平面;
认为属于零空间的向量集被压缩为零向量,在变换过程中丢失了部分信息;
三维空间的基底在变换后落在平面上,坐标分别为( 3,1 )、1,5 )、4,9 );
这样的矩阵压缩行为,当然可以从二维平面到一维直线。 让我们来看看线性空间如何根据下图的变换矩阵( 1,2 )而变化。
观察点:
属于零空间的向量集合被压缩为零向量;
二维空间的基底在变换后落在轴(直线)上,且变换后的坐标分别为1和2;
这种空间压缩操作常用于数据压缩,例如,如果原始数据的维数过大,则需要找到某个变换将原始高维属性空间降低到更低维数的空间。 将来分析PCA的主要成分时,请看更详细的图形。
(长队
相反,考虑矩阵a维数为m n的长矩阵:
这样,未知数比方程式的数量少的情况下,对应于变换从低维进入高维空间。例如,下面的矩阵是从二维到三维空间的映射:
同样,从1维到3维空间的变换矩阵也一定属于长矩阵形状。
无论是低矩阵还是长矩阵,这种非方阵和方阵的一个明显区别在于方阵可以计算其行列式,而不是方阵就没有行列式的概念。
11“特征值/特征向量”一词由德语eigen翻译而来,意为“自身的”、“有特征的”。 这强调了特征值对定义特定线性变换的重要性。
(特征量/特征向量
让我们来看看由矩阵a引起的空间中的线性变换。 请注意下图中红色向量和绿色向量的变化。
观察点:
虽然空间是倾斜的,但线性的性质(黑色虚线)是直线还是直线保持平行);
由于转换过程中发生了镜像反转,行列式为负值-2;
基向量I变换为(-2,-2),基向量j变换为(-2,-3);
红色和绿色的向量都旋转了
空间中的所有向量都旋转吗? 还是以这个矩阵为例,看看以下三个向量。
观察点:
红绿三个矢量的长度经过了伸缩变换,但在原来的直线方向上,没有旋转;
两条直线上的其他向量都只延伸到原来的2倍和-1倍,例如红色的两个向量延伸到2倍
除了这两条直线外,空间中的其他向量在变换过程中旋转(请参见上图)。
这里只有长度伸缩发生了变化,方向在原直线上的向量为矩阵a的特征向量( Eigenvectors .伸缩的倍数为特征值) Eigenvalues,红色向量) 1,2 )延长为2倍,特征值为2。 绿色矢量( 2,1 )伸缩倍率为-1,对应的特征值为-1。
一般地,在nxn方阵a中,存在向量v不是零向量,且
等号左边是矩阵向量的乘积,右边是数乘向量。
特征值计算
如何求出特征值呢? 考虑把上面等式的右边项移到项中:
只有当用( A- I )矩阵表示的变换是压缩扁平化操作时,才把向量v压缩到原点,因为知道压缩扁平化后的矩阵的行列式应该是0,所以只需求解对应的特征方程式就能得到的结果。
求出矩阵的特征值后,接下来就是带入表达式,求出满足定义的特征向量。
部分截图暂时从3Blue1Brown的《线性代数 的本质》视频更新到这里吧。 请关注“遇到数学”。 将来也会继续共享更新。