我将通过多个系列的文章来讲述人工智能技术重要组成部分,线性代数作为人工智能数学理论基础,是非常重要的一部分,我将用一个系列的文章来讲解线性代数的本质,本文是本系列第七篇。 目录 特征向量与特征值 向量究竟是什么? 向量的线性组合,基与线性相关 矩阵与线性相关 矩阵乘法与线性变换复合 三维空间中的线性变换 行列式 逆矩阵,列空间,秩与零空间 克莱姆法则 非方阵 点积与对偶性 叉积 以线性变换眼光看叉积 基变换 特征向量与特征值 抽象向量空间 快速计算二阶矩阵特征值 张量,协变与逆变和秩 特征向量与特征值特征向量和特征值不好理解的主要原因是:它过于抽象,不太直观,为了让大家更好的理解,今天的内容将尽量为大家呈现一种直观解释,其实只要大家掌握了前面所讲的内容,特征向量和特征值并不复杂,再次提醒大家:要时刻记住把矩阵看作是一种线性变换,除此之外,还要对基向量,线性方程组,以及基变换有一定的了解。 接下来,让我们以一个线性变换出发,假如现在有一个线性变换,它将基向量 下面,让我们关注该变换对一个特定向量的作用,如下图黄色箭头代表的向量,粉色线代表由该向量张成的空间,也就是将黄色线缩放不同的比例后到达的所有点的集合,经过线性变换后,该向量偏离了其张成的空间,这种情况很常见,如果变换后还落在其张成的直线上,这倒是像一个巧合了。 但确实存在这样的向量,在变换后仍留在他张成的空间里,这意味着,矩阵对这些向量的作用仅仅是拉伸或者压缩,就像一个标量对向量的作用一样。 在前面的例子中,经过矩阵变换后,我们发现,基向量仍然落在它张成的空间中,也就是仍然在X轴上,只不过其长度变为原来的三倍,同样,在X轴上的其他所有向量也都是方向保持不变,长度变为原来的三倍。 除了X轴上的向量,还有一个不太容易被发现的向量,也具有同样的性质:变换后仍停留在其张成的直线上,只不过长度变为原来的两倍,又根据线性变换的性质:直线上的其他向量变换后同样长度变为两倍停留在直线上。 以上两条直线上的向量是满足变换后仍停留在其张成的空间里的全部向量了,这两条直线之外的任何向量,经过变换后,都会或多或少发生旋转,离开其张成的空间。 到这里,大家可能已经猜到了,这些向量称为变换(矩阵)的特征向量,每一个特征向量都会对应一个所属的值,这个值被称为“特征值”,特征值就是特征向量在变换中被它拉伸或者被它压缩的比例因子。 前面这个例子,特征值都是正的,那么特征值可以是负数吗?让我们换一个例子,假设现在有一个变换矩阵,假设有一个特征值为-1/2的特征向量,意味着这个向量在变换后,被反向且被压缩为原来的1/2,但仍停留在其张成的直线上。 那我们为什么要探讨特征向量和特征值呢?举个例子,在三维旋转中,如果能找到旋转矩阵的特征向量,那么该特征向量就是旋转的旋转轴。 而且把一个三维旋转看成是绕某个旋转轴旋转一定角度,要比处理一个3*3旋转矩阵直观的多。 顺便提一下,对于上面的三维旋转,特征值必须为1,因为旋转不会改变特征向量长度,也就是不会改变物体的大小。 更一般的,我们将特征向量和特征值转换为如下公式: A = 第一眼看到上面的公式,大家可能会很困惑,因为等式左侧代表矩阵向量的乘积,而等式右侧代表向量的数乘,所以我们的第一步就是将右侧向量数乘的形式写成矩阵向量乘积的形式。 而我们要求的这个矩阵,它的作用效果是:把任意向量乘以数,该矩阵每一列代表的是变换后的每个基向量,而把每个基向量乘以数,得出的矩阵就可以实现用缩放任意向量的作用。 如上图所示,该矩阵对角线元素都是,其余元素都是0,我们称之为对角矩阵,更进一步的,我们将提取出来,就变成了乘以一个单位矩阵。 到这里,等式两边就都变成了矩阵与向量乘积的形式了: 把等号右边的移动到等号左边: 然后提出因子: (A-)我们得到一个新的矩阵: 我们现在的任务是寻找一个向量,使得这个新矩阵与相乘后变成零向量,如果本身就是一个零向量,等式恒成立,但这没什么意义,我们是要找一个非零向量使得上述式子成立。 如果我们掌握了前面所学的行列式的知识的话,我们知道当矩阵代表的变换将空间压缩到更低的维度时,才会让一个矩阵和一个非零向量的乘积为零向量。 而压缩空间所对应的就是变换矩阵的行列式为0: 接下来,让我们举个具体的例子,如下图所示,让我们将赋予不同的值,然后求矩阵的行列式,例如,当=0.56时,矩阵的行列式值为1.73,代表经该矩阵变换后,面积放大到原来的1.73倍,我们想找到一个的值,能将矩阵的行列式值为零,意味着按此的调整后的变换,把空间压缩到了一个更低的维度上。 在这个例子中,如下图所示,当=1.0时,矩阵的行列式正好等于0 如上图,以上就是一开始提到的,要理解特征向量和特征值的概念,需要前面章节所学习的知识,如果大家对行列式没有足够的了解,以及为什么他们与具有非零解的线性方程组有关,那么这个等式det(A-) =0会让人感到出乎意料。 为了探讨特征向量和特征值的求解过程,我们还是以开头的那个矩阵为例,如下图,该变换矩阵为: 为了求解特征值,我们让上述矩阵对角线元素减去,然后计算此行列式 ,根据前面章节讲解的计算行列的公式可得: =(3- )(2- )-1*0 只有令该行列式为零时,才会是特征值,所以令(3- )(2- )=0,求解该二次多项式可以得出:=2或者=3是该多项式的解。 得到了特征值后,接下来就可以求解特征向量了,我们把=2带入A-中,然后求解出被这个矩阵变换后成为0的向量。 如上图所示,求解特征向量,这不正是求线性方程组的解嘛!计算后我们发现,x+y=0,y=-x,属于特征值为2的全部特征向量。 但并不是所有矩阵都有特征向量,例如,二维空间中的旋转90度的变换矩阵,他并没有特征向量,因为空间中的所有向量都发生了旋转,离开了其张成的空间,如果我们偏不信,就想去计算特征值的话,按照刚才的步骤,首先对角线减去可得:,然后求该矩阵行列式的值2+1=0,可见没有实数解,只有虚数解i与-i。 另一个例子是剪切变换,其变换矩阵为,由下图可见,处于X轴上的向量都是特征向量,且特征值为1,我们不妨去计算一下,首先计算A-,得到,求行列式可得(1-)(1-)-1*0 =0;求解多项式可得=1 。 这里还要注意一下,存在一个特征值,其对应的特征向量不在同一条直线上的情况,一个简单的例子是将所有向量放大两倍的线性变换,该矩阵的特征值为2,但特征向量是空间中的所有向量,因为所有向量只是长度变为两倍,变换后方向没变。 最后,让我们以“特征基”来结束今天的内容,该内容依赖于前面章节所讲的基变换的思想。 如果基向量恰好是特征向量时,会发生什么?例如,把变为原来的-1倍,把变为原来的两倍,那么该变换矩阵为,其中-1和2也就是该矩阵的特征值。 我们发现,特征值都位于矩阵的主对角线上,矩阵其余元素为0,这种矩阵我们称为对角矩阵,这种矩阵,所有基向量都是特征向量,矩阵主对角线上的元素是对应特征向量所属的特征值。 使用对角矩阵处理问题,在很多情况下会非常简便,例如: =,其中一个重要的方面是,矩阵与自己的多次相乘的结果会更容易计算,例如3次相乘后: 由于应用对角矩阵的效果,都只是将每个基向量(特征向量)按照对应的特征值进行缩放,因此多次应用该矩阵,例如,应用100次该矩阵,相比于非对角矩阵,计算上会简单地多。 虽然很少有基向量就是特征向量的巧合,但如果我们有很多特征向量,如下图所示,足够我们找到一组特征向量来张成整个空间,那我们就能变换我们的坐标系,使得这些特征向量称为基向量, 我们在上一个章节已经讨论过基变换了,已经知道了如何在不同的语言之间进行转换,如下图,首先使用两个新的特征向量的坐标作为新的基向量,组成基变换矩阵:,原始变换右侧是该基变换矩阵,左侧放基变换逆矩阵,这三个矩阵的复合变换代表的其实是同一个变换,即中间矩阵代表的变换,只不过是同新的基向量的角度看的。 用特征向量作为基向量来讨论的意义在于这个新的复合矩阵必然是对角矩阵,而且其主对角线上的元素为特征值,它所处的坐标系的基向量在变换中只进行了缩放,一组基向量(特征向量)构成的集合被称为“特征基”,所以大家要计算这个矩阵的100次幂,一种更简单的方法是先变换到特征基,在这个坐标系中计算100次幂,然后再变换回原来的坐标系但并不是所有变换都能这么做,例如,剪切变换的特征向量不能张成整个空间,所以不能作为特征基。
|
|