8、行列式
8.1 什么是行列式?
首先方阵才有行列式,我们先来简单回顾一下2*2和3*3的矩阵的行列式:
那行列式代表什么含义呢?在二维平面中,矩阵行列式的绝对值代表一个平行四边形的面积,在三维空间中,矩阵行列式的绝对值代表一个平行六面体的体积:
8.2 行列式的性质
(1)单位矩阵的行列式为1
(2)交换任意的两行,行列式变号
(3)对任意一行来说,行列式是“线性”的
从ppt上不好翻译,但是看图是很直观的:
所以,下面的式子是正确的:
同时:
(4)如果行列式有两行相等或者是倍数关系,行列式值为0
这个性质也是很直观的,交换两行变号嘛,但是交换的两行如果是一样的,那么行列式的值应该不变,-a=a那么a只能是0。
(5)对角矩阵的行列式等于对角线上元素的乘积
(6)如果一个方阵的行列式不为0,那么它是可逆的,反之,如果一个方阵可逆,那么它的行列式不为0
如果一个矩阵是可逆的,它可以经由初等变换得到单位矩阵,每一次初等变换得到的矩阵的行列式值,相当于对原矩阵的行列式值乘上一个标量。由于每次乘的标量不为0,所以可以得到原矩阵的行列式值不为0。
(7)det(AB)=det(A)*det(B)
(8)矩阵转置的行列式和原矩阵相同
所以说,刚才的结论同样适用于列。即如果有两列相同或是倍数关系,行列式值同为0,同时每一列也是线性的。
8.3 行列式的计算
我们首先来介绍余子式和代数余子式,一个矩阵的任意一个元素aij都有对应的余子式,它就是将第i行和第j列划掉之后所得到的矩阵的行列式,用det(Aij)表示:
而cij=(-1)i+jdet(Aij)被称为代数余子式。
根据代数余子式,我们可以得到计算行列式的公式如下:
举个3维的例子:
因此,对于一个方阵的行列式,它是n!项的和(n!是n个元素的全排列的个数),对于每一项,它是从每一行选择一个元素进行相乘,而这些元素分别属于不同列。
有了代数余子式,我们可以得到矩阵A的伴随矩阵。伴随矩阵中的每个元素是原矩阵中该位置元素的代数余子式:
我们可以进一步通过伴随矩阵和行列式值来计算矩阵的逆:
9、子空间
9.1 子空间
如果一个向量集合V满足三个条件:(1)包含零向量(2)如果u和v属于V,那么u+v也属于V(3)如果u属于V,c是一个标量,那么cu也属于V。就称这个向量集合V为子空间(subspace):
举个例子,下面的向量集合是一个子空间:
只有零向量的集合也是一个子空间,三条性质都满足。
9.2 零空间
对于一个矩阵A来说,使得Ax=0的所有x所组成的集合被称为矩阵A的零空间(Null Space):
9.3 列空间和行空间
列空间(Column Space)是矩阵A的列所张成的空间,行空间(Row Space)是矩阵的行所张成的空间。
在将矩阵化简为行阶梯型之后,矩阵的列空间是改变的,而行空间不变。
好了,我们又可以添加一条判断线性方程组是否有解的条件了,即b是否在A的列空间中。
10、基Basis
10.1 什么是基Basis
假设V是Rn的一个子空间,能够张成空间V的一组线性无关的向量被称为基(Basis)。
对于一个矩阵来说,其主列是其列空间的基:
10.2 基的特性
基有如下的特性:
(1)基是一个能张成空间V的数量最小的向量集合
如果一组向量S能够张成子空间V,那么基中包含的向量数目小于或等于S中向量的数目。
(2)基是空间中数量最多的线性无关的向量集合
如果子空间V的基中向量的数量是k,那么你不能找到比k个多的线性无关的向量集合。
(3)子空间中任意的两组基都包含相同数目的向量
这个如何证明呢?
1)假设子空间V中有两组基A和B,个数分别是k和p;
2)因为A是子空间中的基,所以B中的所有向量都可以表示成A中向量的线性组合,即有AC=B,C的列数为p,行数是k;
3)假设存在一个p维向量x使得Cx=0,所以ACx=Bx=0因为B是基,所以Bx=0的解只能是零向量,所以C也是线性无关的;
4)因为C中的列向量是k维的,p个k维的向量线性无关,所以一定有p<=k;
5)同理k<=p,所以最终k=p,即A和B中向量的个数是相同的。
(4)子空间V的基的向量的数量被称为V的维度(dimension)
10.3 判断一个集合是否为基
通过定义,我们可以判断一个集合是否为基,需满足两个条件,向量之间线性无关,同时能够张成空间V,前者容易判断,后者较难判断:
另一种思路,假设对于一个子空间V,我们已经知道它的维度为2,如果S是一个包含k个vector并且属于V的一个子集,那么如果
1)S中的向量线性无关,那么S是一个基
2)S能够张成空间V,那么S是一个基
10.4 三种空间的基和维度
我们之前介绍过对于一个矩阵的三个空间,行空间、列空间以及零空间,他们的基以及维度都是多少呢?
A的列空间
A的列空间的基是主列组成的集合,维度就是主列的个数
A的零空间
A的零空间的的维度是Ax=0中自由变量的个数,基看下面的图片:
A的行空间
A的行空间的维度是化简为简约行阶梯型之后非零行的个数,基就是简约行阶梯型中先导元素所在的行所组成集合。
这里我们可以得出一个结论,矩阵A和其转置的秩相等:
总结一下就是下面这样子啦:
11、坐标系
11.1 使用基表示向量
在n维空间中,我们可以使用基向量来表示坐标系,这样空间中的任意向量的坐标都确定了,但是对于同一向量,使用不同的坐标系,其坐标是不同的:
同理,在不同坐标系下,同一个坐标所代表的向量也不同:
当基确定时,一个向量的坐标也是唯一的,由于基之间是线性无关的,因此证明如下:
在某一坐标系B下,一个向量可以表示成其对应的坐标表示:
而我们最为常用的一种坐标系就是直角坐标系(Cartesian coordinate system),通常表示如下:
那么根据任意坐标系以及某一向量在该坐标系下的坐标,如何得到该向量呢?很简单,该向量可以表示成基的线性组合,系数即为其坐标:
那么,如何得到某一向量在任意坐标系下的坐标,两边同乘B-1即可:
11.2 直角坐标系和其他坐标系的转换
其实我们的向量就是在直角坐标系下的坐标表示,所以其实直角坐标系和其他坐标系的转换我们上一节已经讲过:
11.3 坐标系与线性方程
我们之前所说的线性方程,都是相对于直角坐标系所说的,有时候有些问题直接在直角坐标系下进行求解并不容易,但是转换到另一坐标系下就会变得十分简单,这就得到了通过坐标系转换来求解问题的思路:
我们举个例子来说吧,如果下图中的T表示得到任意一个向量关于直线L的对称向量:
直接求解这个问题非常难,我们想要找的是一个矩阵A,使得T(x)=Ax,直线如果不是横轴或者纵轴的话,要找到这个矩阵A是十分困难的。但是如果直线是横轴或者纵轴的话,这个问题就变得非常简单。假设直线是横轴,那么要找的矩阵我们可以很容易写出:
所以我们可以通过坐标系变换,把直线L变成横轴,那么问题就简单了:
所以我们在直角坐标系下的这个变换矩阵A也就找到了,此时我们可以称两个坐标系下的变换矩阵是相似矩阵(Similar matrices):
假设直线L为y=0.5x,那么求解过程如下:
12、特征值和特征向量
12.1 什么是特征值和特征向量
好了,在写这一节之前,我们看来想一下上一节的东西,我们说一个直角坐标系下的向量v, 其在另一个坐标系下的坐标表示为Bv,这个B是该坐标系下的基所做成的矩阵,所以说矩阵可以表示一种线性变换(Linear Transformation),它将一个向量在直角坐标系下的坐标表示转换为另一坐标系下的坐标表示!
我们知道,任意非零向量都可以张成一条直线,有的向量在一个矩阵A作用后,偏离了其所张成的空间;但有的向量在矩阵A作用后,还是在原有张成的空间,矩阵A只是对该向量起到了一定的伸缩作用,那么我们就说该向量是矩阵A的特征向量(Eigenvector),而这个伸缩作用的大小我们就称为特征值(Eigenvalue)。所以我们知道,该向量所张成空间中的所有向量(零向量除外)都是该矩阵的特征向量。下面的例子中,经过变换后横轴没有发生变化,所以横轴的向量都是特征向量,特征值为1。
好了,我们可以给出特征值和特征向量的定义了:
12.2 如何计算特征向量
假设我们已经知道了特征值λ,我们可以根据Av=λv求解其对应的特征向量:
而某一特征值λ的特征空间(Eigenspace)定义为(A-λIn)v=0的解集:
Eigenspace也可以说是λ所对应的特征向量再加上零向量(特征向量不能是零向量)
12.3 检查一个标量是否为特征值
检查一个标量是否为特征值,只需要判断其对应的特征空间是否只有零向量即可:
12.4 计算特征值
如果一个标量是矩阵A的特征值,那么他会满足下面所有的条件:
那么如何计算一个矩阵的特征值呢,这里要使用特征多项式(Characteristic Polynomial),特征值是特征多项式的根。即:
举个例子:
这里我们可以得到一个性质,两个相似矩阵的特征值是相同的,证明如下:
那么一个n阶方阵有多少特征值呢?最多n个。如果一个n阶方阵有n个特征值(包括重复值),那么这n个特征值的的和等于矩阵的迹(trace,即矩阵主对角线的元素之和),同时,这n个特征值的乘积等于矩阵的行列式。
对特征多项式进行因式分解,我们可以得到如下重要的结论,一个特征值对应的特征空间的维度,小于等于该特征值重复出现的次数。
举例来说:
12.5 正定矩阵&半正定矩阵
如果一个矩阵的所有特征值都大于0,那么这个矩阵被称为正定矩阵(positive definite matrix),如过特征值都大于等于0,则称为半正定矩阵。
那么正定或者半正定矩阵的含义是什么呢?这里我们以正定矩阵为例。我们知道一个矩阵的A代表一种线性变化,那么如果一个矩阵是正定的,就有xTAx>0,假设x在经过A的变换后变为y,那么xTy>0,即x和y的内积大于0,或者说夹角小于90度。所以正定矩阵的直觉代表一个向量经过它的变化后的向量与其本身的夹角小于90度。
13、对角化
13.1 可对角化
如果一个n阶方阵A可以变为A=PDP-1,其中D是n阶对角矩阵,P是n阶可逆方阵,那么A就是可对角化的(diagonalizable)。但并非所有的矩阵都可以进行对角化:
如果A是可对角化的,那么P中的列向量是A的特征向量,D中对角线元素是A的特征值,证明如下:
同时,我们可以得到如下结论:
13.2 可对角化的性质
本节我们介绍几个重要的性质,
1)不同特征值对应的特征向量之间线性无关。
2)如果一个矩阵A可对角化,那么其特征值对应的特征空间的维度,等于该特征值重复出现的次数。
3)如果一个矩阵A可对角化,那么Am= PDmP-1。
我们首先来看第一个性质:
我们可以假设他们之间线性相关来进行反证:
再来看第二个性质:
14、正交
14.1 范数和距离
我们常用范数(Norm)来表示矩阵的长度,其中最常用的是二范数:
两个向量的距离,我们使用的一般是欧式距离:
14.2 点积和正交
点积(Dot Product)的计算如下:
两个向量是正交的(Orthogonal),如果两个向量的点积是0,那么零向量和任何向量都是正交的。
点积具有如下的性质:
同时,如果两个向量是正交的,那么有如下性质:
在三角形中,我们有著名的三角不等式,两条边长度之和大于第三条边的长度,所以我们有:
14.3 正交补
对于一个非空的向量集合S,该集合的正交补(Orthogonal Complement)定义为:
关于正交补,我们有如下性质:
所以说,对于n维空间中的向量,我们都可以进行拆解:
14.4 正交投影
正交投影(Orthogonal Projection)通过下面的图片很容易理解,如果向量u像子空间W做正交投影,其投影的结果就是w。
正交投影有一个很重要的性质就是,u在子空间W上的正交投影向量,是与u距离最近的,观察下图可以看出,直角三角形斜边的长度总是大于直角边的:
14.5 如何做正交投影
如何得到一个向量在另一个子空间上的正交投影呢,从一个向量得到另一个向量,我们不妨中间乘了一个变换矩阵Pw,即w=Pwu。所以关键是变成如何寻找这个矩阵
Pw。
好了,我们这里直接给出结论,然后再进行证明:
证明如下,证明中的第一步是因为u-w是垂直于子空间W中所有向量的,因此自然垂直于C中所有的列向量,因此CT(u-w)=0:
14.6 正交投影的应用-求解线性回归
如果对于无解的线性方程组Ax=b,我们退而求其次,在A的列所张成的空间中找一个距离b最近的向量,其实就是b在A上的正交投影。
这个思想可以用在我们机器学习中的线性回归中。在进行线性回归时,我们往往希望残差平方和最小,即:
这里的C是我们的训练数据,训练数据的矩阵表示相当于线性方程组的A,要找的参数a相当于线性方程组的x,实际值y相当于线性方程组的b。根据我们上一节求解正交投影的方式,Ca的值应该等于y在C张成空间中的正交投影,因此,我们可以直接计算得到参数的值:
14.7 正交基
如果一组向量中任意两个向量都是正交的,那么我们可以称这组向量为正交集(Orthogonal Set)。不含零向量的正交集中的向量是线性无关的,证明如下:
如果正交集中所有的向量长度都为1,那么这个集合被称为标准正交集(Orthonormal Set),标准正交集中的向量当然也是线性无关的。
因为正交集/标准正交集中的向量是线性无关的,那么如果一个子空间的基是正交/标准正交的,那么这个基被称为正交基(Orthogonal Basis)/标准正交基(Orthonormal Basis)。
如果一个基是正交的,那么我们可以很快的求解出子空间中一个向量的坐标:
如果u是任意向量,那么u在子空间中的正交投影也很容易计算得出:
我们可以将我们之前得到的投影变换矩阵进行改写:
如何把一个普通的基转换为正交基呢,方法如下:
14.8 正交矩阵
我们之前提到过,矩阵其实代表一种线性变换,如果将这种变换作用在任意的向量u上,不改变向量u的长度的话,我们就说该线性变换具有Norm-preserving(这里不清楚怎么翻译,暂且翻译为范数不变性)。注意,这样的u是任意的向量,比如旋转和对称反转操作就不会改变任何向量的范数:
显然,具有范数不变性的矩阵,其必有一个特征值为+1或者-1 。
一个n阶的方阵Q,如果它的列是可以张成n维空间的标准正交基,我们就称Q为正交矩阵(orthogonal matrix)。
例如,下面的矩阵就是一个正交矩阵:
范数不变性和正交矩阵是什么关系呢?答案是:如果一个矩阵具有范数不变性,那么它是正交矩阵,反之如果一个矩阵是正交矩阵,那么该矩阵具有范数不变性。接下来,我们分别证明这两点。
第一点:如果一个矩阵具有范数不变性,那么它是正交矩阵
证明一个矩阵是正交矩阵无非就是证明两点,每一列的长度都为1,任意两列都是正交的。
证明每一列长度都为1:
证明任意两列正交:
第二点:如果一个矩阵是正交矩阵,那么该矩阵具有范数不变性
首先,我们很容易知道,对于一个正交矩阵Q,QT=Q-1,根据下面的推导可以得到正交矩阵一定具有范数不变性:
刚才我们说到了,对于一个正交矩阵Q,QT=Q-1,这个条件其实可以用来判断一个矩阵是否为正交矩阵。根据这个条件,可以得到,如果一个矩阵是正交矩阵,那么其转置仍然是正交矩阵。这时我们只要检查一下(QT)T=(QT)-1是否成立就好了。很显然是成立的,因为转置的逆等于逆的转置。
所以对一个正交矩阵,有如下三点性质:
1)行和列都是正交的范数为1的向量
2)范数不变性
3)其转置等于其逆矩阵
14.9 对称矩阵
如果一个矩阵的转置等于其本身,那么这个矩阵被称为对称矩阵(symmetric matrices)。
对于对称矩阵来说,它的特征值都是实数:
同时,不同的特征根所对应的特征向量,是正交的:
对称矩阵一定是可以对角化的(相关的证明网上可以找到,这里就不证明了),我们之前介绍过,对于一个可对角化的矩阵,它的特征向量之间都是线性无关的,根据这个性质,如果一个n阶对称阵有n个不同特征值的话,其对应的特征向量是两两正交的,那么其组成的矩阵就可以是一个正交矩阵,如果存在重根,其对应的特征向量之间不一定是正交的,但总是可以通过正交化的方式转换成正交的。因此对于对称矩阵来说,之前讲过的对角化的方式可以变为:
15、奇异值分解
15.1 什么是奇异值分解?
我们之前介绍的对角化,只能针对方阵,那么对于非方阵来说,我们可不可以用类似对角化的方式对矩阵进行分解呢?这里就用到了奇异值分解(Singular value decomposition ,SVD)的技术。
奇异值分解如下,一个m*n的矩阵A可以分解为一个m阶的正交矩阵,一个m*n的对角矩阵(类似于对角矩阵吧)和一个n阶的正交矩阵:
那这三个矩阵分别要怎么求呢?我们参考刘建平老师的文章(https://www.cnblogs.com/pinard/p/6251584.html):
奇异值通常用于降维,也就是说,我们不需要所有的奇异值来描述矩阵,而是通过少数的几个比较大的奇异值就可以,此时效果如下:
好了,本文的线性代数知识就带你复习到这里,真的建议大家去听一下李宏毅老师的线性代数课,讲的还是十分清晰的。
参考文献
1、http://speech.ee.ntu.edu.tw/~tlkagk/courses_LA16.html
2、https://www.cnblogs.com/pinard/p/6251584.html
作者:石晓文的学习日记
链接:https://www.jianshu.com/p/21aea5108d83
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。