线性代数基础

来源:互联网 发布:淘宝卖家网 编辑:程序博客网 时间:2024/06/03 11:30

1.转置

张量:在某些情况下,我们会讨论不止俩维坐标的数组。一般地,一组元素分布在若干维坐标的规则网格中,我们将其称之为张量。使用这种字体A来表示张量“A”,张量A中坐标为(i,j,k)的元素记作

以对角线为轴的镜像,这条从左上角到右下角的对角线称为主对角线。将矩阵A的转置表示为,定义为

2.矩阵的乘积

向量可以被看做是只有一列的矩阵,向量的转置可以被看做一行的矩阵,俩个相同维数的向量x和y的点击可看作是矩阵乘积,即

服从分配率:A(B+C)=AB+AC;
服从结合率:A(BC)=(AB)C;
矩阵乘积的转置有着简单的形式:(这种情况存在于)
需要注意的是:矩阵的乘积不服从交换律,即AB不等于BA(并非总是满足);

俩个向量的点击(dot product)满足交换律:
对于以上的公式,我们可以稍微证明下:(因为标量的转置其实就是本身,因为只是个数字)

3.单位矩阵和逆矩阵

单位矩阵:任意向量和单位矩阵相乘,都不会改变单位向量的结构很简单:所有沿主对角线的元素都是1,而所有其他位置的元素都是0.

矩阵的逆:记作,被定义为如下性质:,n表示n维,对于常见的等式:,其实可以化简为:,则为:
当然上述取决于是否能够找到一个逆矩阵 ,这关系到 是否存在的条件。

4.线性相关和生成子空间

如果存在的话,那么肯定的,对于每一个向量b,恰好存在一个解。
对于一个系统方程而言,对于某些b的值,有可能不存在,或者存在无限多个解。然而,存在多余一个解但是少于无穷解是不可能发生的;毕竟如果x和y都是系统的解,那么z=ax+(1-a)y也是该系统方程的解。

分析方程有多少个解,可以将A的列向量看作是从原点(元素都为0)出发的不同方向,确定有多少种方法可以到达向量b,则向量x中的每个元素表示我们应该沿着这些方向走多远。即 表示我们需要沿着第i个向量的方向走多远;
得到以下公式:

该公式表示x的第i个元素和A的第i列的乘积的和。

上述的操作被称为线性组合,形式上,某个集合中向量的线性组合,是指每个向量乘以对应系数之后的和,即

, 其实ci表示向量,v(i)表示对应的元素。

一组向量的生成空间 是原始向量线性组合所能抵达的点的集合。

确定Ax=b是否有解相当于确定向量b是否在A列向量的生成子空间中,这个子空间被称为A的列空间。
为了让方程Ax=b对于任意的向量都有解,则A的列子空间,即A的线性组合所能到达的点,要覆盖整个R,如果某点不在A的列空间中,那么b就没解了。

如果说b是n维空间的点,那么A的列空间需要覆盖 ,至少是m>n.举个栗子,如果说A是一个3x2的矩阵,如果b是三维的,就算再怎么描述x,则A的列空间也只有2,求不出b。当且仅当b为2维点的时候,才能有解。

不等式m>=n对每一点都有解是必要条件,而不是充分条件,因为有些列向量可能是冗余的。假如 R是2x2的矩阵,俩个列向量相同,那表达的是平面的一条直线,而不是整个平面。

这种冗余称为线性相关(就是说该向量是该组向量中的某些线性组合),如果一组向量中的任意一个向量都不能表示成其他向量的线性组合,则称为线性无关(linearly independent)。

注意了,如果某个向量(即线性相关的这个向量)加入到这组向量后,不会增加该组的生成空间。如果一个矩阵的列空间涵盖整个 R ,那么必须包含m组线性无关的向量。

为了保证Ax=b有至多一个解,则需确保至多有m个列向量。这意味着,该方程必须是一个方阵,即m=n,并且所有的列向量都是线性无关的。

一个列向量线性相关的方阵是奇异的,奇异就是说没有解(在这种情况是无解的,如果说用逆矩阵来求的话,但是还是可能有解的)。

这个仅仅针对方阵而言。

5.范数

有时候,我们需要衡量一个向量的大小,经常用范数的函数衡量矩阵大小。形式上, 范数如下:

,其实p属于R,且p大于等于1;

范数是将向量映射到非负值的函数。直观来说,向量x的范数是从原点到点x的距离。

当p=2时,即二范数,被称为欧几里得范数。表示从原点出发到向量x确定的点的距离的欧几里得距离。 经常被简化成 ||x||(把下标去掉了)。平方范数(注意这里是平方范数 也经常用来表示向量大小,即向量点击(

平方范数使用起来比L2本身更方便,因为平方范数 对特定元素求导其实是对单个元素求导,而范数L2其实就是对整个函数进行求导了,但是平方二范数在0附近增长很慢哦。

在某些机器学习中,为了区分0和非0,倾向于使用在各个位置斜率相同,同时保持简单的数学形式的1范数,个人觉得比较少用 ,当一个元素从0增长了a,L1范数增加a。

范数,也称为max范数:

有时候我们也需要衡量矩阵的大小,用的是Frobenius范数:,即每个元素的平方和然后再开方。类似于二范数。

俩个向量的点击也可以用范数来表达:,其中表示x和y的夹角。

6.特殊类型的矩阵和向量

对角矩阵:只在主对角线上含有非零元素,其他位置都是0,其实单位阵也是对角矩阵的一种,

我们用diag(v)表示一个对角元素由向量v中元素给定的对角方阵。对角矩阵受欢迎的原因在于其乘法比较高效。计算乘法diag(v)x相当于把向量x中的元素扩大v对应的元素的倍速,即

对角矩阵(仅当对角矩阵是方阵的时候才有逆矩阵)的逆矩阵也很容易求,当且仅当对角元素都不是0的时候

但是需要注意的是:并不是所有的对角矩阵都是方阵,对于长方形的矩阵也可以是对角矩阵,但是注意的是这里没有逆矩阵。(如果说是非方阵的对角矩阵,那么肯定存在该对角矩阵里面列向量存在线性相关的问题,所以是奇异的,没有解的

对称矩阵:矩阵是任意转置和自己相等的矩阵。即

对于某些函数,可能会用到对称矩阵,例如矩阵A是一个表示距离的矩阵,那么他肯定是个对称矩阵,因为 ,其中表示从i到j的距离,j到i的距离。

单位向量: 范数(二范数,范数表示向量的大小)为1的向量,如果有 ,那么向量x与y正交, ,根据该公式可得其实就是成90度。

标准正交:在R空间中存在着很多向量互相正交,如果说范数为1的话,那么我们称它们为标准正交。

正交矩阵: 正交矩阵是指行向量是标准正交的,列向量是标准正交的方阵(个人觉得就是范数为1,受到关注是因为求逆计算代价小):

从而我们可以推导出:

7.特征分解

特征分解是使用最广的矩阵分解之一,将矩阵分解成一组特征向量和特征值

a.*方阵A(注意这里是方阵哦!!!)的特征向量:是指与A相乘后,相当于对这个向量进行了缩放,用公式表达即为:,其中为特征值,当然也有左奇异向量 但是我们一般关注的是右奇异向量*。

b.如果v是A的特征向量,那么任何缩放后的向量sv也是A的特征向量,并且v和sv具有相同的特征值。因为缩放后的向量一样具有特征值,所以我们通常用单位特征向量(范数为1的向量)。

c.假如A有n个线性无关的特征向量v,即 (这里应该是列向量),对应的特征值为 ,这里我们表达为,diag(),则我们有: ,

则可以转换为:

d.不是每一个矩阵都可以分解成特征值和特征向量的。在某些情况下,特征分解会涉及到复数,而非实数。

但是一般而言,每个实对称矩阵A(这里是对称矩阵,所以在后面Q才是正交阵)都可以分解成实特征向量和特征值:,在上述公式中,Q是A线性无关的特征向量组成的正交矩阵是特征值组成的向量,即对角矩阵。对应的特征值是
Q的第i列,记作,其中“:”代表的是列的意思。

由于Q是正交矩阵(这里用的是frobenius范数为1,即大小为1),可以把A看做在 方向上延展 倍的空间。换句说,就是把A看作是沿着特征向量的方向然后扩展特征值倍的空间。

注意:对于实对称矩阵,其特征分解可能不一样,如果俩个或者多个特征向量拥有相同的特征值,那么这组特征向量生成的子空间中,任意一组正交向量都是该特征值对应的特征向量。

注意了:矩阵是奇异的当且仅当含有0特征值。。。。。。。。。。

e.实对称矩阵可以用来优化二次方程 ,其中A是对称矩阵,然后x是单位向量,f(x)的最大值为最大特征值,最小值为最小特征值。

f.所有特征值都是正数的矩阵称为正定,非负数的称为半正定。所有特征值都是负数的矩阵称为负定,非正数的称为半负定。

半正定矩阵受到关注是因为对于任意的特征向量x,总有 x^{T}Ax>=0
对于正定矩阵而言,若有 x^{T}Ax=0,则特征向量为0。

8.奇异值分解

对矩阵的分解,除了特征向量和特征值外,还可以有奇异值分解,即将矩阵分解为奇异向量和奇异值。

每个实数矩阵都有一个奇异值分解,但是不一定有特征分解。例如,非方阵的矩阵没有特征值分解,但是有奇异值分解。

在特征值分解中,我们用V(表示特征向量的集合),diag()表示特征值的几何,则有,类似的,奇异值分解也有相关性质:

假如A是一个mxn矩阵,那么U是一个mxm矩阵,D是一个mxn矩阵,V是一个nxn矩阵。

在上述矩阵中,矩阵U和V都是正交矩阵,矩阵D是对角矩阵,注意D不一定是方阵。D上对角线上的元素被称为奇异值,U的列向量为左奇异向量,V的列向量被称为右奇异向量。

事实上,特征值分解和奇异值分解有着相关的联系:
事实上,我们可以用与A相关的特征分解去解释奇异值分解。A的左奇异值向量是 的特征向量,A的右奇异值是,A的奇异值是特征值的平方根。

奇异值分解最有用的一个性质是:拓展矩阵求逆到非方矩阵上,就是拓展到非方阵求逆。

9.Moore—Penrose 伪逆

对于非方阵的逆,其实没有定义。假设我们在下面问题中,希望通过矩阵A的左逆B来求解线性方程,
Ax=y,注意了,我们这里假设的是A是非方阵。则可以转换为 x=By
在上述方程中,如果矩阵A的行数大于列数,无解。如果矩阵A的列数大于行数,有多个解。

在Ax=y中得到x=By,其实这个B就称为A的伪逆,表示为A+

矩阵A的伪逆符号为:

对于伪逆而言,我们可以通过奇异值分解来得到其矩阵,如下所示:

上述公式的含义是:
V是矩阵A的奇异分解的左奇异向量,同时也是AA^{T}的特征向量
U是矩阵A奇异分解的右奇异向量,同时也是A^{T}A的特征向量,D是A的奇异值,也是AA^{T}或者A^{T}A的特征值的平方根。对角矩阵D的伪逆是其非零元素取倒之后再转置得到的(这里D不一定是方阵)

当列数大于行数的时候,使用伪逆求解线性方程是众多可能解法中的一种。但是是所有解中欧几里得矩阵最小的,即二范数最小的。

如果行数大于列数的话,可能没有解。在这种情况下,通过伪逆求出的解, 其实就是最小二乘的问题 ,得到的x是使得Ax和y的欧几里得距离 最小。

10.迹运算

迹运算返回的是矩阵对角元素的和:

性质1:对于描述矩阵的大小,在上面我们已经了解了用Frobenius范数的形式,即 ,如果用迹Tr来表达的话,可以有 (可自行举例子验证,无论是方阵还是非方阵,都是成立的。)

性质2: Tr(A)=Tr(A^{T}) //这个应该挺好理解的,毕竟转置矩阵也是根据主对角线来进行转换的。

性质3:多个矩阵乘积的迹,我们将这些矩阵中最后一个挪到最前面之后乘积的迹仍是相同的。
Tr(ABC)=Tr(CAB)=Tr(BCA),
或者更一般的,我们可以用公式来表示:

性质4: 即使循环后矩阵乘积得到的矩阵形状变了,但是迹运算结果不会改变。如下:
Tr(AB)=Tr(BA)
即使A是mn矩阵,B是nm矩阵,那么AB是mm矩阵,BA是nn矩阵,但是俩者的迹是一样的。

标量在迹运算之后仍然得到他自己,a=Tr(a);

11.行列式

行列式,记做 det(A),是一个将方阵(注意了,这里指的是方阵)映射到实数的函数。行列式等于矩阵特征值的乘积。

行列式的绝对值可以被认为是衡量矩阵相乘后空间扩大或缩小了多少。如果行列式为0,那么空间至少沿着某一维完全收缩了,使其失去了所有的体积。如果行列式是1,那么矩阵相乘没有改变空间体积。