矩阵如何求逆(3×3逆矩阵求法公式)
线性代数在机器学习(ML)和深度学习(DL)中是必不可少的。即使我们努力为许多理论创建准确的机器学习模型,线性代数仍然是这些研究中的重要工具。这篇文章会跳过一些基础知识,比如什么是向量,什么是矩阵,如何做加法和乘法。我将快速更新基本概念,并更深入地介绍一些重要主题。
基本矩阵行为:
如最后一个等式所示,矩阵是不可交换的。
转置
传统上,向量x被写成列向量。这就是向量和矩阵的换位。
属性
如果a = a,那么矩阵是对称的。如果a =-a,则称为反对称。
内积
内积a,b(或a b)是一个标量函数。两个向量的内积定义为:
任何标量值的换位都等于自身。你可以在很多机器学习的论文里看到以下操作。
单位向量是有单位长度的向量。
两个向量U和V之间的角度是
向量遵循以下不等式
属性
最后一个等式很重要。这就是证据:
外积
不要把XY和XY搞混了。内积XY产生一个标量,但外积XY产生一个矩阵。
两个矩阵相乘是A的第I列和b的第I行之和。
示例
矩阵乘法的这个思路看起来很奇怪,但是在我们学习矩阵分解的时候就变得非常重要了。
逆
a的逆矩阵定义为:
属性:
注:只有当A和B可逆时,上述才成立。即使A是非方阵也不是这样。(逆矩阵假设A是n × n方阵。)求解线性方程组Ax = b,我们可以将A的逆矩阵乘以B来求解x。
如果A是不可逆的,则此方法失败。我们需要一些其他的方法,比如高斯消元法来求解。我们引入上面的逆——左边的左逆。如果在右侧引入,则称为右逆。
对于方阵来说,两者是一样的。我们只称之为逆。
然而,即使逆矩阵似乎在文献中随处可见,我们也应该避免在实践中对任何矩阵求逆。在机器学习(ML)中,我们处理许多稀疏矩阵——主要由零值元素组成的矩阵。由于空和计算的复杂性,稀疏矩阵的逆是稠密的,不理想。此外,逆矩阵在数值上可能是不稳定的——输入中的一个小的不准确或错误可能会触发一个大的错误。
奇异矩阵
那么什么矩阵是不可逆的呢?奇异(退化)矩阵是没有逆矩阵的方阵。以下等式计算3×3逆矩阵。
对于现有的逆,行列式不能为0。例如,下面的矩阵是奇异矩阵。
它的行列式等于0。因此,它没有逆。
行空列空
可以将向量分组形成向量空。r是包含所有n维实数向量的向量空。可以将空房间分成子空房间,以便进一步学习。比如R在3-D空之间,平面就是R的子空。
根据定义,如果u和v在一个空室中,则u v和cu(其中c为常数)一定在同一个空室中。这个定义也适用于sub 空。这是一个非常抽象的定义。它不限于向量。其实很多对象,包括多项式函数,都可以形成空空间。例如,任意阶的多项式函数构成空空间。x的两个多项式函数相加仍然是多项式。
列向量的所有线性组合的集合构成一个子空空间,称为矩阵的列空 空间或列。
如果上述列向量都是线性无关的,那么列空跨越了整个三维空空间。然而,上述列向量是线性相关的。第三列向量是前两列的线性组合。
第三列向量表示a的列空之间时我们可以删除,所以矩阵的列空只构成一个平面。
ax是A列向量的线性组合这个概念很基础。所以,花几秒钟来习惯这个概念。
这个方程也是以更熟悉的形式给出的。
其中,列间空从a1到阿成。同样,行在创建行空时形成行向量。
如果我们用C(A)来表示a的列空,我们C(Aᵀ转置a和C(A)之间的行空
线性依赖
在n维空中只能有n个线性无关的向量。在下面左图中,绿色矢量可以用蓝色和红色矢量来表示。两个向量在三维空间中形成一个平面空。平面上的任何向量,就像下面黄色的向量,都是红色向量的线性组合。
在数学中,一组线性无关的向量,它们满足
仅当所有线性因子c都为0时。简而言之,没有一个向量可以表示为其他向量的线性组合。另外,A的列是线性无关的,如果Ax=0的唯一解是
要得到0以外的解,A必须是单数。也就是
否则我们可以求逆,v只有一个解等于0。
对于Ax = 0要有非零解,A是单数,det(A)= 0。
秩
测量等级A的列/行之间的线性独立性。就是这些列/行的空维数,决定了线性系统AX = B中解空之间的维数,矩阵的秩等于
对于任何矩阵,列空和行空具有相同的维度(秩)。因此,矩阵的秩可以通过行或列来计算。这里是不同矩阵的秩。
如果一个矩阵是可逆的,则其逆是唯一的。会有解x = A⁻ b .但是,在方阵中,如果列/行是线性相关的,则矩阵是奇异的,不可逆的。一个矩阵的秩(通常对于任何矩阵)可以帮助我们确定线性依赖以及是否存在唯一解。下图展示了如何用矩阵形式表示线性方程组及其解的个数。
如果B不在A的列空中,则解为零,即A中列的线性组合不能到达B。
高斯消元回代
前面说过,我们很少计算a的逆来求解ax = b,最常用的方法之一就是高斯消元回代。很多人已经知道用这种方法解线性方程组了。所以我简单介绍一下,介绍一些关键术语。来解决
我们应用消去法为x 1列的第2行和第3行创建前导零。一旦我们消除了x 1列,我们就重复x 2和x 3的过程。
矩阵A可以被消除成具有非零前导值的两行。这两个非零值称为枢轴。
矩阵的秩等于主元数。(消去后,我们只留下两个有意义的方程。如果n×n矩阵的主元少于n个,则该矩阵是奇异的。除b列外,底行中的所有值都为零。
对应于列中一个支点的变量称为主分量。其他变量称为自由变量,可以取无穷大的值。在上面的例子中,我们有两个主成分(x,x)和一个自由变量x。在消除步骤之后,与变量x相关联的矩阵形成一个上三角矩阵。
为了理解Ax = b,我们进行回代。从底线开始,一次解析一个变量。
如果我们把自由变量x 3设为0,就会有一个特解。
再来用枢轴解一个例子。行消除后,我们用B列中的非零值来设置这些主体,然后将所有自由变量设置为0。这就成了x的解。
考虑Ax = b,其中a为m×n矩阵,秩为r,x有n个分量。行消除后,除了列B,矩阵将有m-r个全零行。
若任意零线有b≠0,则无解。不能得出上图中0=2的结论,线性方程组相互冲突。如果秩r小于n,则x变成n-r维。换句话说,如果我们有r个线性无关的方程来求解x中的n个变量,那么只要方程中没有冲突,就有n-r个自由度。
高斯-若尔当消元法(英语:Gauss-Jordan Elimination)
我们使用的方法叫做高斯-乔丹消去法。这是非奇异矩阵的一个例子。
为了求A的逆,我们可以用n×n单位矩阵I代替b。
在处理线性代数时,计算的精度是有限的,这一点尤为重要。另外,我们希望计算速度要快。幸运的是,我们有一个库来为我们处理这些工作。所以,我们只简单介绍一下。
线路交换。通过一些巧妙的行交换,行消去和替换不会轻易受舍入误差的影响。在删除一行之前,如果系数比例相差巨大,我们就交换前导值最大的第一行。如果不重新排序,解可能会有很大偏差。
改善和保持矩阵的稀疏性可以减少运算次数(我们可以忽略0乘以任意数)。在矩阵运算中,我们希望非零值只位于矩阵的对角线上。
between zero空 between left zero空
我们已经介绍了行空和列空。还有两个比较重要的sub 空房间。X的下列空称为A的零点空,记为N(A)
它包含Ax=0的所有解。它至少包含x=0。的行向量乘以x(内积)等于0。
因此,行空之间的任何向量都垂直于零空。即A的行空与A的零空正交。
例子,
这个矩阵的秩是2。有主元素的列称为主列,有自由变量的列称为自由列。空闲列的数量等于列的数量减去秩。如下图,对应的自由变量是X和X。
一次一个。我们将每个自由变量设为1,将其他自由变量设为0。有了两个自由变量,我们可以导出两个特解。
的通解会是特解的任意线性组合,在0空之间形成一个秩为2的空间。如前所示,如果A中的列是线性无关的,那么零空之间的空间只包含向量0。同样,左零空正交列空之间有n (a),即Aᵀx= 0。行空、列空、零空和左零空构成矩阵a的四个基本子元素空。
通解
之前我们只找到了ax = b的一个特解,如果A是奇异的,可以有很多,也可以没有。现在我们来找一个通用的解决方案。
首先,先求特解。
接下来,求Ax=0的解。a的秩是2,所以我们可以找到2(4-2=2)个独立解。
通解是特解加上Ax=0解的任意线性组合。
从图形上看,这是二维例子上面的虚线。下面的等式是我们例子的一般解,其中c是常数。
之间正交和空
如果两个向量的内积x和y等于零,那么它们是正交的。
如果它们是2D或3D向量,它们可以被可视化为彼此垂直。
如果正交向量有单位长度,则称为标准正交性。如果来自每个sub 空的任何向量总是彼此正交,则两个sub 空彼此正交。在三维空房间中,X轴和Y轴是两个相互正交的子空房间。然而,并不是所有垂直于X轴的向量都属于Y轴。它可以是yz平面上的任何向量。如果垂直于一个sub 空的任何向量必定属于另一个sub 空,那么一个sub 空与另一个sub 空正交。组合来自每个sub 空的向量以重构R空。如果一个孩子空之间的正交补的维数是k,那么另一个孩子空之间的维数一定是n-k。
列空、行空、零空和左零空构成m×n矩阵a的四个基本子空空间。
列间空: C(A)
行间空: C (a)
介于零空: N(A)之间
Between left 空: n (a)
这些sub 空之间的关系是:
列空和行空具有相同的维度和秩。
的秩(r)等于列空和行空之间的秩。
直线空是零空之间的正交补(⊥)。
Column 空是左零空之间的正交补(⊥)。
行空之间有R维,零空之间有n-r维。
列空有R维,左零空有m-r维。
解Ax=b的x时,如果b不在A的空列,则是无解的,Ax=b的特解在空行。Ax=0的解位于0空之间。通解是通过加一个特解和零空之间解的任意线性组合得到的。
机器学习和线性代数简明教程(下)