线性代数基础知识(三)—— 矩阵乘法
矩阵 A ∈ Rm×n 和B ∈ Rn×p 的乘积为矩阵 :
其中:
.
请注意,矩阵A的列数应该与矩阵B的行数相等,这样才存在矩阵的乘积。有很多种方式可以帮助我们理解矩阵乘法,这里我们将通过一些例子开始学习。
2.1向量的乘积
给定两个向量x,y ∈ Rn,那么xT y的值,我们称之为向量的内积或点积。它是一个由下式得到的实数:
.
可以发现,内积实际上是矩阵乘法的一个特例。通常情况下xT y = yT x。
对于向量x ∈ Rm, y ∈ Rn(大小不必相同),xyT ∈ Rm×n称为向量的外积。外积是一个矩阵,其中中的每个元素,都可以由 得到,也就是说,
.
我们举个例子说明外积有什么用。令1 ∈ Rn 表示所有元素都是1的n维向量,然后将矩阵 A ∈ Rm×n 的每一列都用列向量x ∈ Rm表示。使用外积,我们可以将A简洁的表示为:
.
2.2矩阵-向量的乘积
对于一个矩阵A ∈ Rm×n 和向量x ∈ Rn,他们的乘积为向量 y = Ax ∈ Rm。理解矩阵向量乘法的方式有很多种,我们一起来逐一看看。
以行的形式书写A,我们可以将其表示为Ax的形式:
.
也就是说,y第i行的元素等于A的第i行与x的内积 .
咱们换个角度,以列的形式表示A,我们可以看到:
.
换言之,y是A列的线性组合,线性组合的系数就是x的元素。
上面我们看到的是右乘一个列向量,那左乘一个行向量嘞?对于A ∈ Rm×n,x ∈ Rm, y ∈ Rn,这个式子可以写成yT = xT A 。向之前那样,我们有两种方式表达yT,这取决于表达A的方式是行还是列。第一种情况是把A以列的形式表示:
这个式子说明yT 第i列的元素等于向量x与A的第i列的内积。
我们也一样可以把A表示成行的形式,来说明向量-矩阵乘积。
我们可以看到yT 是A的行的线性组合,线性组合的系数是x的元素。
2.3矩阵-矩阵乘积
基于以上知识,我们可以看到如之前所定义的矩阵-矩阵乘法C=AB有四种不同(但是等价)的理解方法。
首先,我们可以将矩阵-矩阵相乘看作一组向量-向量乘积。根据其概念,我们最好理解的方式是矩阵C的(i,j)元素是A的i行与B的 j列的内积。符号表达如下:
.
注意由于A ∈ Rm×n , B ∈ Rn×p, ai ∈ Rn bj ∈ Rn, 所以内积永远有意义。对矩阵乘法而言,以A的行和B的列表示是最"自然"的表示方法。当然,我们也可以以A的列和B的行的形式进行表示。表达方法是AB外积累加的形式,稍微复杂一点点。符号表达为:
.
换一种方式表达,AB的值等于对于所有的i,A的i列与B的i行的外积的和。因此,对于ai ∈ Rm 和 bi ∈ Rp,外积aibiT的维度是m×p,它与C的维度是相同的。等式可能有点难理解,花点时间想想,我猜你肯定能明白。
第二种理解方式是,我们也可将向量-向量乘法看做一系列的矩阵-向量乘积。具体来说,如果我们将B以列的形式表示,我们可以将C的每一列看做A和B列的矩阵-向量乘积。符号表达为:
.
可以将C的i列以矩阵-向量乘积(向量在右)的方式表示为ci = Abi. 这些矩阵-向量乘积可以用前面的两种观点解释。最后类比一下,我们以A的行形式表示,将C的行视为A的行与C的矩阵-向量乘积,符号表达为
.
在此,我们以矩阵-向量乘积(向量左乘)的形式表示了C的i列,
只是一个矩阵乘法而已,这么细的分析看上去好像没有必要,尤其是当我们知道矩阵乘法定义后其实很容易可以计算得到结果。然而,几乎所有的线性代数内容都在处理某种类型的矩阵乘法,因此花一些时间去形成对这些结论的直观认识还是很有帮助的。
此外,知道一些更高层次的矩阵乘法的基本性质也是有好处的:
- 结合律即(AB)C = A(BC)
- 分配率即A(B + C) = AB + AC
- 注意哦,矩阵乘法没有交换律,即AB ≠BA.(例如,如果A ∈ Rm×n 和B ∈ Rn×q,矩阵的乘积BA在m和q不等时,BA可能根本就不存在)
如果你对这些性质不熟悉,最好花些时间自己证明一下。例如,为了验证矩阵乘法的结合律,对于A ∈ Rm×n, B ∈ Rn×p,C ∈ Rp×q,注意AB ∈ Rm×p,而 (AB)C ∈ Rm×q。类似的有BC ∈ Rn×q,所以A(BC) ∈ Rm×q。因此可以得到维度相同的矩阵。为了说明矩阵乘法符合结合律,证明(AB)C 第(i,j)个元素是否与A(BC)的(i,j)个元素相等就够了。我们可以直接运用矩阵乘法的定义进行证明。
上面的推导过程中,第一个和最后两个等式使用矩阵乘法的定义,第三和第五的等式使用标量乘法的分配率,第四个等式使用了标量加法的交换律和结合律。这种将运算简化成标量的特性以证明矩阵性质的方法会经常出现,你可以熟悉熟悉它们。
3.10 行列式
方阵A∈Rn×n的行列式是一个映射det: Rn×n→R,记作|A|或det A (同迹运算一样,我们通常省略括号)。在代数上,可以显式地写出A的行列式的公式,但是很遗憾,它的意义不够直观。咱们先给出行列式的几何解释,然后再探讨一下它的一些特殊的代数性质。
对于矩阵:
考虑由A中所有行向量a1,a2,..,an的所有可能线性组合组成的点集S⊂Rn,其中线性组合的参数都介于0和1之间;换句话说,由于这些线性组合的参数a1,a2,...,an∈Rn满足0≦ai≦1,i=1,...,n,集合S是张成子空间({a1, . . , an})的约束。公式表达如下:
A的行列式的绝对值,是集合S的"体积"的一个量度。
例如,考虑2×2矩阵,
此处,矩阵的行:
对应于这些行的集合S如图1所示。对于二维矩阵,S一般是平行四边形。在我们的示例中A的行列式的值为|A| = -7.(可以使用本节后文将给出的公式来计算)。所以平行四边形的面积为7(自行证明!)
在三维中,集合S对应一个平行六面体(一个三维的斜面的盒子,例如每一面都是平行四边形)。这个3×3矩阵的行列式的绝对值,就是这个平行六面体的三维体积。在更高的维数中,集合S是一个n维超平形体。
图 1 :公式(1)给出2×2矩阵A的行列式图示。此处,a1和a2是对应于A中的行的向量,集合S对应于阴影区域(亦即平行四边形)。行列式的绝对值,|det A|=7,是平行四边形的面积
代数上,行列式满足下列三个性质(其它性质亦遵循它,包括行列式的一般公式)
1、单位矩阵的行列式为1 ,|I| = 1。(从几何上来看,单位超立方体的体积为1)。
2、对于一个矩阵A∈Rn×n,如果将A中某行乘以一个标量t∈R,新矩阵的行列式值为t|A|。
(几何上,集合S的一条边乘以因数t,会导致体积扩大t倍)
3、我们交换行列式A任意两行aTi和aTj,新矩阵的行列式的值为-|A|,例如:
满足上述三个条件的函数是否存在,并不是那么容易看出来的。然而事实上,此函数存在且唯一。(此处不证明)
这三个性质的推论包括:
- 对于 A ∈ Rn×n, |A| = |AT |。
- 对于 A,B ∈ Rn×n, |AB| = |A||B|。
- 对于 A ∈ Rn×n,当且仅当A奇异(即不可逆)时,|A| = 0。(如果A奇异,它必不满秩,它的列线性相关。此时,集合S对应于n维空间中的一个平板,因此体积为零。)
- 对于A ∈ Rn×n,且A非奇异, |A-1| = 1/|A|.
在给出行列式的一般定义之前,我们定义代数余子式:对于A∈ Rn×n,矩阵A\i,\j ∈R(n-1)×(n-1)是A删除i行和j列的结果。
行列式的一般(递推)定义:
其中首项A∈ R1×1的行列式,|A| = a11。如果我们把公式推广到A∈ Rn×n,会有n!(n的阶乘)个不同的项。因此,我们很难显式地写出3阶以上的矩阵的行列式的计算等式。
然而,3阶以内的矩阵的行列式十分常用,大家最好把它们记住。
矩阵A∈ Rn×n的古典伴随矩阵(通常简称为伴随矩阵),记作adj(A),定义为:
(注意A的系数的正负变化。)可以证明,对于任意非奇异矩阵A∈ Rn×n,有
这个式子是求矩阵的逆的一个很好的显示公式。大家要记住,这是一个计算矩阵的逆的一个更加高效的方法。
3.11 二次型和半正定矩阵
对于一个方阵A∈ Rn×n和一个向量x∈ Rn,标量xTAx被称作一个二次型。显式地写出来,我们可以看到:
注意:
第一个等式是由标量的转置等于它自身得到,第二个等式是由两个相等的量的平均值相等得到。由此,我们可以推断,只有对称分量对二次型有影响。我们通常约定俗成地假设二次型中出现的矩阵是对称矩阵。
我们给出如下定义:
• 对于任一非零向量x∈Rn,如果xTAx>0,那么这个对称矩阵A∈Sn是正定(PD)的.通常记作A≻0,(或简单地A>0),所有的正定矩阵集合记作Sn++。
• 对于任一非零向量x∈Rn,如果xTAx≧0,那么这个对称矩阵A∈Sn是半正定(PSD)的。记作A≽0,(或简单地A≧0),所有的半正定矩阵集合记作Sn+ 。
• 同样的,对于任一非零向量x∈Rn,如果xTAx<0,那么这个对称矩阵A∈Sn是负定(ND)的。记作A≺0,(或简单地A<0)。
•对于任一非零向量x∈Rn,如果xTAx≤0,那么这个对称矩阵A∈Sn是半负定(NSD)的.记作A≼0,(或简单地A≤0)。
•最后,如果它既不是半正定也不是半负定-亦即,存在x1,x2∈Rn使得x1TAx1>0且x2TAx2<0,那么对称矩阵A∈Sn是不定矩阵。
显然,如果A是正定的,那么-A是负定的,反之亦然。同样的,如果A是半正定的,那么-A是半负定的,反之亦然。如果A是不定的,-A也是不定矩阵。
正定矩阵和负定矩阵的一个重要性质是,它们一定是满秩的。因此,也是可逆的。为了证明这个性质,假设存在矩阵A∈ Rn×n是不满秩的。进而,假设A的第j列可以其它n-1列线性表示。
对于x1,...,xj−1, xj+1,...,xn ∈R,设xj=-1,我们有
但是这意味着对于某些非零向量x,xTAx=0,所以A既不能正定,也不能负定。因此,如果A是正定或者负定,它一定是满秩的。
最后,一种常见的正定矩阵需要注意:给定一个矩阵A ∈Rm×n (不一定是对称,甚至不一定是方阵),矩阵G=ATA(有时也称为格拉姆矩阵)必然是半正定的。进一步,如果m≥n,(为了方便,我们假设A满秩)此时,G=ATA是正定的。
3.12特征值和特征向量
对于一个方阵A ∈Rn×n,如果:
我们说λ∈C是A的特征值,x∈Cn是对应的特征向量.
直观上看,其实上面的式子说的就是A乘一个向量x,得到的新的向量指向和x相同的方向,但是须乘一个标量λ。注意对任一个特征向量x∈Cn和标量t∈C,A(cx) = cAx = cλx = λ(cx),,所以cx也是一个特征向量。因此,我们要说λ所对应的特征向量。我们通常假设特征向量被标准化为长度1。(此时依然有歧义,因为x和-x都可以是特征向量,但是我们也没什么办法)。
如果
我们可以把上文的等式换一种写法,表明(λ,x)是A的一个特征值-特征向量对。
但是当且仅当有非空零空间时,也就是当(λI − A)非奇异时,亦即
时,(λI − A)x = 0有x的非零解。
我们现在可以用前文的行列式的定义,来把这个表达式展开为一个(非常大的) λ的多项式,其中λ的最高阶为n。我们可以解出多项式的n个根(这可能十分复杂),来得到n个特征值λ1, ...,λn。 为了解出特征值对应的特征向量,我们可以简单地求线性等式(λiI − A)x = 0的解。需要注意,实际操作时,计算特征值和特征向量不用这个方法。(行列式的完全展开式有n!项)。这只是一个数学论证。
下面是特征值和特征向量的性质(假设A∈ Rn×n,且特征值λ1,...,λn对应的特征向量为x1,...,xn):
- 矩阵A的迹等于特征值的和
- A的行列式等于特征值的积
- A的秩等于A的非零特征值的个数。
- 如果A是非奇异矩阵,则1/λi是矩阵A-1对应于特征向量xi的特征值。亦即,A−1xi = (1/λi)xi。(证明方法是,对于特征向量等式,Axi = λixi,在两边同时左乘A-1)
- 对角矩阵D=diag(d1, . . . ,dn)的特征值是所有的对角元素。
我们可以把所有的特征向量等式联立为
X ∈Rn×n 的列是A的特征向量,∧是对角元素为A的特征值的对角矩阵。亦即:
如果A的特征向量线性无关,则矩阵X可逆,所以A=X∧X-1。可以写成这个形式的矩阵A被称作可对角化。
3.13 对称矩阵的特征值和特征向量
当我们考察对称矩阵A∈Sn的特征值和特征向量时,有两个特别的性质需要注意。首先,可以证明,A的所有特征值都是实数。其次,A的所有特征向量时正交的。也就是说,上面所定义的矩阵X是正交矩阵。(我们把此时的特征向量矩阵记作U)。
接下来,我们可以将A表示为A=U∧UT,由上文知,一个正交矩阵的逆等于它的转置。
由此,我们可以得到所有完全使用特征值来定义的矩阵。假设A∈Sn= U∧UT。有:
其中,y=UTx(由于U满秩,任意y∈Rn可以表示为此形式。)由于yi2永远为正,这个表达式完全依赖于λi。如果所有的λi>0,那么矩阵正定;如果所有的λi≥0,矩阵半正定。同样的,如果所有的λi<0或λi≤0,矩阵A分别负定和半负定。最后,如果A既有正的特征值又有负的特征值,它是不定矩阵。
特征值和特征向量的一个常见的应用是找出矩阵的某个函数的最大值。例如,对于矩阵A∈Sn,考虑这个求最大值问题:
也就是说,我们希望找到使二次型最大的单位向量。假设特征值大小为λ1 ≥ λ2 ≥ . . . ≥ λn,这个最优化问题的最优解x为x1,对应的特征值为λ1.此时,二次型的最大值是λ1。相似的,最小值问题的最优解
是xn,对应的特征值是λn,那么最小值是λn。可以通过将A表示为特征向量-特征值的形式,然后使用正定矩阵的性质证明。然而,在下一节我们可以使用矩阵微积分直接证明它。