Skip to content

线性代数(Linear Algebra)

clarkehe edited this page Dec 10, 2021 · 32 revisions

线性代数的本质-系列合集

00、序言

01、向量究竟是什么?

  • 向量是一组数字序列。
  • 向量可以有不同视角:物理、数学、计算机。
  • 向量的每一个分量,对应到坐标系一个轴的上值。
  • 向量的两个基本运算:Addtivity、Scaling。

    [x1, y2] + [x2, y2] = [x1 + x2, y1 + y2]
    a * [x, y] = [ax, ay]

02 - 线性组合、张成的空间与基

  • 对于向量可以有一种理解方式。如二维向量[3, -2]可以看成两个基向量i与j的线性组合。 [3, -2] = 3*i + (-2)*j,其中i = [1, 0], j = [0, 1]。
  • 向量中的数值可以看成标量,是对基向量的拉伸或缩放。
  • 因此在用数字描述向量时,其实是依赖于我们正在使用的基向量。
  • 除了上面说的i与j这样的基向量,可以把任意两个向量当成基向量,如v与w。v与w的线性组合(a * v + b * w, a, b为实数)又可以生成或表达其他的向量。
  • v与w的线性组合(a * v + b * w)生成的所有向量的集合,称为v与w张成的空间(Span)。
  • 向量是从原点(Origin)出发的一条射线(有方向、有长度)。有时为了简化表示,可以用射线的终点来表示这个向量。
  • 对于三维空间,两个三维向量张的空间是一个平面;三个三维向量张成的空间则是整个三维的立体空间(如果三向量线性无关或者不在一个平面上)。
  • 线性相关(Linearly dependent):一个向量可以表示另外两个向量的线性组合。u = a *v + b * w (a, b为实数)。反之则是线性无关。
  • 向量空间的一组基是张成该空间的一个线性无关向量集。线性无关的向量基张成了向量空间。如前面说的i与j就是二维空间的一组向量基。

03 - 矩阵与线性变换

  • 线性变换中的“变换”可以看成一个函数f=f(x),输入(x)是一个向量,输出(y)是另一个向量。
  • 变换是否是“线性”的,有两点:空间中的直线(直线上的点是从原点出发的向量)变换后还是直线;原点不能移动(原点移动的变换叫仿射变换)。
  • 如何用数值来描述线性变换?矩阵。矩阵的列就是变换后的基向量。例如,变换前v = -1 * i + 2 * j,i = [1, 0], j = [0, 1]。现在进行变换(比如旋转),变换后的Transformed v = -1 * (Transfromed i) + 2 * (Transfromed j),现在只要求出Transfromed i与Transfromed j就可以计算出Transfromed v。比如,Transfromed i = [1, -2], Transfromed j = [3, 0],Transformed v = -1 * [1, -2] + 2 * [3, 0] = [-1, 2] + [6, 0] = [5, 2]。
  • 接上面的例子,任意的向量[x, y],变换后向量可以表示为 x * [1, -2] + y * [ 3, 0] = [1x + 3y, -2x + 0y]。
  • 这样一个二维的变换可以看成由四个数字决定,变换的基向量Transfromed i与 Transfromed j。我把这两个基向量从左到右进行排列(列向量),就会得到一个2x2的数字网格,我们定义为2x2的矩阵(Matrix)(第一列是Transfromed i,第二列是Transfromed j)。
  • 有了矩阵,我们将向量的线性变换表示为一个矩阵与向量的乘积:M * V(M是矩阵,V是向量)。乘法的具体过程:定义V = [x, y],M * V = M * [x, y] = x * [M第一列] + y * [M第二列]。这个计算本质上可以看到是构成M的两个向量的线性组合。

04 - 矩阵乘法与线性变换复合

  • 回顾:线性变换是对空间的挤压伸展(变换后网络线依然平行且等距分布,原点保持不变),可以表示为对针对向量的函数。
  • 回顾:在求解变换后的向量时,关键是考虑变换对空间基向量的作用,因为其他向量都可以通过基向量的线性组合来表示。
  • 回顾:将基向量按列可以组成一个矩阵,线性变换可以定义为矩阵与向量的乘法(本质还是基向量的线性组合)。
  • 有时我们会进行连续的变换,先做一个线性变换,再做另一个线性变换。我们可以直接跟踪基向量经过这两个变换后的最终结果,写出最终变换的矩阵,计算结果。但我们也可以让向量先乘以第一个变换的矩阵,再乘以第二个变换的矩阵,得到结果。这两个计算过程是等价的。因此,我们可以得出最终的变换矩阵就是两个变换矩阵的乘积。
  • 矩阵的乘法,我们可以分解为两次向量(针对二维矩阵)与矩阵的乘法(注意乘的顺序)。如,M = M1 * M2,可以理解为M2的两个基向量分别与矩阵M1相乘,得到两个全新基向量,构成了矩阵M。
  • 矩阵乘法,不满足交换律,满足结合律(Associativity)。

附注1 - 三维空间中的线性变换

  • 前面为了方便理解,都是基于二维空间的向量描述线性变换。线性变换可以无缝扩展的三维空间,不同的是三维空间会有三个基向量(i、j、k,分别代表x、y、z三个轴)。
  • 三维空间的线性变换,就是对三个基向量的变换;其他向量可由这三个基向量的线性组合来表示。

05 - 行列式

  • 导语:The purpose of computation is insight, not numbers. --Richard Hamming 计算的目的不在于数字本身,而在于洞察其背后的意义。--理查德 哈明
  • 前面说到线性变换,从几何上来说可以看成对空间(平面或体积)的拉伸或挤压。如何描述这种拉伸或挤压的程度?
  • 举个例子,二维空间有一个封闭的区域(面积),现在对二维空间进行一个线性的变换,变换后封闭区域的变积是多少(变化了多少)?
  • 线性变换的(矩阵)**行列式(determinant)**描述了线性变换后,面积变化的倍数。
  • 如果行列式(det)的值为0,表示变换将空间压缩到了更小的维度上(如从二维到一维)。
  • 行列式的值可以为负数。当为负数时,表示空间的方向(定向)发生的变化。(把二维空间看成一个平面,行列式为负意味着发生了翻转)。
  • 三维空间线性变换(矩阵)的行列式的值,其几何意义则是对封闭体积的拉伸或压缩量。如果变换前的体积为1,det就是变换后的体积。
  • 线性变换(矩阵)的行列式的值为0,意味着矩阵的列线性相关了,变换是在对空间降维。
  • 矩阵的行列式的值怎么计算?二维矩阵就是对角线元素相乘后求差。求行列式的值可以转化为求变换后封闭空间的面积或体积。
  • 我们也可以用两个向量的坐标来计算平行四边形的面积,会发现结果的表达式与通过行列式公式计算的结果一样。
  • 行列式有个性质:det(M1*M2)=det(M1)*det(M2)。通过公式证明可能有点复杂,但从直观上理解应该是成立的。

06 - 逆矩阵、列空间与零空间

  • 导语:To ask the right question is harder than to answer it. --Georg Cantor 提出正确的问题比回答它更困难。--格奥尔格 康托尔
  • 以线性变换的眼光来理解:逆矩阵、列空间、秩、零空间。本课程不会关注于计算,更多会关注直觉(Intuition);讲解计算的参考资料很多,也可以使用计算机辅助计算。
  • 前面讲到一个线性变换可以表示为一个矩阵,矩阵可以用于描述对于空间的操纵。
  • 矩阵的另一个用处是求解多元一次方程。我们可以把多个一次方程改写成 M*V=A 的形式(M是矩阵,V与A是列向量), M与A是已知的,求V。从变换的角度我们可以把问题理解为:有一个向量V经过了M表示的变换,变成了A,这个V向量是多少?这是变换的反向操作
  • 矩阵M表示一个线性变换,求解反向(逆)变换,可以表示为矩阵M的逆,使用M^(-1)表示。逆变换就是将矩阵M代表的几何变换,做一个反向的操作。
  • 逆变换有如下性质:如果先进行一个M矩阵的变换,再做一个M矩阵的逆变换M^(-1),所有向量将恢复到变换之前的状态。前面说过,两个连续的变换,可以表示为矩阵的乘法。因此 M^(-1) * M = I (单位矩阵)。
  • 有了逆矩阵(Inverse Matrix),我就可以方便的求解线性方程了。 M*V=A 的形式(M是矩阵,V与A是列向量), M与A是已知的,求V。两边同时乘上M^(-1),则有M^(-1)MV=M^(-1)*A;M乘上M的逆,可以消掉(因为是单位矩阵,单位矩阵是恒等变换,不对变换产生影响,就是什么都没有做一样),则有 V = M^(-1)*A。因此,我们只要得到M的逆矩阵,再做一个矩阵与向量的乘法,就可以求出V了。
  • 矩阵M有逆的条件是:det(M)不为0;同时M*V=A表示的线性方程有唯一解。如果det(M)为0,则没有逆矩阵;因为行列式值为0意味空间已经降维了,已经降维的空间无法还原。det(M)为0,线性方程可能有解(不是唯一解),也可能无解。
  • 新的术语:秩(Rank)。秩代表变换后的空间的维数。如果det(M)不为0,则变换前后空间的维数不会发生变化。
  • 矩阵M的列空间(Column space):M * v 的集合(v是任意向量)。列空间就是矩阵的列所张成的空间(列向量的线性组合)。秩更精确的定义是列空间的维数。
  • 满秩(Full Rank):秩达到最大值,秩与列数相等。对于满秩变换来说,唯一在变换后能保持在原点的就是零向量自身。对于非满秩变换,可能有很多向量在变换后,落在原点。
  • 变换后有一些向量落在了原点,这些向量构成了“零空间”(Null Space)。

附注2 - 非方阵

  • 前面讨论的线性变换所使用的矩阵都是方阵(行数与列数相等)。这个矩阵代表着对空间的操作(线性变换),每一列都是可以看成一个列向量,向量变换前后的维数保持不变。
  • 我们考虑另一个种情况:一个二维向量v,经过一个线性变换M,变成一个三维向量k,我们可以用矩阵乘法表示为:M * v = k,M是一个3x2的矩阵。
  • 同理,我们也可以将一个三维向量k,经过一个线性变换M,变成一个二维向量v,即 M * k = v,M是一个2x3的矩阵。
  • 我们还可以把一个二维向量v,经过变换M,变成一个一维向量(数轴上的数),即 M * v = g,M是一个1x2的矩阵,g为实数(相当于两个向量的点乘)。

07 - 点积与对偶性

  • 虽然向量点乘的运算很简单,但要弄清点乘的几何意义,只有通过线性变换才能理解。
  • 两个向量(维数相同)的点乘就是将向量各个分量相乘再相加。
  • 向量w与v点乘的结果理解成w在v上的投影长度乘以v的长度。当两个向量互相垂直(Perpendicular)时,投影长度会变成0,点乘的结果也是0。
  • 也可以这样解释:向量w与v点乘的结果是v在w上的投影长度乘以w的长度。v与w可以交换顺序。
  • 怎么直观理解向量点乘与顺序无关?我们可以使用对称性来解释,假设两个向量的长度是相等的,v与w分别向对方做投影;投影长度由于对称性是相等的,两个向量的长度也是相等的, 所以最后点乘的结果也是相等的。
  • 如果两个向量长度不相等,情况是怎样的?如果是w向v投影,将v的长度变为原来2倍,投影长度不会变化,v的长度是原来2倍,最终点乘结果也是原来2倍。同理将w的长度变为原来2倍,结果也是一样的。也说是不管缩放那个向量,最终结果是一样的,即Dot(2v,w) = Dot(v,2w) = 2*Dot(v,w)。
  • 下一个问题。为什么向量点乘的计算(各个分量相乘再相加)与向量投影产生联系呢?对偶性(Duality)。
  • 我们先回顾下从多维空间到一维空间(数轴 Number Line)的线性变换。假设有一个二维向量,经过变换后,变成了一个(实)数。
  • 前面说过,变换后的向量是变换后的基向量i与j的线性组合。从二维变换一维,是因为基向量都变成了数轴上的数,如i=2, j=1, 变换矩阵为[2, 1]。这个变换矩阵与向量相乘,就得到一个实数;运算过程与两个向量的点积一样。
  • 因此,两个向量点乘可以理解为一个向量v向另一个向量w所在直线做投影。向量w转置后得到的矩阵,可以看成是把二维向量变成一维向量的一个变换。向量点乘实际是一个线性变换的过程(做投影,计算投影长度)。

08第一部分 - 叉积的标准介绍

  • 导语:Every dimension is special. --Jeff Lagarias 每个维度都很特别。--杰弗里 拉加里亚斯
  • 平面上有两个二维向量v和w,这两个向量(加上对应平行边)可以围成一个平行四边形,这个平行四边形的面积是多少?
  • Cross(v, w) = Area of parallelogram 两个向量的叉乘的结果就是平行四边形的面积;面积可以为负数,表现为叉乘的方向,即 Cross(v, w) = -Cross(w, v)。
  • 前面讲过矩阵行列式的值(det)就是构成矩阵的两个列向量(也是基向量)围成的面积。因此,我也可以把要叉乘的v与w写成矩阵的形式(作为两个列向量)。
  • 但真正的叉乘是得到一个新的向量,这个向量垂直于v与w所在的平面(也就是围成的平行四边形),向量的长度等于平面四边形的面格。
  • 垂直于平行四边形的向量有两个,方向相反;需要用右手法则确定向量的方向。

08第二部分 - 以线性变换的眼光看叉积

  • 导语:From [Grothendieck], I have also learned not to take glory in the difficulty of a proof: difficulty means we have not understood. The idea is be able to paint a landscape in which the proof is obvious. --Pierre Deligna 从他[格罗滕迪克]和他的作品中,我还学到了一点:不以高难道的证明为傲,因为难度高意味着我们还没不理解。理想的情况是能够绘出一幅美景,而其中的证明显而易见。--皮埃尔 德利涅
  • 回顾:前面我们讲了两个向量的叉乘是得到一新的向量,新向量的方向是垂直于两个向量所在的平面,长度是两个向量(及平行边)围成的平行四边形的面积,并满足右手法则。
  • 假定v与w都是三维向量,Cross(v,w) = p还可以写成矩阵的形式。矩阵第一列是p=[i, j, k]向量,第二列是v=[v1, v2, v3]向量,第三列是w=[w1, w2, w3]向量。我们可以对这个矩阵求行列式的值det,D(M)= i*(v2w3 - v3w2) + j*(v3w1 - v1w3) + k*(v1w2 - v2w1)。你会发现,i, j, k的系数就是向量p。行列式的值就是向量p长度的平方,D(M) = |p| ^2。
  • 这样我们可以得到向量的一些性质:p 与 v 或 w 点乘的结果为0;v与w围成的平行四边形的面积为:|v||w|sinA,A为向量夹角。
  • 如何从几何角度理解向量的叉乘?已知Cross(v,w) = p,还是跟之前一样,我们构造一个矩阵M=[q, v, w], v、w为已知向量,q=[x,y,z]为未知向量。矩阵的行列式的值等于p与q的点乘。两个向量叉乘得到的向量再点乘,可以把任意一个向量从三维空间变换到一维空间。

09 - 基变换

  • 导语:Mathematics is the art of giving the same name to different thgings. --Henri Poincare 数学是一门赋予不同事物相同名称的艺术。--昂利 庞加莱
  • 当我们使用一组数来描述一个向量,实际上是有隐含的条件的:以二维向量来说,向量的第一个数表示向右的拉伸或偏移,第二个数表示向上的拉伸或偏移;且拉伸或偏移都是单位长度的倍数。也就是说向量都是相对基向量(坐标系)而言的。
  • 同一向量使用不同的基向量有不同的表示,不同的基向量(坐标系)代表一个变换。使用不同基向量像在说不同的语言,但是可以转换的。
  • 向量在不同基向量(坐标系)之前的变换(假定原点都是相同的),就是使用向量乘以由基向量构成的矩阵。
  • 空间的变换就是基向量的变换,就是将向量乘以基向量构成的矩阵。

10 - 特征向量与特征值

  • 导语:"Last time, I asked: 'What does mathematics mean to you?', and some people answered: 'The manipulation of numbers, the manipulation of structures.' And I had asked what music means to you, would you have answered: 'The manipulation of notes?'" --Serge Lang “上次演讲中我问到:‘数学对你来说意味着什么?’有些人回答:‘处理数字,处理结构。’那么如果我问音乐对你来说意味着什么,你会回答‘处理音符’吗?“。--塞尔日 兰
  • 特征向量(Eigenvectors)与特征值(Eigenvalues)到底是什么?有什么意义?很多人并不清楚。
  • 理解特征值与特征向时需要对前面讲过的线性变换、行列式、线性方程及基变换的几何意义(几何直观)有充分的了解。
  • 假设我们有一个变换,将i向量变换到[3, 0],j向量变换到[1, 2]。现在对向量进行变换,并考虑这个向量张成的空间,也就是通过原点及向量尖端的直线。大部分向量在变换后都离开了所张成的空间(向量变换后张成的空间与变换前的不重合);但是有些向量变换后还留在变换前的向量空间。如果变换后向量空间没有变换,意味着变换矩阵对向量的作用仅仅是拉伸或压缩而已,如同一个标题。
  • 在上面的例子中,i向量就是这样一个变换后所张成的空间保持不变的向量。 i向量还保持在x轴是,只是长度拉伸了3倍。还有一个向量[-1, 1]也是如此。
  • 上面说到的像i向量、向量[-1, 1]在变换后还留在变换前向量张成的空间,叫做特征向量。